PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : mysql_num_row()


eichen
11.06.2002, 22:22
ich will die einträge in einer tabelle zählen, und eigentlich klappt das auch ganz wunderbar, solange der befehl so aussieht:

$result = mysql_query("SELECT * FROM tabelle", $db)
$num = mysql_num_rows($result);

doch wenn wenn ich bestimmte einträge zählen will, also mit "where" eingrenze:

$result = mysql_query("SELECT * FROM tabelle where vot=$vot1", $db)
$num = mysql_num_rows($result);

dann erhalt ich immer eine fehlermeldung:

Warning: Supplied argument is not a valid MySQL result resource in /usr/local/httpd/htdocs/kunden/web162/html/gs/poll_res.php on line 104

und 104 ist halt die zeile mit num_rows.

was stimmt da nicht? ich hab schon überall nachgeschaut und nichts hat geholfen
:(


cYrus
11.06.2002, 22:38
das bedeutet, dass dein select keine gültigen werte findet..

so long
cYrus

Jan Krüger
12.06.2002, 10:01
wenn vot ein string-wert ist, würde ich das $vot1 im query-string mal mit quotes umschließen. :)

eichen
13.06.2002, 14:19
jo, das mit den quotes hab ich schon mal ausprobiert und es ging nicht, aber jetzt hab ichs grad wieder versuch und es ging. danke nochmal.

ich hätte da noch was:

ich hab so ne mathematische formel um dan die rozent auszurechnen

($num1 * 100) / $numges

der zeigt mir dann so krasse ergebnisse an wie
15,55555555556
oder
50,55555555556

wie kann ich das runden?

und wieso macht der das überhaupt, in den variablen sind doch nur ganze zahlen gespeichert (5,2,6 usw.)? der muss doch dann auf ganze zahlen runden oder?

wie kann ich runden?

Apraxas
13.06.2002, 19:37
Nun, zunächt versuche es mal mit:

$result = mysql_query("SELECT * FROM tabelle where vot='$vot1'", $db)

Es sind vielelicht nur ganze Zahlen gespeichert, aber du lässt ja die Rows zählen und nicht den Ihnalt!

das mit dem round geht so:

round($zahl, $stellen);

siehe auch
http://www.php.net/manual/en/function.round.php

eichen
14.06.2002, 12:21
jo das mit dem runden hab ich schon durch rumprobieren rausbekommen;)

ist ja eigentlich auch ganz einfach und logisch

trotzdem danke für den tipp, den dass mit den stellen hab ich nicht gewusst;)