Guten Abend liebe Community ,
aus Zufall erfuhr ich heute, dass eine Abfrage von mir nicht mehr funktioniert. Vor ~2 Monaten funktionierte alles und ohne etwas zu ändern, scheint es nun irgendwo einen Fehler zu geben. (Gab es ein Update, das bestimmte Funktionen außer Betrieb setzte?)
Ich wäre euch äußerst dankbar, wenn Ihr mir bei der Fehlersuche, sowie Behebung, behilflich sein könntet.
Was ist der Sinn der Abfrage:
Durch die Eingabe eines eindeutigen Codes werden die passenden Daten (URLs) aus einer Datenbank ausgelesen und als Button wiedergegeben.
Erklärung der Attribute:
custom_url = eindeutiger Code
url_1 = URL Nr. 1 (z.B.: [url]https://www.google.de/maps/place/Berlin/[/url] )
url_1_call = Covername des Links für den Button (z.B.: "Google Maps - Berlin")
url_2 = usw....
Die eigentliche Abfrage ist folgende:
<?php
$search = $_POST['search'];
echo "search = $search // "; //DEBUG
$con = new MySQLi("***","***","***", "***");
if ($con->connect_error) { //DEBUG
echo "Failed to connect to MySQL: " . mysqli_connect_error();
exit();
} else {
echo "Verbunden; ";
}
$sql = "SELECT * FROM fakten WHERE custom_url LIKE '$search'";
if(mysqli_num_rows($sql)==0) { //DEBUG
echo "Keine Einträge gefunden; ";
} else {
echo "Einträge gefunden";
}
if(mysqli_query($con, $sql)===TRUE) { //DEBUG
echo "Funktioniert; ";
} else {
echo "Funktioniert nicht; ";
}
$db_content = mysqli_query( $con, $sql);
echo "<h2>Suchergebnis</h2>";
echo "<p>Folgende Quellen konnten unter dem Suchbegriff '<b>"; echo $search; echo "</b>' gefunden werden:</p>";
while ($zeile = mysqli_fetch_array( $db_content, MYSQL_ASSOC)) {
if ($zeile['url_1']!='') {
echo "<p> - - - - - - - - - - - - - - </p>";
echo "<a href=\"". $zeile['url_1'] . "\"> " . $zeile['url_1_call'] . "</a></br>";
}
if ($zeile['url_2']!='') {
echo "<a href=\"". $zeile['url_2'] . "\"> " . $zeile['url_2_call'] . "</a></br>";
}
if ($zeile['url_3']!='') {
echo "<a href=\"". $zeile['url_3'] . "\"> " . $zeile['url_3_call'] . "</a></br>";
}
if ($zeile['url_4']!='') {
echo "<a href=\"". $zeile['url_4'] . "\"> " . $zeile['url_4_call'] . "</a></br>";
}
if ($zeile['url_4']!='') {
echo "<a href=\"". $zeile['url_5'] . "\"> " . $zeile['url_5_call'] . "</a>";
}
} ?>
<input type="button" onclick="location.href='./index.html';" value="Neue Suche" />
<?php mysqli_close($con); ?>
Alles anzeigen
Bild vom Code, da Formatierungfehler:
Durch DEBUG-Codes und Proben konnte ich folgendes feststellen:
* $search wird erfolgreich eingelesen
* Verbindung zur Datenbank wird erfolgreich hergestellt.
* Datenbank enthält sicher Einträge
* $sql "findet" keine Einträge (es wurde sicher nach einem vorhandenen custom_url gesucht)
* $dp_content gibt dementsprechend einen Fehler aus
Meine Schlussfolgerung: Der Fehler liegt irgendwo in dieser Zeile $sql = "SELECT * FROM fakten WHERE custom_url LIKE '$search'";.
Gebe ich diese Zeile ($search durch einen vorhandenen custom_url ersetzt) in phpMyAdmin ein, so funktioniert es.
Sprich, es liegt an der Zeile, jedoch irgendwie auch nicht? - Ich weiß nicht mehr weiter.
P.S. Es wurde auch versucht das $search im Code direkt durch einen custom_url zu ersetzten. Selbiges Ergebnis...
VG und Danke im Voraus!!!
Daniel