Datenbankabfrage bleibt leer
Knusperkeks
- php
Hey ,ich mache zurzeit für die Schule ein kleines projekt(Eine art Vogeldatenabank),hab jetzt aber folgendes Problem.
Ich will eine kleine Datenbanksuche einfügen, in der man nach Name, HErkunft etc.. suchen kann. Jedoch kommt keine antwort ,weder nen Error noch ein Ergebniss.
Aber guckt einfach mal selbst..
<?php
include_once("Datenbankanbindung.php");
?>
<div class="Content">
<form action="<?php echo $_SERVER["PHP_SELF"];?>" method="post">
<input type="hidden" name="anzeigen" value="1" />
<label>Vogel suchen nach: </label>
<select name="suche">
<option name=Name value=Name> Name </option>
<option name=Gattung value=Gattung> Gattung </option>
<option name=Familie value=Familie> Familie </option>
<option name=Herkunft value=Herkunft> Herkunft </option>
<option name=Federfarbe value=Ferderfarbe> Familie </option>
</select>
<input name="Suchname" type="text" size="30" maxlength="30"></p>
<button>anzeigen</button>
</form>
<hr>
<?php
if(isset($_POST['anzeigen'])) {
$text = $_POST['Suchname'];
$cbox = $_POST['suche'];
$myquery = "select * from vogel where '" .mysql_real_escape_string($text)."' like '".mysql_real_escape_string($text)."'";
$result = mysql_query($myquery) or die ("MySQL-Fehler: " . mysql_error());
while ($dsatz = mysql_fetch_assoc($result))
{
echo "Name:" . $dsatz["Name"] . "<br>";
echo "Gattung:" . $dsatz["Gattung"] . "<br>";
echo "Familie:" . $dsatz["Familie"] . "<br> ";
echo "Herkunft:" . $dsatz["Herkunft"] . "<br> ";
echo "Federfarbe:" . $dsatz["Federfarbe"] . "<br> ";
echo "<img style='float: left; height: 80px; margin-left: 250px; margin-top: -80px; width: 88px;' src='" . $dsatz["Bild"] . "' alt='Vogel'>" ;
echo "<hr>";
}
}
?>
Tach!
Jedoch kommt keine antwort ,weder nen Error noch ein Ergebniss.
Das ist sicher nicht richtig. Irgendwas kommt immer. Überzeug dich mit var_dump(). Vermutlich ist nur die Ergebnismenge leer.
Aber guckt einfach mal selbst..
Das würde ich dich selbst bitten. Wie sieht das fertige SQL-Statement aus, das du absetzt? Kopiere dies in beispielsweise phpMyAdmins SQL-Feld und schau nach, ob es da Ergebniszeilen bringt. Wenn nicht, ist dein Statement nicht so formuliert wie gewünscht.
$text = $_POST['Suchname'];
$cbox = $_POST['suche'];
Das Umkopieren ist unnötig. Es bringt noch nicht mal einen Tipp-Vorteil. Du verwendest $text anschließend lediglich zweimal, $chbox gar nicht.
$myquery = "select * from vogel where '" .mysql_real_escape_string($text)."' like '".mysql_real_escape_string($text)."'";
Üblicherweise ist $text gleich $text. Abzufragen, ob es ähnlich zu sich selbst ist, scheint mir nicht sehr sinnvoll zu sein.
dedlfix.
"> $myquery = "select * from vogel where '" .mysql_real_escape_string($text)."' like '".mysql_real_escape_string($text)."'";
Üblicherweise ist $text gleich $text. Abzufragen, ob es ähnlich zu sich selbst ist, scheint mir nicht sehr sinnvoll zu sein."
Das ist der Fehler ,das erste mal $text muss durch $Cbox getauscht werden. Blödes kopieren.Ich hoffe jetzt geht es ,danke aber für tipps ;)
Hallo,
$myquery = "select * from vogel where '" .mysql_real_escape_string($text)."' like '".mysql_real_escape_string($text)."'";
Üblicherweise ist $text gleich $text. Abzufragen, ob es ähnlich zu sich selbst ist, scheint mir nicht sehr sinnvoll zu sein."
Das ist der Fehler ,das erste mal $text muss durch $Cbox getauscht werden. Blödes kopieren.Ich hoffe jetzt geht es ,danke aber für tipps ;)
ja, und der Tipp, das sinnlose Umkopieren sein zu lassen, war durchaus ernst gemeint. Du kannst ruhig mit $_POST direkt arbeiten; wenn du die Werte, so wie im vorliegenden Fall, nur je einmal benutzt, hast du nicht einmal einen Vorteil im Hinblick auf die Tipperei, im Gegenteil.
Einen Tipp habe ich auch noch: Bitte lass doch beim Zitieren die Zitatmarkierungen so, wie die Forensoftware sie vorgibt, und ersetze sie nicht durch eigene Markierungen nach Gutdünken. Die werden dann nämlich von der Forensoftware nicht als Zitat erkannt und entsprechend dargestellt.
Ciao,
Martin