mysql_result(...,0) funktioniert nicht!

methodus

Erfahrenes Mitglied
Ich habe ein mächtiges problem mit mysql_result() und zwar kommt jedesmal eine fehlermeldung:

Warning: Supplied argument is not a valid MySQL result resource in /home/methodus/htdocs/test/newswrite.php on line 31


PHP:
$query = "SELECT passwort FROM user WHERE username='$userinput'";
$pass = mysql_result($query,0);

Line 31 ist die zeile mit mysql_result()

die SELECTanweißung funktioniert perfekt, auch die verbindung zur Datenbank ist hergestellt und die Werte in der Tabelle stimmen auch. Wenn ich mysql_fetch_array() nehme spuckt der mir am ende den string "Array" aus. was stimmt hier nicht? der befehl ist laut den vielen Büchern richtig geschrieben
 
Füge zwischen beiden Zeilen doch mal echo $query; ein.
Dann kannst du kontrollieren ob der Befehl richtig an MySQL übergeben wird.
 
wenn das so einfach wäre würde ich ja nicht bis zur verzweiflung daran sitzen und die halbe krise bekommen! $query ist meines wissens her auch kein einfacher string den man mal fix ausgeben könnte, ich glaub dass is nen array oder sowas ähnliches, also nix mit echo $query
 
mysql_result erwartet als ersten Parameter eine "Ergebnis-Kennung", nicht einen Abfrage-String. Die Ergebnis-Kennung bekommst du als Rückgabewert, wenn du mysql_query aufrufst.

Beispiel
PHP:
<?
$query = "SELECT passwort FROM user WHERE username='$userinput'";
$result = mysql_query($query);
$pass = mysql_result($result, 0);
?>

reima

PS: $query ist ein String wie jeder andere auch! Wie kommst du darauf, dass es ein Array sein könnte?
 
ok jetzt klappts, wieso ich diese variante nicht versucht hab weiß ich nicht, wahrscheinlich weils nicht so in meinen büchern steht, woher will mans da wissen gell?
 
und mal wieder probleme, diesmal:

Warning: Cannot use a scalar value as an array in /home/methodus/htdocs/test/newswrite.php on line 51

hier der code (zeile 51 => $result[$i] = mysql_fetch_array($array); )

4 dinge werden abgefragt: datum, zeit, titel, inhalt

PHP:
$query = "SELECT * from news ORDER BY datum,zeit DESC";

$array = mysql_query($query);

for($i=0;$i<mysql_num_rows($array);$i++){
$result[$i] = mysql_fetch_array($array);
}

das seltsame ist aber, ich habe HAARGENAU das selbe script inner anderen PHP-datei und dort funktionierts ohne probleme. wieso macht er also jetzt solche mucken? sobald ich [$i] bei result wegnehme füllt er result mit einem array aus 8 werten, 4 davon gibts aber nur zudem sind diese 4 werte aber nur die jeweils der erste buchstabe. der erste wert in der tabelle ist das datum und hat 8 ziffern, verdreht PHP irgendwas?
 
Sieht so aus, als ob du die Variable $result schon mal als Skalar (Zahl) verwendet hast. Und auch wenn PHP nicht allzu streng mit den genauen Variablentypen ist... in dem Fall ist es sensibel. Es möchte gerne vorher wissen, dass $result jetzt nicht mehr als Skalar, sondern als Array verwendet wird.

Und das geht so:
PHP:
$result = array();


reima
 
Danke, naja, ich bin halt doch noch sehr unerfahren in PHP, ich bring mir den ganzen blödsinn seit ner woche alleine bei, da kann man nicht alles wissen gell? ;) Danke nochmal für deine hilfe
 
Zurück