phpbar.de logo

Mailinglisten-Archive

[php] Mysql-Probleme

[php] Mysql-Probleme

Markus Wolff php_(at)_phpcenter.de
Mon, 27 May 2002 00:53:09 +0200 (CEST)


Jonathan Schneider said:
> ich will feststellen, wie viele Datensätze sich in meiner
> Datenbank befinden. dafür verbinde ich mich zuerst mit:
[...]
> Soweit noch kein Problem. Dann versuche ich mit folgendem Code an
> die anzahl der Datensätze ranzukommen:
> <code>
> $sql = mysql_db_query("SELECT id FROM Guestbook", $conn);
> if($sql = "FALSE")
> {
> 	echo mysql_error($sql);/* Zeile 6 */
> }
> else
> {
> 	echo "TRUE!!!";
> }
> $anzahl = mysql_affected_rows($sql);/* Zeile 12 */
> </code>
[...]

Moin,

da gibt´s gleich zwei Problemstellen:

1. Sowohl mysql_error() als auch mysql_affected_rows() erwarten als
   Parameter ein MySQL connection handle, also das, was bei Dir in
   der Variable $conn steht. In $sql, was Du jetzt übergibst, steht
   nur der Pointer auf das Ergebnis Deiner Query. Im Sinne der besseren
   Lesbarkeit Deines Codes solltest Du die Ergebnisvariable evtl.
   lieber $result oder $ergebnis nennen statt $sql - das macht die
   Sache deutlicher.

2. mysql_affected_rows() funktioniert nur mit INSERT, UPDATE und DELETE
   queries, Du versuchst aber einen SELECT.

Für Problem zwei gibt´s auch wiederum zwei Lösungen:

1. Ändere die Query. Wenn Du einfach nur die Datensätze zählen willst,
   ohne tatsächlich etwas auszulesen, bietet sich diese Variante an:
   SELECT COUNT(id) AS anzahl FROM Guestbook
   Zurückgeliefert wird ein Feld "anzahl" mit, nunja, der Anzahl der
   Einträge.

2. Wenn Du sowieso alle Datensätze auslesen und nur zusätzlich wissen
   willst, wieviele Einträge es insgesamt sind, benutze die Funktion
   mysql_num_rows() statt mysql_affected_rows(). In Deinem Beispiel
   sähe das dann so aus:
   $anzahl = mysql_num_rows($sql);
   Und ja, _hier_ ist es tatsächlich das resultset, auf das sich
   bezogen wird (macht ja auch Sinn, denn schließlich gibt´s hier ja
   auch eins im Gegensatz zu mysql_error() oder ...affected_rows()).

So, ich hoffe das hilft... jetzt geht´s für mich erstmal ab in die
Heia ;-)

Gruß,
 Markus

-- 
Nur noch eine Woche Zeit zur Anmeldung zum Workshop
"Webapplikationen mit PHP" bei akademie.de - jetzt buchen!
http://akademie.de/websiteaufbau/workshops/info/index.html?ws_id=189
*21st Media* | Markus Wolff | Hamburg, Germany | http://www.21st.de/


php::bar PHP Wiki   -   Listenarchive