Script bricht bei mysql_num_rows einfach ab

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Script bricht bei mysql_num_rows einfach ab

    Hi!

    Ich will in einem Script überprüfen, ob in einer Tabelle Einträge vorhanden sind oder nicht.

    PHP-Code:
        $sqlbefehl  =  "SELECT * FROM mos_management";
    $ergebnis  mysql_query($sqlbefehl$serverid) or die (mysql_error($serverid));
    $ausgabe_gesamt mysql_num_rows($ergebnis) or die (mysql_error($serverid));
    if (
    $ausgabe_gesamt 0) {
    ... 
    Wenn jetzt in der Tabelle Einträge vorhanden sind, dann läuft das Script ganz normal durch, wenn aber, und das ist mein Problem, in der Tabelle keine Datensätze vorhanden sind, dann bricht das Script einfach ohne Fehlermeldung ab.
    Wenn ich statt mysql_error($serverid) einfach "Fehler" in die Klammern vom "die" setze, dann wird auch "Fehler" ausgegeben, aber nichts wenn ich da mysql_error stehen habe.

    Woran kann das liegen? Danke im vorraus.

    php-version: 4.3.10-1.dotdeb.0
    mysql-version: 4.1.9

    mfg
    shelvis

  • #2
    dann bricht das Script einfach ohne Fehlermeldung ab.
    woher weißt du, daß es abbricht?
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      Na ... dann lasst uns doch mal überlegen was der Ausdruck
      PHP-Code:
      $ausgabe_gesamt mysql_num_rows($ergebnis) or die (mysql_error($serverid)); 
      wohl so bedeuten mag ... !

      Was passiert wohl wenn mysql_num_rows() den Wert 0 liefert ... also FALSE ... und wenn, da kein Datenbankfehler aufgetreten ist mysql_error() 'nen Leerstring zurückliefert ... na ... kommen wir selber drauf ... ?!
      carpe noctem

      [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
      [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

      Kommentar


      • #4
        danke für eure hilfe
        woher weißt du, daß es abbricht?
        dass das Script abbricht, weiß ich daher, das 1. nur nen Teil vom Inhalt ausgegeben wird und module und design usw. (das ganze is für ne Mambo-Komponente) fehlen und 2. hatte ich in die zeile davor und danach nen echo eingebaut, also so:
        PHP-Code:
            $sqlbefehl  =  "SELECT * FROM mos_management";
        $ergebnis  mysql_query($sqlbefehl$serverid) or die (mysql_error($serverid));
        echo 
        "test1";
        $ausgabe_gesamt mysql_num_rows($ergebnis) or die (mysql_error($serverid));
        echo 
        "test2";
        if (
        $ausgabe_gesamt 0) { 
        da wurde dann "test1" ausgegeben, "test2" aber nicht, obwohl kein Fehler vom mysql_num_rows ausgegeben wurde
        und 3. wenn ich nicht
        PHP-Code:
        $ausgabe_gesamt mysql_num_rows($ergebnis) or die (mysql_error($serverid)); 
        sondern
        PHP-Code:
        $ausgabe_gesamt mysql_num_rows($ergebnis) or die ("Fehler"); 
        da stehn hatte, dann wurde "test1" und "Fehler" ausgegeben, nicht aber "test2"

        @goth: ich weiß schon was das bedeutet, ich bin schließlich kein Anfänger mehr, aber was ich halt nicht verstehe ist, das der da trotz nem Leerstring von mysql_error() abbricht, das ganze aber nur so ist, wenn keine Datensätze vorhanden sind, wenn aber Datensätze vorhanden sind, das Script ordnungsgemäß funktioniert

        Kommentar


        • #5
          Scheinbar hast Du's ja doch nicht verstanden ... :

          Wenn mysql_num_rows() != 0 ist wird der Ausdruck als TRUE evaluiert ... eine weitere Auswertung terminiert ... und der Rückgabewert der Funktion als Ausdruckswert zugewiesen ...

          Ist mysql_num_rows() == 0 wird ... da OR ... weiter ausgewertet ... und die() terminiert den Programm Ablauf nunmal vollkommen unabhängig von dem Ihr übergebenen Wert ...

          Ich persönlich halte das Construct eh für vollkommen überflüssig ... weil eine fehlerhafte Ausführung des Statements bereits 2 Zeilen (mysql_query) vorher zum abbruch des Scripts geführt hätte ... !
          carpe noctem

          [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
          [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

          Kommentar


          • #6
            achso, jetz versteh ich was du meinst
            wenn keine Datensätze vorhanden sind, dann ist mysql_num_rows == false und der php-parser arbeitet dann quasi folgendermasen
            PHP-Code:
            if ($mysql_num_rows) {}
            else {echo 
            mysql_error(); } 
            ich hab jetzt das "or die(..)" weggenommen, jetz funktionierts

            jetz hab ichs verstanden
            für deine hilfe

            Kommentar

            Lädt...
            X