Datensatz suchen und ausgeben

  • Themenstarter Themenstarter rojani
  • Beginndatum Beginndatum
R

rojani

Hallo liebes Forum,

ich bräuchte ein klein wenig Hilfe. Irgendwie stehe ich auf dem Schlauch.

Erstmal vorweg: ich hab mir ein kleines HTML-Formular gebaut, mit dem ich bestimmte Daten in einer db hinterlege.
nun möchte ich aber auch nach vorhandenen Einträgen suchen können. Als "Suchkriterium" dient mir hier eine ID.

Nun habe ich eine kleine Form erstellt:
Code:
<form action="suche.php" method=post>
<input type=text name="suche" size=10>
<input type=submit name="SUBMIT" value="Anzeigen">
</form>
So weit so gut...
In der "suche.php" geht es dann wie folgt weiter:

ich definiere meine variablen für den mysql_connect und zusätzlich noch
Code:
 $suchbegriff = $_POST[suche];

nun kommt meine abfrage:
Code:
$dbabfrage=mysql_query("SELECT * FROM $tabelle WHERE 'UA_Id' = $suchbegriff");

In phpmyadmin bringt mir diese Abfrage auch den gewünscht Datensatz. Nur will meine "suche.php" diesen nicht so recht ausgeben.

Ich dachte ein
Code:
echo $dbabfrage;
würde mir jetzt meine Daten ausspucken. Leider bekomme ich damit nur eine leere Ausgabe ohne Fehler.


Ich würde mich freuen, wenn mir jemand einen kleinen Hinweis/Lösungsansatz liefern könnte.

Vielen Dank schon mal im Vorraus.


Grüße,
rojani
 
dass das mit dem
Code:
echo $dbanfrage;
nicht richtig sein konnte war mir schon klar. :-/ das wäre zu leicht gewesen. ;-)

ich hab mir jetzt gezwungenermaßen nochmal die sache mit dem mysql_fetch_array angesehen. mein quelltext geht nach dem SQL-statement nun so weiter:

Code:
$result = mysql_db_query($dbname, $dbanfrage, $dbcon);

while ($ausgabe = mysql_fetch_array ($result))
{
....

allerdings wird an der stelle schon mit dem fehler:
Code:
Warning: mysql_fetch_array(): supplied argument is not a valid MYSQL result resource in <PFAD_ZUR_SRC> on Line 16.
abgebrochen.

nun bin ich komplett verwirrt!
kann da eventuell wieder jemand licht ins dunkel bringen?

thx4help
 
Versuch mal das hier:

PHP:
$result = mysql_db_query($dbname, $dbanfrage, $dbcon) or die(mysql_error());

Dann siehst du, warum du eine ungültige MySQL Ergebnis-Resource von mysql_db_query() zurück bekommst. Denn da liegt nämlich der Fehler.

Gleich angewöhnen, Fehler-Behandlung einzubauen, dann kann ein geneigter Programmierer ca. 80% solcher Fehler selbst beheben.
 
danke für den tipp!

jetzt weiß ich schon mal, dass meine abfrage scheinbar gar nix zurück liefert.

Code:
query was empty!


jetzt habe ich mal mein sql-statement im phpmyadmin testen wollen, ob es denn überhaupt richtig ist.
Code:
SELECT * FROM `meine_tabelle` WHERE `mein_feld` = 001
phpmyadmin zeigt dann auch den gesuchten datensatz, führe ich exakt diese zeile innerhalb des quelltextes aus, kommt wieder ein leerer query zurück. :-(

wieso findet er es über die sql-maske im phpmyadmin und sonst nicht hab ich vielleicht irgend etwas übersehen?
 
PHP:
SELECT * FROM `meine_tabelle` WHERE `mein_feld` = "001"

Zeichenkette maskieren?
Ansonsten könntest du auch 1 OR 1 = 1 übergeben..
Und das führt dazu, dass ich auf alle Datenbankeinträge zugriff habe.

Wurde Tabelle definiert?
Steht überhaupt ein Wert in Suche?
 
Ja, die Tabelle ist definiert. Der Suchbegriff wird auch ordentlich übermittelt.

Nach den ganzen Definitionen der Variablen geht der Code wie folgt weiter:

PHP:
$dbcon = mysql_connect ($host, $user, $password);
mysql_select_db($dbname);

$dbanfrage=mysql_query('SELECT * FROM ' . $tabelle . ' WHERE `UA_Id` = ' . $suchbegriff);
$result = mysql_db_query($dbname, $dbanfrage, $dbcon) or die (mysql_error());


Teste ich das ganze bekomme ich den Fehler:

Code:
You have an error in your SQL syntax, check the manual....for the right syntax to use near 'Resource id #3' at line 1

Was zum Teufel ist die Resource id #3, bzw. wo genau soll der Syntax fehler sein ?


(Bitte Entschuldigt die nervigen Fragen, ich bin recht neu auf dem Gebiet.)
 
Ähm … also das ist doppelt gemoppelt. Entweder du verwendest mysql_query oder mysql_db_query, aber nicht beides! Und alldieweil mysql_db_query veraltet ist, empfehle ich dir natürlich ersteres. Das sähe dann so aus:

PHP:
$dbcon = mysql_connect($host, $user, $password);
mysql_select_db($dbname);

$result = mysql_query('SELECT * FROM ' . $tabelle . ' WHERE `UA_Id` = ' . $suchbegriff) or die(mysql_error());
 
Zurück