simple Abfrage

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

  • simple Abfrage

    Hallo,
    als Anfäger grübel ich über eine simple Abfrage, bei der ich nur Fehlermeldungen erhalte .
    Vielleicht kann mir einer nen Tipp geben.

    Ich habe in einer Spalte (rate) einer Tabelle (feedbacks) verschiedene Werte zwischen 1 und 5.
    Nun möchte ich zum Beispiel die Anzahl der Einträge mit dem Wert 4 ermitteln.
    Was mach ich verkehrt ?
    Hier mein laienhafter Ansatz:


    <?
    $abfrage = mysql_query("select SUM(rate)as feedbacks WHERE rated_user_id='$user_id' AND rate LIKE 4");
    $ergebnis = mysql_fetch_array($abfrage);
    ?>

    <? print $ergebnis; ?>

    Ich danke Euch ;o)

  • #2
    Re: simple Abfrage

    Original geschrieben von mishico
    bei der ich nur Fehlermeldungen erhalte .
    ich sehe keine.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Hier die Fehlermeldung ...
      mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/www/htdocs ....

      Kommentar


      • #4
        verwende mysql_error(), um die fehlermeldung der datenbank zu sehen.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Hallo,
          damit gibt er mir folgenden Hinweis aus:

          You have an error in your SQL syntax near 'WHERE rated_user_id='35df671385b2d1b81e914b8bf556a5a5' AND rate LIKE 4' at line 1

          Hmmm....

          Kommentar


          • #6
            dann möchtest du vielleicht auch noch die tabelle angeben, aus der du was auslesen möchtest *g*
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Auch ein: "rate LIKE 4" ist relativ sinnfrei ... !
              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


              • #8
                Hallo Ihr....
                nachdem ich nun den ganze Tag an dieser Abfrage gesessen und hunderte von Seiten gelesen habe ... ich komm nicht weiter.... Sackgasse...Blackout.
                Ich hab die Abfrage nun in den unmöglichsten Varianten ausprobiert, aber ich glaub irgendwo scheiter ich.
                Zuletzt gibt mir mysql_error() den Wert "Array" zurück


                wahsaga "dann möchtest du vielleicht auch noch die tabelle angeben, aus der du was auslesen möchtest *g*"

                <?
                $abfrage = mysql_query("select SUM(rate)as feedbacks WHERE rated_user_id='$user_id' AND rate LIKE 4");
                $ergebnis = mysql_fetch_array($abfrage);
                ?>
                Hab ich hier nicht angegeben, ds ich aus der Tabelle "feedbacks" auslesen möchte?


                goth " Auch ein: "rate LIKE 4" ist relativ sinnfrei ... !"
                Ich habe 5 Werte....1,2,3,4,5.... gib mir bitte einen alternativen Ansatz.

                Noch ein Grundlegender Gedanke.... vielleicht bin ich vollkommen auf dem falschen Weg:
                Ich möchte die Anzahl , nicht die Summe, des Wertes z.B "4" abfragen. Bin ich hier nicht besser mit COUNT bedient ?

                Ich hab nun so viel gelesen und bin wirrr...... ich sag erstmal gute nacht und vielen Dank ;o)

                Kommentar


                • #9
                  Original geschrieben von mishico
                  <?
                  $abfrage = mysql_query("select SUM(rate)as feedbacks WHERE rated_user_id='$user_id' AND rate LIKE 4");
                  $ergebnis = mysql_fetch_array($abfrage);
                  ?>
                  Hab ich hier nicht angegeben, ds ich aus der Tabelle "feedbacks" auslesen möchte?
                  Nein hast Du nicht ... AS ist eine obsolete Notation um in diesem Falle einen Alias für SUM(rate) anzugeben ... Die Tabelle die Du verwenden willst gibst Du in einer FROM-Clause an ...
                  Original geschrieben von mishico
                  goth " Auch ein: "rate LIKE 4" ist relativ sinnfrei ... !"
                  Ich habe 5 Werte....1,2,3,4,5.... gib mir bitte einen alternativen Ansatz.
                  LIKE ist eine einfache Variante um Vergleichsmasken zu verwenden ...

                  PS.: Ja ... du bist mit COUNT() sicher besser bedient ... !
                  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


                  • #10
                    Hallo,
                    hab es nun endlich mit COUNT hinbekommen und wollte es für diejenigen die ähliches Problem haben noch mal reinposten.

                    $abfrage = mysql_query("select COUNT(rate)FROM feedbacks WHERE rated_user_id='$user_id' AND rate LIKE 5");
                    $ergebnis = mysql_fetch_array($abfrage);
                    echo $ergebnis[ 'COUNT(rate)' ];

                    Nun möchte ich ja die Anzahl aller Werte von 1 bis 5 nacheinander ausgeben.
                    Macht es sinn, diese Abfrage fünf mal zu wiederholen und nur den LIKE Befehl jeweils zu ändern ?

                    Wer hat einen Ansatz?

                    Ich danke Euch

                    Kommentar


                    • #11
                      PHP-Code:
                      $i 0;
                      while (
                      $i <= 5) {
                      $abfrage mysql_query("select COUNT(rate)FROM feedbacks WHERE rated_user_id='$user_id' AND rate LIKE $i");
                      $ergebnis mysql_fetch_array($abfrage);
                      echo 
                      $ergebnis'COUNT(rate)' ]; 
                      $i++;

                      So oder ähnlich könntest du das auch realisieren, ist aber nur auf die Schnelle geschrieben, könnten also fehler enthalten (was cih weniger denke)

                      Forumregeln!

                      Gute PHP-(tutorial-)Seiten

                      Kommentar


                      • #12
                        Hallo,
                        vielen Dank für die prompte Hilfe. Da kann ich heut ja mal früher ins Bett ;o)

                        Aber das Ergebnis ist nun 6 Stellig .
                        In meinem Fall 6 x die 0, da die Tabelle noch leer ist ??

                        Dann möchte ich nach jedem Wert noch einen Text einfügen.
                        Wie kann ich die Ausgabe aufsplitten ?

                        Vielen Dank

                        Kommentar


                        • #13
                          ups.... ich glaub ich hab mich falsch ausgedrückt....
                          Also das mit der 6 Stelligen Zahl (6 Werte) habe ich korrigiert, indem ich
                          $i = 1;
                          gesetzt habe. Nun wirft mir die Tabelle, da noch keine werte da sind nach der Schleife

                          0 0 0 0 0 aus.... soweit prima ;o)

                          Ich möchte gerne nach jedem Wert wir hier in meiner laienhaften version
                          eine unterschiedliche Grafik nach jedem Wert einsetzen:
                          ?>
                          $abfrage = mysql_query("select COUNT(rate)FROM feedbacks WHERE rated_user_id='$user_id' AND rate LIKE 1");
                          $ergebnis = mysql_fetch_array($abfrage);
                          echo $ergebnis[ 'COUNT(rate)' ];
                          ?>x<img src="images/1stern.gif" width="10" height="10" border="0"> <br>
                          <?
                          $abfrage = mysql_query("select COUNT(rate)FROM feedbacks WHERE rated_user_id='$user_id' AND rate LIKE 2");
                          $ergebnis = mysql_fetch_array($abfrage);
                          echo $ergebnis[ 'COUNT(rate)' ];
                          ?>x<img src="images/2stern.gif" width="23" height="10" border="0"> <br>
                          <?
                          $abfrage = mysql_query("select COUNT(rate)FROM feedbacks WHERE rated_user_id='$user_id' AND rate LIKE 3");
                          $ergebnis = mysql_fetch_array($abfrage);
                          echo $ergebnis[ 'COUNT(rate)' ];
                          ?>x<img src="images/3stern.gif" width="23" height="10" border="0"> <br>
                          <?
                          $abfrage = mysql_query("select COUNT(rate)FROM feedbacks WHERE rated_user_id='$user_id' AND rate LIKE 4");
                          $ergebnis = mysql_fetch_array($abfrage);
                          echo $ergebnis[ 'COUNT(rate)' ];
                          ?>x<img src="images/4stern.gif" width="23" height="10" border="0"> <br>
                          <?
                          $abfrage = mysql_query("select COUNT(rate)FROM feedbacks WHERE rated_user_id='$user_id' AND rate LIKE 5");
                          $ergebnis = mysql_fetch_array($abfrage);
                          echo $ergebnis[ 'COUNT(rate)' ];
                          ?>x<img src="images/5stern.gif" width="23" height="10" border="0"> <br>


                          Wie kann ich das bei
                          ...
                          echo $ergebnis[ 'COUNT(rate)' ];
                          $i++;
                          }

                          erreichen

                          Vielen Dnk ;o))

                          Kommentar


                          • #14
                            Original geschrieben von mishico
                            PHP-Code:
                            $abfrage = mysql_query("select COUNT(rate)FROM feedbacks WHERE rated_user_id='$user_id' AND rate LIKE 1");
                            $ergebnis = mysql_fetch_array($abfrage);
                            echo $ergebnis[ 'COUNT(rate)' ]; 
                            ?>[B]x<img src="images/1stern.gif" width="10" height="10" border="0"><b>ups.... ich glaub ich hab mich falsch ausgedrückt....
                            Also das mit der 6 Stelligen Zahl (6 Werte) habe ich korrigiert, indem ich 
                            $i = 1;
                            gesetzt habe. Nun wirft mir die Tabelle, da noch keine werte da sind nach der Schleife

                            0 0 0 0 0  aus.... soweit prima ;o)

                            Ich möchte gerne nach jedem Wert wir hier in meiner laienhaften version
                            eine unterschiedliche Grafik nach jedem Wert einsetzen:
                            ?></b>  <br> 
                            <?
                            $abfrage = mysql_query("select COUNT(rate)FROM feedbacks WHERE rated_user_id='$user_id' AND rate LIKE 2");
                            $ergebnis = mysql_fetch_array($abfrage);
                            echo $ergebnis[ 'COUNT(rate)' ]; 
                            ?>[B]x<img src="images/2stern.gif" width="23" height="10" border="0">[/B]  <br>
                            <?
                            $abfrage = mysql_query("select COUNT(rate)FROM feedbacks WHERE rated_user_id='$user_id' AND rate LIKE 3");
                            $ergebnis = mysql_fetch_array($abfrage);
                            echo $ergebnis[ 'COUNT(rate)' ]; 
                            ?>[B]x<img src="images/3stern.gif" width="23" height="10" border="0">[/B]  <br>
                            <?
                            $abfrage = mysql_query("select COUNT(rate)FROM feedbacks WHERE rated_user_id='$user_id' AND rate LIKE 4");
                            $ergebnis = mysql_fetch_array($abfrage);
                            echo $ergebnis[ 'COUNT(rate)' ]; 
                            ?>[B]x<img src="images/4stern.gif" width="23" height="10" border="0">[/B]  <br>
                            <?
                            $abfrage = mysql_query("select COUNT(rate)FROM feedbacks WHERE rated_user_id='$user_id' AND rate LIKE 5");
                            $ergebnis = mysql_fetch_array($abfrage);
                            echo $ergebnis[ 'COUNT(rate)' ]; 
                            ?>[B]x<img src="images/5stern.gif" width="23" height="10" border="0"> [/B] <br>
                            Wie kann ich das bei
                            ...
                            echo $ergebnis[ 'COUNT(rate)' ];
                            $i++;
                            }

                            erreichen

                            Vielen Dnk ;o)) [/B]

                            PHP-Code:
                            $i=1;
                            while (
                            $i<=5){
                            $abfrage mysql_query("select COUNT(rate)FROM feedbacks WHERE rated_user_id='$user_id' AND rate LIKE $i");
                            $ergebnis mysql_fetch_array($abfrage);
                            echo 
                            $ergebnis'COUNT(rate)' ];
                            <
                            img src=\"images/.$i.stern.gif\" width=\"10\" height=\"10\" border=\"0\"> <br> 
                            i++;

                            so ungefähr müsste das gehen


                            ey der klaut mir vorm "images das \

                            Kommentar

                            Lädt...
                            X