Abfrage vereinfachen?

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

  • Abfrage vereinfachen?

    $pview = mysql_query("SELECT id FROM voting")or die(mysql_error());
    $p = mysql_num_rows( $pview );

    $pwview = mysql_query("SELECT id FROM voting WHERE ************='w'")or die(mysql_error());
    $pw = mysql_num_rows( $pwview );

    $pmview = mysql_query("SELECT id FROM voting WHERE ************='m'")or die(mysql_error());
    $pm = mysql_num_rows( $pmview );

    Kann ich aus diesen 3 Abfragen eine machen?

  • #2
    ja.

    SELECT ************,COUNT(id) FROM voting GROUP by ************

    die summe beider zahlen ist dann die gesamtmenge
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Funktioniert nur halb...

      PHP-Code:
      <?
              $spview = mysql_query("SELECT ************,COUNT(id) FROM voting GROUP by ************")or die(mysql_error());
              $sp = mysql_fetch_row( $spview );
              $spt = $sp[0]+$sp[1];
      ?>
      echo $sp[0] >> m
      echo $sp[1] >> 1
      echo $spt >> 1

      In der Datenbank sind momentan 8 Einträge WHERE ************=w und 1 Eintrag WHERE ************=m

      Hast Du ne Idee?

      Kommentar


      • #4
        Re: Funktioniert nur halb...

        Original geschrieben von westberlin
        Hast Du ne Idee?
        du bekommst ZWEI datensätze zurück mit der abfrage. eine für M mit anzahl und eine für W mit anzahl.

        du musst schon eine schleife machen, bzw. zweimal mysql_fetch_row() aufrufen.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Ich verstehe momentan das statement nicht so ganz, warum muss ich das ergebnis zweimal "fetchen" ??

          Kannst Du mir das erklären bzw einen erklärenden Link setzen?
          Vielen Dank schonmal...!

          Kommentar


          • #6
            sieht das aus, was dir die DB zurück gibt.

            Code:
            ************ | count(*)
            -------------------------------
              m | 1
              w | 7
            macht also zwei datensätze. also zwei zeilen. also zweimal fetch.

            EDIT:
            übrigens kann man sql-queries auch im phpmyadmin mal testen, damit man weiss, wie das ergebnis aussieht.
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              Alles klar, vielen Dank! Jetzt hab ich kapier was da passiert...!
              Danke!

              Kommentar


              • #8
                Kannst Du mir mit der Schleife helfen?
                PHP-Code:
                <?
                        $stview = mysql_query("SELECT ************,COUNT(id) FROM voting GROUP by ************")or die(mysql_error());
                        $zahl1 = 0;
                        while($st = mysql_fetch_row($stview)){
                        $sp[$zahl1]=st[1];
                        $zahl1++;
                        }
                        $spt = $sp[0]+$sp[1];
                       ?>
                So bekomm ich ständig eine Fehlermeldung, dass mit dieser Linie was nicht ok ist: $sp[$zahl1]=st[1];

                Kommentar


                • #9
                  wo war denn da das problem?
                  PHP-Code:
                  <?php

                      $sql 
                  "SELECT ************,COUNT(id) anzahl FROM voting GROUP by ************";
                      
                  $res mysql_query($sql) or die(mysql_error());

                      
                  $all 0;
                      while(
                  $line mysql_fetch_assoc($res))
                      {
                          if (
                  $line["************"]=="m"$c_male   $line["anzahl"];
                          if (
                  $line["************"]=="w"$c_female $line["anzahl"];
                          
                  $all+= $line["anzahl"];
                      }

                      echo 
                  "<pre>";
                      echo 
                  "\n counter male   : " $c_male;
                      echo 
                  "\n counter female : " $c_female;
                      echo 
                  "\n counter all I  : " $all;
                      echo 
                  "\n counter all II : " . ($c_male $c_female);
                      echo 
                  "</pre>";

                  ?>
                  INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                  Kommentar


                  • #10
                    Habs einfach net hinbekommen, vielen Dank für die Hilfe !!

                    Kommentar


                    • #11
                      Original geschrieben von westberlin
                      PHP-Code:
                      $sp[$zahl1]=st[1]; 
                      So bekomm ich ständig eine Fehlermeldung, dass mit dieser Linie was nicht ok ist: $sp[$zahl1]=st[1];
                      $st[1] wäre evtl. besser gewesen
                      Ich denke, also bin ich. - Einige sind trotzdem...

                      Kommentar

                      Lädt...
                      X