kostenloser Webspace werbefrei: lima-city


mysql_num_rows

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    seth93

    seth93 hat kostenlosen Webspace.

    Hey,

    so langsam nervt mich die Funktion mysql_num_rows.
    Was liefert sie denn jetzt für einen Typ zurück?
    Einen Integer oder einen String?

    Es kommt mir echt so vor, als ob sich das jedes mal ändert.
    In dem einem Script muss ich == '0' setzen und in nem anderen dann == 0.

    Oder hängt der Rückgabe-Typ von den Spalten ab?
    Auf die Idee bin ich grad während des Schreibens gekommen.


    Lg
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. djfun

    Co-Admin Kostenloser Webspace von djfun

    djfun hat kostenlosen Webspace.

    hallo seth93,

    laut http://php.net/manual/de/function.mysql-num-rows.php gibt die Funktion einen 'int'-Wert, also eine Zahl, zurück.

    gruß, djfun
  4. PHP wird == 0 und == '0' sowieso gleichwertig behandeln:
    0 == '0' => true
    (Um 0 und '0' zu unterscheiden, müsste man === verwenden :)
  5. weiß ja nich was du dann damit vor hast, wenn das eine abfrage sein soll um zu überprüfen, ob der querry ein ergebnis liefert, da benutze ich immer:
    if (mysql_num_rows($result)) {
     //rechnerei
    }

    greez
  6. Autor dieses Themas

    seth93

    seth93 hat kostenlosen Webspace.

    Ne, irgendwie nicht.
    Hab grad ein Login-Script geschrieben, da sollte geprüft werden ob der User exitstiert.
    Bei $menge = 0 wurde man immer eingeloggt, egal ob User existiert oder nicht.
    Bei '0' hat es funktioniert.
    Aber es gibt auch Fälle, wo das genau umgekehrt ist.


    Lg
  7. Hallo,

    allgemein zu PHP: immer schön auf den Datentyp aufpassen! viele Funktionen können beide Werte liefert - ein "false" (zB wenn was schief geht) oder eine "0" (wenn man Zb 0 Datensätze gefunden hat). Deswegen sollte man sich dran gewöhnen, true und false nicht mit "!" oder ähn. zu checken, sondern immer mit "===" bzw. "!==", das nicht nur den Wert, sondern auch Typ in den Vergleich mit einbezieht!

    MfG
    Nadobnykh
  8. christianbrosch

    christianbrosch hat kostenlosen Webspace.

    Übrigens hab ich mal gelesen das man mysql_num_rows nicht verwenden soll, sondern statt desen das:

    function get_rows ($table_and_query) {
            $total = mysql_query("SELECT COUNT(*) FROM $table_and_query");
            $total = mysql_fetch_array($total);
            return $total[0];
    }


    Weiß aber nicht mehr genau wieso
  9. Ich weiß nicht, wo du das gelesen hast, aber das ist eine Fehlinformation ;)

    PDO beispielsweise nutzt diese Funktion nach wie vor, obwohl es sich hierbei um "neue Rechtschreibung" handelt. Hier nennt sich das Ganze fetchColumn, beinhaltet aber die selbe Funktionsweise, jedoch auf mehrere verschiedene Datenbanktypen ausgelegt.

    Ich halte deine "Alternative" für äußerst ineffizient und unter Einbeziehung der Tatsache, dass mysql_num_rows eben doch verwendet werden sollte, auch total unnötig.
  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!