Daten aus MySql anzeigen lassen

Moin,

ich will eine Abfrage mir ausgeben lassen.
Habe dazu diesen PHP-Code -->

<?php error_reporting(E_ALL | E_NOTICE);
ini\_set('display\_errors','On'); $host = "host"; $user = "user"; $password = "password"; $dbname = "dbname"; $tabelle ="tabelle"; $dbverbindung = mysql\_connect ($host, $user, $password); $result = mysql\_query('SELECT \* FROM $tabelle where id=$\_POST[id]); echo $result ?\> Im Grunde muss das doch so gehen! (es muss einfach) - aber hmmmm, es geht nicht. Bringt Fehlermeldung **Notice: Undefined index: id in C:\xampp\htdocs\webuser.php on line 20** ???? Mag mir einer kurz den korrekten Aufbau einer solchen Abfrage zutun? Danke Gruß Rolf

Die Abfrage hätte ich schon hinbekommen.

Was mir Kopfzerbrechen bereitet ist das er mir meine Textbox nicht nimmer.

<?php error_reporting(E_ALL | E_NOTICE);<br />ini\_set('display\_errors','On');

$host = "host";
$user = "user";
$password = "password";
$dbname = "dbname";

$dbverbindung = mysql\_connect ($host, $user, $password);
$dbanfrage = 'SELECT \* FROM datenbank where id="xxxxx"';

$result = mysql\_db\_query ($dbname, $dbanfrage, $dbverbindung);
 $ausgabe = mysql\_fetch\_array ($result);
 echo "
";
 echo "
";
 echo "Username: ";
 echo $ausgabe['ausgabe1'];
 echo "
";
 echo "Password: ";
 echo $ausgabe['ausgabe2'];
 echo "
";
 echo "
";
?\> &nbsp; &nbsp; &nbsp;<?php echo mysql_error(); ?> 

Diese Abfrage funtzt, aber ist nicht das was ich will :frowning:(
Ich habe ja hier die Textbox Array[id] und hier möchte ich eben die „id“ eingeben, für die Abfrage

Ich habe auch schon $_POST[id] udn $Array und $id versucht, aber nuescht haut wirklich hin.

Jemand ne Idee vieleicht?

Gruß Rolf

error_reporting(E_ALL) + GET/POST
Hi!

Ich hab kürzlich etwas zu dem Thema in einem anderen Forum gelesen. Schau doch mal, ob das Deine Frage beantwortet:

http://www.tutorials.de/forum/php/286177-notice-unde…

Gruß, Caro

Hallo Eckse,

nö, leider nicht :frowning:(

Bringt die Meldung (wie gehabt)

Notice: Undefined index: id in C:\xampp\htdocs\index.php on line 17

Bin echt am verzweifeln. :frowning:((((((((

Gruß Rolf

Also wenn das zeile 17 ist

$result = mysql_query('SELECT * FROM $tabelle where id=$_POST[id]);

dann würde ich sagen es liegt an $_POST[id]

die fehlermeldung sagt eindeutig das der Index „id“ nicht gefunden wird.

Also einmal das $_POST ausgeben lassen und gucken ob es ein assoziatives array mit dem key „id“ beinhaltet.

Gruß Lamer

Hallo Lamer,

dann gibt er mir Array aus.
Mehr nicht…

Gruß Rolf

mach mal ein

echo "

";var\_dump($\_POST);echo "

das mal an den anfang der Seite dann sollte beim aufruf der Seite eine ausgabe ganz oben stehen … diese untersuchst du dann nach einem Key der ID heißt …

Wenn du das hast suchen wir weiter wo das problem liegen könnte …

Gruß Lamer

Oha,

array(2) { [„Array“]=> array(1) { [„id“]=> string(4) „dsfd“ } [„anzeigen“]=> string(14) „Daten anzeigen“ }

Bringt dich das weiter?

Sorry, aber jetzt raff ich nichts mehr.

Gruß Rolf

Joah

id=$_POST[id]);

Müsste also id=$_POST[‚Array‘][‚id‘] heißen

Wenn du in HTML eine variable Array[id] nennst mußt du sie halt auch genauso in php abfragen. Da sie dort selbst in die $_POST variable (Array) geschrieben wird ist es halt $_POST[‚Array‘][‚id‘].

Und im gegensatz zum HTML setzt man bei associativen Arrays in PHP anführungszeichen drum. Das macht man damit man nicht irgendwann mal in ein durcheinander mit statisch deklarierten Variablen kommt die nämlich auch ohne anführungszeichen geschrieben werden. Und da die überall gelten sucht man sich dann zu Tode wo der Fehler steckt.

Gruß Lamer

Hi, Rolf!

Das ‚id-Problem‘ sollte Lamer gerade gelöst haben.

Mir ist aber noch etwas anderes aufgefallen. Wenn Du mehr als eine Datenbank für den gleichen Nutzer auf dem gleichen Server laufen hast, musst Du die Datenbank, die Du verwenden willst, vor den Abfragen einmalig selektieren:

mysql_select_db($dbname);

An dieser Stelle solltest Du als Ergebnis schon mal eine schmucke „1“ bekommen - denn das ist der Rückgabewert von Deiner Abfrage $result im Erfolgsfall.
Wenn Du den tatsächlichen Datensatz ausgeben willst, mußt Du ihn noch mit mysql_fetch_object(), mysql_fetch_array() oder mysql_fetch_row() verfügbar machen - wenn Du mehr als einen Datensatzt erwartest in einer Schleife.

Gruß, Caro

Moin moin,

hmmmm, ich hab es nun so gemacht -->

$dbanfrage = 'SELECT \* FROM tabelle where id=$\_POST['Array']['id']';

Auch mit Anführungszeichen, aber er bringt hier nen Parse-Error

Parse error: parse error in C:\xampp\htdocs\webuser.php on line 22

Ich muss auch ehrlich gestehen, dass mit dem

$\_POST['Array']['id']';

ist mir total neu. Ich versteh auch ned ganz.
Das Textfeld „deklariere“ ich ja als Array und benenn das Array eben id.
Das Array übergebe ich per $_POST weiter, bzw. den Inhalt des Arrays. also die id …

Man, das macht mich echt ganz kirre!

Gruß Rolf

Ok … also mal in langsam und sehr erklärend

Wenn du in HTML ein inputfeld deklarierst wie folgt:

Dann bekommst du in PHP ein $_POST[‚test‘] dabei herraus.

Wenn du jetzt in HTML schreibst:

Dann hast du damit ein Array deklariert. Du brauchst also nicht erst array schreiben. Die eckigen Klammern in Name sagen HTML das dort ein Array ist. In PHP würdest du jettz so darauf zu greifen:

$_POST[‚test‘][‚test1‘];

In deinem Fall hast du also eine Variable in HTML deklariert die „Array“ heißt. Diese ist ein Array mit dem Assoziativen Index „id“.

Also nicht das Array mach das Array in HTML zum Array (das wäre in javascript so) sondern die Eckigen klammern hinter dem Variablen Namen in deinem Fall der name „Array“.

Hoffe das ist jetzt klarer.

Zu deinem neuen Problem. Parse_error heißt das der PHP Parser irgendwo einen Syntaktischen Fehler in deinem Code findet. Meisst ein ; was fehlt oder klammern oder ein vergessener " oder '.

Gruß Lamer

Zu deinem neuen Problem. Parse_error heißt das der PHP Parser
irgendwo einen Syntaktischen Fehler in deinem Code findet.
Meisst ein ; was fehlt oder klammern oder ein vergessener "
oder '.

… oder die Tatsache, daß ein reservierter Begriff (‚Array‘) als Variablenname verwendet wurde?

Gruß, Caro

Eher nicht … da hat sich php nicht so … alles was ein $ davor hat ist für php eine Variable und kann benutzt werden.

MySQL ist da empfindlicher

Gruß Lamer

Denke ich auch.

Auch wenn ich das Textfeld „nur“ id nennen.

Und die Abfrage so machen -->

$dbanfrage = 'SELECT \* FROM datenbank.tabelle where id="$\_POST[id]"';

Dann bringt er mir zwar keinen Fehler, tut aber ansonsten nichts.
Und egal wie ich das Textfeld deklariere und auch die Abfrage, es tut nicht.

Wenn ich die Id (z. B. 5555) direkt in die Abfrage eingeben ->

$dbanfrage = 'SELECT \* FROM datenbank.tabelle where id= **"5555'** ;

dann gibt er mir die gesuchten Werte korrekt aus!

Gruß Rolf

naja wir arbeiten uns langsam vorran :smile:

Also hier mal das was ich schreiben würde.

$dbanfrage = 'SELECT \* FROM datenbank.tabelle WHERE id=' . $\_POST['id'];

Probier es mal so … und sag was dabei rauskommt :smile:

Gruß lamer

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\webuser.php on line 26

In Zeile 26 ist --> $ausgabe = mysql_fetch_array ($result);

Gruß Rolf

joha damit haben wir das Problem gelöst und ein neues ist offensichtlich geworden …

dafür brauch ich allerdings mehr als nur die zeile 26 … weil da wird der Fehler zwar ausgelöst aber der entsteht wo anders … also bitte noch mal den restlichen sourceCode

Gruß Lamer

Sehrwohl :smile:))

$dbanfrage = 'SELECT \* FROM datenbank.tabelle WHERE id=' .$\_POST['id']or die( mysql\_error() );;

$result = mysql\_db\_query ($dbname, $dbanfrage, $dbverbindung);
Zeile 26--\> $ausgabe = mysql\_fetch\_array ($result);
 echo "
";
 echo "
";
 echo "Username: ";
 echo $ausgabe['ausgabe1'];
 echo "
";
 echo "Password: ";
 echo $ausgabe['ausgabe2'];
 echo " asdfg";
 echo "
";

 }
 echo mysql\_error();
?\> 

So … lol Rolf nach deinen Posts bin ich immer verwirrt …

ich geh mal mit dir alles langsam einzeln durch:

$dbanfrage = 'SELECT \* FROM datenbank.tabelle WHERE id=' .$\_POST['id']or die( mysql\_error() );;

Also erstmal datenbank.tabelle muß dann wirklich eine Datenbank sein die datenbank heißt und die Tabelle muß tabelle heißen. Außer du hast das geändert.
Weiterhin die dbanfrage ist nur ‚SELECT * FROM datenbank.tabelle WHERE id=‘ . $_POST[‚id‘];
Mehr nicht. Das "or die (mysql_error() ) gehört da nicht hin;

$result = mysql\_db\_query ($dbname, $dbanfrage, $dbverbindung);

Hier ist soweit alles richtig obwohl ich immer die MySQL verbindung einzeln aufbau und dann darauf die Abfragen mache und nicht für jede Abfrage eine einzelne Verbindung. Aber das nur am Rande.

Der Rest ist insofern nicht fehlerhaft da er nichts mit dem MySQL fehler zu tun hat.

aber ein ist nicht wirklich gut :smile:

Gruß Lamer