Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Warning: mysql_num_rows():

Hi!
Ich habe mir heute ein Buch(PHP/Mysql) gekauft und wollte mal das Beispielforum testen.
Leider kommt immer diese Fehlermeldung:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Programme\Apache Group\Apache2\htdocs\myforum\forumread.php on line 103

Auf grund dieses Fehlers habe ich in anderen Foren geschaut und kam leider zu keiner lösung.
Manche hatten das selbe Problem doch die mussten nur die register_globals auf On setzen. Bei mir hat es nicht gereicht. Es dürfte auch kein Fehler im Script sein da es ja aus dem Buch ist.
Meiner Meinung nach liegt es an meinem PHP oder Apache??
Wenn mir jemand helfen kann, dann bitte!
Gruß,
Prika.

Hier gehts zum Orginal Eintrag "Warning: mysql_num_rows():" im Forum

Antworten

könntest du den code um zeile 103 mal posten?


2.

Code:

// show subjects, names and date/time
$oldthreadID = 0;
$threadCounter = 0;

HierZeile113: if(mysql_num_rows($result)) {
echo '<table border="0" cellpadding="5" cellspacing="0">', "\n";
while($row=mysql_fetch_object($result)) {
// change background color with beginning of each new thread
if($row->rootID!=$oldthreadID) $threadCounter++;
if($threadCounter % 2)
$color = '"#eeeeee"';
else
$color = '"#dddddd"';
// show beginning of new thread
if($row->rootID!=0 and $row->rootID!=$oldthreadID) {
$query = "rootID=$row->rootID" . $sid2;
echo "<tr bgcolor=$color><td>",
build_href("forumthread.php", $query, "(show entire thread)"),
"</td><td></td><td></td>\n";
}
// show subject, name and date
$query = "msgID=$row->msgID" . $sid2;
$shortSubj = substr($row->subject, 0, 55);
if(strlen($row->subject)>55)
$shortSubj .= " ...";
echo "<tr bgcolor=$color><td>",
$row->level ? str_repeat("&nbsp;&nbsp;&nbsp;", $row->level) : "",
build_href("forummessage.php", $query, $shortSubj), "</td>",
"<td align=\"center\"><i>", htmlentities($row->username), "</i>", "</td>",
"<td align=\"right\"> $row->timest </td>\n";
// update oldthreadID
if($row->rootID==0)
$oldthreadID=$row->msgID;
else
$oldthreadID=$row->rootID;
}
echo "</table>\n";
}

// show links to older/newer messages
echo "<p><hr />\n";
if($page>1) {
$query = "forumID=$forumID&page=" . ($page-1) . $sid2;
echo build_href("forumread.php", $query, "Show newer messages.");
if($moremessages) echo " / ";
}
if($moremessages) {
$query = "forumID=$forumID&page=" . ($page+1) . $sid2;
echo build_href("forumread.php", $query, "Show older messages.");
}
echo "</p>\n";

// show link to write a new message
if($page>1 or $moremessages)
echo " / ";
$query = "forumID=$forumID" . $sid2;
echo build_href("forumwrite.php", $query, "Write a new message"),
".\n";


// show link to group list
echo "<p>", build_href("forumlist.php", SID, "List of all forums"), ".</p>\n";

// show link to logout
echo "<br />", build_href("forumlogout.php", "", "Logout"), ".</p>\n";

// show copyright message for all examples
show_copyright();

?>


3.

tu mir nen gefallen und formatier den code. das geht indem du \[CODE]code \[\php]verwendest ohne die vorderen\
und markier bitte die zeile 103


4.

jo!
\[CODE]// show subjects, names and date/time
$oldthreadID = 0;
$threadCounter = 0;
if(mysql_num_rows($result)) {
echo '<table border="0" cellpadding="5" cellspacing="0">', "\n";
while($row=mysql_fetch_object($result)) {
// change background color with beginning of each new thread
if($row->rootID!=$oldthreadID) $threadCounter++;
if($threadCounter % 2)
$color = '"#eeeeee"';
else
$color = '"#dddddd"';
// show beginning of new thread
if($row->rootID!=0 and $row->rootID!=$oldthreadID) {
$query = "rootID=$row->rootID" . $sid2;
echo "<tr bgcolor=$color><td>",
build_href("forumthread.php", $query, "(show entire thread)"),
"</td><td></td><td></td>\n";
}
// show subject, name and date
$query = "msgID=$row->msgID" . $sid2;
$shortSubj = substr($row->subject, 0, 55);
if(strlen($row->subject)>55)
$shortSubj .= " ...";
echo "<tr bgcolor=$color><td>",
$row->level ? str_repeat("&nbsp;&nbsp;&nbsp;", $row->level) : "",
build_href("forummessage.php", $query, $shortSubj), "</td>",
"<td align=\"center\"><i>", htmlentities($row->username), "</i>", "</td>",
"<td align=\"right\"> $row->timest </td>\n";
// update oldthreadID
if($row->rootID==0)
$oldthreadID=$row->msgID;
else
$oldthreadID=$row->rootID;
}
echo "</table>\n";
}

