mysql_num_rows
Jan
- php
Guten Morgen,
ich liege doch richtig, wenn ich behaupte, ich lese mit mysql_num_rows aus wievie Reihen sich in der Tabelle befinden, oder?
Nun möchte ich es gerne folgendermassen machen:
$newid = mysql_fetch_array(mysql_query("SELECT * FROM user WHERE sessid='$_COOKIE[pdsessid]'"));
$newpn = mysql_num_rows(mysql_query("SELECT empaengerid FROM messages WHERE empfaengerid='$newid[0]'"));
Grüße Jan
Guten Morgen,
ich liege doch richtig, wenn ich behaupte, ich lese mit mysql_num_rows aus wievie Reihen sich in der Tabelle befinden, oder?
Nun möchte ich es gerne folgendermassen machen:
$newid = mysql_fetch_array(mysql_query("SELECT * FROM user WHERE sessid='$_COOKIE[pdsessid]'"));
$newpn = mysql_num_rows(mysql_query("SELECT empaengerid FROM messages WHERE empfaengerid='$newid[0]'"));
Ich vergesse leider immer die Hälfte... :-(
wenn ich die Variable nun mit echo $newpn[0]; ausgeben lassen möchte bekomme ich eine mysql Meldung
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /srv/www/htdocs/web429/html/includes/header.inc on line 47
Wo liegt mein Fehler?
Grüße Jan
Guten Morgen Jan,
ich liege doch richtig, wenn ich behaupte, ich lese mit mysql_num_rows aus wievie Reihen sich in der Tabelle befinden, oder?
Nein
Wo liegt mein Fehler?
Das Du dort nicht nachgelesen hast
http://de.php.net/manual/de/function.mysql-num-rows.php
Viele Grüße
lulu
Guten Morgen lulu,
Nein
gut zu wissen der eine sagt ja der andere nein...
Das Du dort nicht nachgelesen hast
http://de.php.net/manual/de/function.mysql-num-rows.php
Macht mich nicht schlauer... es funktionier ja, wenn ich mir alle Datensätze augeben lasse, aber es geht nicht, wenn ich nur die Datensätze haben möchte die mit der empfaengerid='2' gekennzeichnet sind...
Gruß JAn
ich liege doch richtig, wenn ich behaupte, ich lese mit mysql_num_rows aus wievie Reihen sich in der Tabelle befinden, oder?
Ja mysql_num_rows gibt an, wie viele Zeilen der Query Befehl ergeben hat.
Ich sehe in deinem Script gerade keinen Fehler. Aber nimm doch das ganze etwas auseinander.
Zum Beispiel:
$query = mysql_query("SELECT * FROM user WHERE sessid='$_COOKIE[pdsessid]'");
$newid = mysql_fetch_row($query);
$query2 = mysql_query("SELECT empaengerid FROM messages WHERE empfaengerid='$newid[0]'")
$newpn = mysql_num_rows($query2);
Überprüf doch mal was du im Array $newid bekommst. Vieleicht bekommst du dort etwas ganz falsches.
P.S. gib beim ersten query an welches Feld du möchtest und nicht *
Hi,
ich liege doch richtig, wenn ich behaupte, ich lese mit mysql_num_rows aus wievie Reihen sich in der Tabelle befinden, oder?
Nein, liegst Du nicht.
mysql_num_rows gibt die Anzahl der mit dem letzten SELECT-Statement gefundenen Zeilen zurück.
Nun möchte ich es gerne folgendermassen machen:
$newid = mysql_fetch_array(mysql_query("SELECT * FROM user WHERE sessid='$_COOKIE[pdsessid]'"));
$newpn = mysql_num_rows(mysql_query("SELECT empaengerid FROM messages WHERE empfaengerid='$newid[0]'"));
Und was hält Dich davon ab?
Optimal ist die Konstruktion nicht - Du fängst keinerlei Fehler ab, und ob das mit den Array-Zugriffen im String funktioniert ohne {}, wage ich zu bezweifeln. Und SELECT * sollte man nur für Testzwecke benutzen.
cu,
Andreas
Ahoi Jan,
Nun möchte ich es gerne folgendermassen machen:
was willst du genau machen? wo ist der fehler?
$newid = mysql_fetch_array(mysql_query("SELECT * FROM user WHERE sessid='$_COOKIE[pdsessid]'"));
$newpn = mysql_num_rows(mysql_query("SELECT empaengerid FROM messages WHERE empfaengerid='$newid[0]'"));
wie wäre es wenn du den code etwas übersichtlicher machst:
$sql = "SELECT * FROM user WHERE sessid='$_COOKIE[pdsessid]'";
$erg = mysql_query($sql);
$data = mysql_fetch_array($erg);
$newid = $data[0];
$sql = "SELECT empaengerid FROM messages WHERE empfaengerid='$newid[0]'";
$erg = mysql_query($sql);
$newpn = mysql_num_rows($erg);
dies erleichtert die fehlersuche. wenn z.B. was kommt wie fehler in
zeile 34. Wie schon von anderen erwähnt wurde SELECT * nur für tests.
und wenn du mit fetch_array arbeitest kannst du auch den spaltennamen
angeben.
MfG