Fehlermedung: Resource id #2
Bad Suliban
- php
0 lulu0 Bad Suliban0 lulu
0 Bad Suliban
Hi ihr lieben Leutz,
Ich hab ne MySQL Datenbank, die unter anderem die Spalten ID und SOM enthält. So, jetzt will ich diese Spalte löschen, das geht auch wunderbar, aber der soll mit ausgeben, wie der SOM-Wert der gelöschten Splate war. Das macht er aber komischerweise net :-(
Ok, war vielleicht total unverständlich deshalb hier mal ganz praktisch:
Tabelle sieht so aus:
ID SOM
2222 11:22:33:44
3333 22:33:44:55
4444 33:44:55:66
usw.
So, der code zum löschen sieht (gekürzt) dann so aus:
($input_id ist z.B. 2222)
mysql_query(sprintf("delete from archiv where id = '%s'",$input_id));
printf("Entry with ID %s deleted.",$input_id);
Das funktioniert auch wunderbar und ich bekomme dann auf der Page folgende Ausgabe:
"Entry with ID 2222 deleted."
Wenn ich aber noch hinzufügen will, dass er mir den SOM-Wert mit ausgeben soll funktioniert das nicht, also löschen tut er zwar nur den SOM-Wert gibt er mir davor net aus.
Der Code sieht (gekürzt) so aus:
($input_id ist z.B. 4444)
$check = mysql_query("select som from archiv where id = '$input_id'");
mysql_query(sprintf("delete from archiv where id = '%s'",$input_id));
printf("Entry with ID %s deleted.<BR>SOM of entry was: %s", $input_id,$check);
Die Ausgabe sieht dann so aus:
"Entry with ID 4444 deleted.
SOM of entry was: Resource id #2"
So, ich weiß, dass ich da irgendwo scheiße baue, ich versteh nur einfach nicht wo und vorallem was ich denn da machen soll damit das nicht mehr so ist, ich hab's schon mit Forums-suche versucht aber da ist nie was bei rausgekommen (oder ich habs leider übersehen) und aus den dokus und tutors, die ich mir besorgt hab werd ich auch net schlau. Das einzige wo ich mir ziemlich sicher bin ist, dass hier ein Syntax-fehler vorliegt aber ich komm einfach net dahinter was denn jetzt der fehler genau sein soll :(
In Hoffnung auf Erleuchtung...
MfG, A Bad Suliban
Huhu Bad Suliban
$check = mysql_query("select som from archiv where id = '$input_id'");
printf("Entry with ID %s deleted.<BR>SOM of entry was: %s", $input_id,$check);
$check enthält quasi nur einen Zeiger auf das Ergebnis Deiner SQL-Query,
wenn Du da jetzt einen einzelnen Wert brauchst, musst Du ihn Dir erst holen.
Z.B. mit mysql_fetch_array();
http://www.php.net/manual/en/function.mysql-fetch-array.php
Viele Grüße
lulu
Z.B. mit mysql_fetch_array();
Ich hab jetzt folgendes Ausprobiert:
$query = mysql_query("select som from archiv where id = '$input_id'");
$check = mysql_fetch_row($query);
printf("SOM of entry was: %s</BODY>",$check);
Ergebnis:
"SOM of entry was: Array"
Es ist einfach zum Heulen, wie zum geier ruft man denn das ab ;-(
MfG, A Bad Suliban
Holla Holla
hier nochmal auf deutsch
http://www.php.net/manual/de/function.mysql-fetch-array.php
http://www.php.net/manual/de/language.types.array.php
in Deinem Beispiel müsste es demnach
printf("SOM of entry was: %s</BODY>",$check['som']);
oder
printf("SOM of entry was: %s</BODY>",$check[0]);
lauten.
Viele Grüße
lulu
Die Erleuchtung is über mich gekommen, problem hat sich erledigt! hab einfach zu voreilig ins forum gepostet, sorry (obwohl die idee mit "fetch" den anstoß brachte)
MfG, A Bad Suliban