Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Alle mysql werte ausgeben(nicht nur einen)

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Alle mysql werte ausgeben(nicht nur einen)

    Hallo zusammen,

    Ich hab mit folgendem php code ein Problem:

    PHP-Code:
    $sql3 "SELECT
        challengeID,
        playerID,
        Score
    FROM
        records
    WHERE 
        playerID = '
    $playerid'";    
    $result3 $db->query($sql3);
    if (!
    $result3) {
        die (
    'Etwas stimmte mit dem Query nicht: '.$db->error);
        }
    $data3 $result3->fetch_assoc();

    echo 
    $data3['Score']; 
    Es gibt mehrere Felder wo die playerID = $playerid ist. Aber wenn ich es so wie oben mache, bekomm ich nur den ersten wert von der datenbank wo playerID = $playerid ist. Es gibt aber definitiv mehrere wo das zutrifft.

    Ich benötige aber alle Werte von Score wo playerID = $playerid ist.
    Ich hoffe Ihr könnt mir helfen.

    Edit: Es wird irgendwie komisch angezeit, sry..

    mfg Jojo

  • #2
    Was steht den in der query() Methode der Klasse in $db?

    Edit:
    Im Editor musst du [php] Tags verwenden. Also auf klicken
    [FONT="Book Antiqua"][I]"Nobody is as smart as everybody" - Kevin Kelly[/I]
    — The best things in life aren't things[/FONT]

    Kommentar


    • #3
      Das ganze sieht so aus:

      PHP-Code:
      $db = @new mysqli(host,username,password,database);
      if (
      mysqli_connect_errno()) {
          die (
      'Konnte keine Verbindung zur Datenbank aufbauen: '.mysqli_connect_error().'('.mysqli_connect_errno().')');
      }

      //restlicher Teil, wo z.B. die $playerid definiert ist.

      $sql3 "SELECT
          challengeID,
          playerID,
          Score
      FROM
          records
      WHERE 
          playerID = '
      $playerid'";    
      $result3 $db->query($sql3);
      if (!
      $result3) {
          die (
      'Etwas stimmte mit dem Query nicht: '.$db->error);
          }
      $data3 $result3->fetch_assoc();

      echo 
      $data['Sore']; 

      Kommentar


      • #4
        Guck dir mal das erste Beispiel an:
        PHP: mysqli_result::fetch_assoc - Manual

        Dann siehst du, dass fetch_assoc() immer nur einen Datensatz zurück liefert und wie man es anstellt alle zu bekommen
        [FONT="Book Antiqua"][I]"Nobody is as smart as everybody" - Kevin Kelly[/I]
        — The best things in life aren't things[/FONT]

        Kommentar


        • #5
          Das heißt, das zweite Beispiel zeigt wie man alle bekommt?

          mfg Jojo

          Kommentar


          • #6
            Nein, aus Beispiel 1
            PHP-Code:
            if ($result $mysqli->query($query)) {

                
            /* fetch associative array */
                
            while ($row $result->fetch_assoc()) {
                    
            printf ("%s (%s)\n"$row["Name"], $row["CountryCode"]);
                }

                
            /* free result set */
                
            $result->close();

            [FONT="Book Antiqua"][I]"Nobody is as smart as everybody" - Kevin Kelly[/I]
            — The best things in life aren't things[/FONT]

            Kommentar


            • #7
              Und Beispiel #1 auch. Nur einmal mit fetch_object() und einmal mit fetch_array()

              Kommentar


              • #8
                Danke für eure Antworten.

                Ich hab noch ne Frage und zwar brauch ich die varible auch außerhalb.

                PHP-Code:
                while($data $result->fetch_assoc()) {
                $Score $data['Score'];
                }

                //$Score wird hier weiterverwendet 
                so klappt das ja nicht, wie muss es richtig heißen?

                Ich mein halt, das ich die Varible überall zur verfügung hab.(sry weiss grad net wie ich des ausdrücken soll)
                mfg Jojo

                Kommentar


                • #9
                  In sofern schwer zu beantworten, da "außerhalb" ein sehr, sehr weiter Begriff ist
                  Einfachste Form
                  PHP-Code:
                  while($data $result->fetch_assoc()) {
                    
                  $Score $data['Score'];
                    
                  //$Score wird hier weiterverwendet

                  Kommentar


                  • #10
                    Jo, danke.

                    Geht leider net, da sich das in einer function befindet und ich die variable noch außerhalb von {} brauche.

                    mfg Jojo

                    Kommentar


                    • #11
                      Ich seh da keine Funktion. Wenn Du uns hier nur Traumcode präsentierst, dann bekommst Du auch entsprechende Antworten.

                      Variablen bekommt man aus Funktionen über den Rückgabewert.
                      [COLOR="#F5F5FF"]--[/COLOR]
                      [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                      [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                      [COLOR="#F5F5FF"]
                      --[/COLOR]

                      Kommentar


                      • #12
                        ok sry, hätt ich gleich machen sollen.

                        PHP-Code:
                        function getplayersinfo($Login) {
                        $db = @new mysqli(host,username,password,database);
                        if (
                        mysqli_connect_errno()) {
                            die (
                        'Konnte keine Verbindung zur Datenbank aufbauen: '.mysqli_connect_error().'('.mysqli_connect_errno().')');
                        }

                        $sql "SELECT
                            Id,
                            Login,
                            NickName,
                            Nation,
                            Wins,
                            Timeplayed
                        FROM
                            players
                        WHERE 
                            Login = '
                        $Login'";    
                        $result $db->query($sql);
                        if (!
                        $result) {
                            die (
                        'Etwas stimmte mit dem Query nicht: '.$db->error);
                            }
                        $data $result->fetch_assoc();    
                        $playerid $data['Id'];

                        $sql2 "SELECT
                            playerID,
                            avg
                        FROM
                            rs_rank
                        WHERE 
                            playerID = '
                        $playerid'";    
                        $result2 $db->query($sql2);
                        if (!
                        $result2) {
                            die (
                        'Etwas stimmte mit dem Query nicht: '.$db->error);
                            }
                        $data2 $result2->fetch_assoc();

                        $sql3 "SELECT
                            challengeID,
                            playerID,
                            Score
                        FROM
                            records
                        WHERE 
                            playerID = '
                        $playerid'";    
                        $result3 $db->query($sql3);
                        if (!
                        $result3) {
                            die (
                        'Etwas stimmte mit dem Query nicht: '.$db->error);
                            }
                        while (
                        $data3 $result3->fetch_assoc()) {

                        $Scores $data3['Score'];
                        }

                        $playerinfo = array($data['Login'],$data['NickName'],$data['Nation'],$data['Wins'],$data['Timeplayed'],$data2['avg'],$Scores);

                        return 
                        $playerinfo;



                        die Variable $Scores ist der erste Wert aus der table, es gibt aber definitiv mehrere. Wie bekomm ich alle?

                        mfg Jojo

                        Kommentar


                        • #13
                          Zitat von Jojo_44 Beitrag anzeigen
                          PHP-Code:
                          $sql3 "SELECT
                              challengeID,
                              playerID,
                              Score
                          FROM
                              records
                          WHERE 
                              playerID = '
                          $playerid'";    
                          $result3 $db->query($sql3);
                          if (!
                          $result3) {
                              die (
                          'Etwas stimmte mit dem Query nicht: '.$db->error);
                              }
                          while (
                          $data3 $result3->fetch_assoc()) {

                          $Scores $data3['Score'];

                          die Variable $Scores ist der erste Wert aus der table, es gibt aber definitiv mehrere. Wie bekomm ich alle?
                          Der Code müsste eigentlich alle Rows durchgehen und jedesmal $Scores zuweisen. Daher sollte $Scores zum Schluss den Wert der letzten Row haben.

                          So füllst du ein Array mit den Scores:
                          PHP-Code:
                          $Scores = array();
                          while (
                          $data3 $result3->fetch_assoc()) {

                          $Scores[] = $data3['Score'];

                          So bekommst du gleich einen ganzen Block Daten ohne while:
                          PHP-Code:
                          $data3 $result3->fetch_all(); 
                          Daraus müsstest du dann deine Scores herausfiltern..

                          Am besten wäre es jedoch, wenn du deine drei Queries zu einem einzigen verschachtelst und dieses dann als bereits perfektionierten Datenblock von der Datenbank empfängst. Die Tabellen verbindest du über verschiedene Typen von Joins. MySQL kann dir überigens auch sehr praktisch Spalten zusammenrechenen... SUM(spalte)

                          Kommentar


                          • #14
                            OK danke hab ich gemacht, und hat funktioniert(das mit Joins).

                            Vielen Dank nochmal. Thread erledigt

                            mfg Jojo

                            Kommentar

                            Lädt...
                            X