// show links to older/newer messages
echo "<p><hr />\n";
if($page>1) {
$query = "forumID=$forumID&page=" . ($page-1) . $sid2;
echo build_href("forumread.php", $query, "Show newer messages.");
if($moremessages) echo " / ";
}
if($moremessages) {
$query = "forumID=$forumID&page=" . ($page+1) . $sid2;
echo build_href("forumread.php", $query, "Show older messages.");
}
echo "</p>\n";

// show link to write a new message
if($page>1 or $moremessages)
echo " / ";
$query = "forumID=$forumID" . $sid2;
echo build_href("forumwrite.php", $query, "Write a new message"),
".\n";


// show link to group list
echo "<p>", build_href("forumlist.php", SID, "List of all forums"), ".</p>\n";

// show link to logout
echo "<br />", build_href("forumlogout.php", "", "Logout"), ".</p>\n";

// show copyright message for all examples
show_copyright();

?>

\[\php]


5.

[CODE]// show subjects, names and date/time
$oldthreadID = 0;
$threadCounter = 0;
if(mysql_num_rows($result)) {
echo '<table border="0" cellpadding="5" cellspacing="0">', "\n";
while($row=mysql_fetch_object($result)) {
// change background color with beginning of each new thread
if($row->rootID!=$oldthreadID) $threadCounter++;
if($threadCounter % 2)
$color = '"#eeeeee"';
else
$color = '"#dddddd"';
// show beginning of new thread
if($row->rootID!=0 and $row->rootID!=$oldthreadID) {
$query = "rootID=$row->rootID" . $sid2;
echo "<tr bgcolor=$color><td>",
build_href("forumthread.php", $query, "(show entire thread)"),
"</td><td></td><td></td>\n";
}
// show subject, name and date
$query = "msgID=$row->msgID" . $sid2;
$shortSubj = substr($row->subject, 0, 55);
if(strlen($row->subject)>55)
$shortSubj .= " ...";
echo "<tr bgcolor=$color><td>",
$row->level ? str_repeat("&nbsp;&nbsp;&nbsp;", $row->level) : "",
build_href("forummessage.php", $query, $shortSubj), "</td>",
"<td align=\"center\"><i>", htmlentities($row->username), "</i>", "</td>",
"<td align=\"right\"> $row->timest </td>\n";
// update oldthreadID
if($row->rootID==0)
$oldthreadID=$row->msgID;
else
$oldthreadID=$row->rootID;
}
echo "</table>\n";
}

// show links to older/newer messages
echo "<p><hr />\n";
if($page>1) {
$query = "forumID=$forumID&page=" . ($page-1) . $sid2;
echo build_href("forumread.php", $query, "Show newer messages.");
if($moremessages) echo " / ";
}
if($moremessages) {
$query = "forumID=$forumID&page=" . ($page+1) . $sid2;
echo build_href("forumread.php", $query, "Show older messages.");
}
echo "</p>\n";

// show link to write a new message
if($page>1 or $moremessages)
echo " / ";
$query = "forumID=$forumID" . $sid2;
echo build_href("forumwrite.php", $query, "Write a new message"),
".\n";


// show link to group list
echo "<p>", build_href("forumlist.php", SID, "List of all forums"), ".</p>\n";

// show link to logout
echo "<br />", build_href("forumlogout.php", "", "Logout"), ".</p>\n";

// show copyright message for all examples
show_copyright();

?>

[\php]


6.

ich bin zu doof.

Code:                   In Zwischenablage kopieren (nur IE)
1">




7.

mein fehler

habs dir falsch geschrieben


8.

ich find beim überfliegen nur das mysql_num_rows ganz oben.
wenn es um das geht poste doch mal auch den teil wo du $result bekommst. darüber beschwert er sich ja.


9.

Code:                   In Zwischenablage kopieren (nur IE)
2">




10.

"Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Programme\Apache Group\Apache2\htdocs\myforum\forumread.php on line 103"

Die Fehlermeldung sagt doch alles aus! In der Zeile

if(mysql_num_rows($result))

hat $result keine gültige Resource-ID, weil dieser Select

