Zwei MySQL Queries und anschliessende Variable

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

  • Zwei MySQL Queries und anschliessende Variable

    Guten Tag die Herrschaften,

    Ich hoffe mir kann geholfen werden denn die SuFu und das WWW brachten keine ergebnisse von nutzen. Mein Problem ist das ich zwei MySQL Abfragen habe mit mehren Bedingungen. Die Abfragen sind einzeln in einer Variable gespeichert und verwenden keine Joins. Das sieht im Code so aus:

    PHP-Code:
    // Erste Abfrage, um zu zählen wieviele Benutzer den Status "rot" haben
    $query "SELECT COUNT(*) AS count FROM benutzer WHERE status= 'rot'";
    $result mysql_query($query);
    $row mysql_fetch_array($result);
    $numofrows $row['count'];

    // ...um festzustellen wieviele Benutzer den Status "rot" haben dürfen
    $query2 "SELECT id,status FROM gruppen WHERE status = 'rot'";
    result2 mysql_query($query2);
    $numrows2 mysql_num_rows($result2); 
    Okay, das waren die Zwei Abfragen, jetzt kommt eine simple Abfrage der Variablen:

    PHP-Code:

    if ($numofrows $numrows2) {
      
    $anzeige "Es gibt mehr Benutzer mit dem Status ROT als erlaubt wäre.";
    }
    else {
      
    $anzeige "Alles Okay!";
    }

    echo 
    "$anzeige"
    Das funktioniert allerdings nicht, ich vermute es ist die Art wie ich die zwei Abfragen aufrufe... habe mich schon mit den Joins befasst die kann man hier jedoch nicht anwenden (?).

    Einfach gesagt möchte ich über zwei SQL Abfragen feststellen wie hoch die Werte sind und anhand dieser Werte (in je 2 PHP Variablen) weitere Operationen in PHP durchführen.

    Ich hoffe ich hab das klar genug geschrieben. Besten Dank im voraus
    Zuletzt geändert von xpo777; 12.04.2010, 14:39.

  • #2
    $numrows bei der ersten Abfrage ist immer 1, weil COUNT(*) genau ein Wert ist.
    Zuletzt geändert von h3ll; 12.04.2010, 14:20.

    Kommentar


    • #3
      Überleg mal woher $row nach der ersten Abfrage kommen soll. Variablen fallen nicht vom Himmel!

      Kommentar


      • #4
        Hallo und willkommen im Forum,

        bitte beachte die Forenregeln hinsichtlich der Einstellungen des Error-Reportings. Dann sagt PHP dir auch, dass $row nicht definiert ist. Es wurde nämlich nie mit mysql_fetch_assoc o. ä. abgerufen.

        Edit: zu spät...

        Gruß,

        Amica
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          Hui das ging schnell. Habe jetzt noch die $row Variable angepasst:

          PHP-Code:
          $row mysql_fetch_array($result); 
          Allerdings ändert sich nichts, Error Reporting sagt immer noch

          Code:
          Warning: mysql_num_rows() expects parameter 1 to be resource,
          boolean given in c:\server\htdocs\status\process.php
          Noch wichtig ist das es sich bei der ersten Abfrage um ein einziges Feld handelt in dem ein Integer Wert von 13 steht. Also ich möchte überprüfen wieviele Einträge in der Tabelle mit der Bedingung "rot" sind und anschliessend will ich ausrechnen ob der MySQL-Rückgabewert mehr oder weniger ist als der 13er Wert aus der ersten Abfrage.
          Zuletzt geändert von xpo777; 12.04.2010, 14:46.

          Kommentar


          • #6
            Die Fehlermeldung davor ist wichtig, nämlich die, welche dir sagt, warum du dich nicht mit dem MySQL-Server verbinden kannst. Falls du irgendwo noch einen @-Operator hast: Weg damit!

            Wahrscheinlich hast du aber mysql_connect komplett vergessen, in deinem Code ist es jedenfalls nicht zu finden.
            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
            Super, danke!
            [/COLOR]

            Kommentar


            • #7
              Zitat von xpo777 Beitrag anzeigen
              Allerdings ändert sich nichts, Error Reporting sagt immer noch
              Code:
              Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in c:\server\htdocs\status\process.php
              Lustig, dass du von „immer noch“ redest, bei etwas, das du vorher mit keinem Wort erwähnt hast.

              Das heisst, dass mysql_query false zurückgeliefert hat, weil die Query fehlerhaft war. Also nutze mysql_error, um herauszufinden, was dieser Fehler war.

              Btw., das sind absolute Grundlagen der Fehlerbehandlung!
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Ok, besten dank Leute. Das Problem wurde gelöst. Die Probleme waren das ich die $row Variable nicht deklariert hatte und das der Query bei der zweiten Abfrage nicht korrekt war. Jetzt funktionierts

                Kommentar

                Lädt...
                X