mysql_query("SELECT messages.msgID..........

in die Hose gegangen ist. Ich habe wirklich keine Ahnung, wie oft eine Frage mit dieser Fehlermeldung hier schon gepostet wurde. Allerdings sieht es so aus, als wenn kaum jemand in der Lage ist, die Suchfunktion des Forum zu benutzen.

Ein Tipp: Baue einen Query-String zusammen, den Du dann ausgeben kannst, z.B.:

$query = "SELECT messages.msgID........";

$result = mysql_query($result);

Und zum x-ten Male: Bei Problemen mit MySQL bietet es sich an, diese Zeile nach jeder Query einzubauen:

if (mysql_errno()) echo mysql_error();

Und wenn man einen Query-String hat, dann sogar so:

if (mysql_errno()) echo "Query-String = $query<br>" . mysql_error();

*** Nobody ***


11.

also ich hatte den gleichen fehler und bei mir lag es daran, dass er meine datenbank nicht auswählen konnte, weil ich nicht auf groß/kleinschreibung geachtet hab ...

johnpatcher


12.

ja das sind doch nette leute. nicht so ein *nobody*!
Werd das hier nochmal alles durchgehen. hab das ja alles aus dem buch und deswegen wird wohl kein großer fehler im script sein.



Nobody....da kann ich nur lachen.
"Ich beantworte keine Fragen per PM oder Mail. Unformatiert geposteten Quellcode sehe ich mir nicht an."


13.

hi prika,

nobody iss heut wohl etwas genervt, aber geholfen wird dir ja wenn möglich-ich hoff ja auch immer drauf : -)

steht denn überhaupt die verbindung zu deiner datenbank?

frag doch mal ab, ob $result vorhanden ist :

if(!$result)
echo"hier ist schon ein Fehler aufgetreten";

if(mysql_num_rows($result)) {
echo '<table border="0" cellpadding="5" cellspacing="0">', "\n";
while($row=mysql_fetch_object($result)) {




soweit ich das sehe bekommst du keine daten zurück -->$result ist leer oder nicht vorhanden


14.

@Prika
Ich gehöre hier zu den Leuten, die hier recht viel antworten. Kannst Du Dir vorstellen, daß es irgendwann echt nervt, wenn man jeden Tag immer wieder die gleichen Fragen liest, die hier schon x-Mal beantwortet wurden. Vor allem dann, wenn man mit zwei Stichworten hunderte Antworten finden kann, wenn man mal die Suchfunktion benutzt. Mit "supplied argument" hättest Du des Rätsels Lösung finden können.

Und außerdem denke ich, hast Du doch trotzdem eine ausführliche Antwort bekommen.

Und welchen Teil meiner Signatur findest Du zum Lachen? Satz 1 oder 2, oder gar alles?

Zu Satz 1: Bevor ich das in meiner Signatur hatte, habe ich jeden Tag mindestens 1 PM oder Mail erhalten. Das wurde mir zuviel.

Zu Satz 2: Ich denke, es ist nicht zuviel verlangt, wenn der Fragende die Formatierungsmöglichkeiten des Forums nutzt. Ein formatierter Quellcode läßt sich nun mal besser lesen. Man bedenke auch, der der Fragende Hilfe braucht, nicht ich.

*** Nobody ***


15.

jetzt ist wieder alles gut.
Gruß,
Prika.

... aber mein forum klappt noch immer nich :(


16.

Wie wärs denn mal mit Forums-FAQ?


17.

@oimel: stimme dafür
@Prika: Hast Du den Code von Nobody bereits eingebaut? Wenn nein: unbedingt tun. Sobald ja: Was gibt es denn jetzt aus?

siehe auch:
http://php.net/mysql_errno
http://php.net/mysql_error


18.

bin gerad im forum des buches und ließ gerad....
bisher nur kopfqualmen!


19.

Bau sie einfach mal ein. Dann kannst Du Dir das Raten sparen ;)
Und wenn dann gleich von Anfang an: connect_to_myforum();.
Ich nehme mal an, diese Funktion sieht ungefähr so aus:
Code:                   In Zwischenablage kopieren (nur IE)
3">

...irgendwie so?
Für den Anfang ist es imho einfacher, (wirkliche) Fehler immer mit der Anweisung die() anzuzeigen. Das Skript bricht dann an dieser Stelle ab. Das ist nicht immer eine gute Methode, aber -wie gesagt- für den Anfang wesentlich einfacher.
Code:                   In Zwischenablage kopieren (nur IE)
4">

usw. usw.
ZUsammen mit Nobodys Vorschlag dann in etwa
Code:                   In Zwischenablage kopieren (nur IE)
5">

Im Echtbetrieb ist sowohl die Ausgabe der genauen Abfrage und des genauen Fehlers vielleicht nicht so ratsam, aber zum Debuggen (ohne echten Debugger) wirklich sinnvoll...


20.

Hi alle zusammen!
es lag daran, dass kein pw in mysql-db gesetzt wurde. also da kam ich nun wirklich nicht drauf. danke für eure hilfe hier!
thnx nobody, volkerK,johnpatcher,chrisnolde!
Gruß,
der Prika.


Hier gehts zum Orginal Eintrag "Warning: mysql_num_rows():" im Forum
 
phpforum.de | Impressum