Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Datensatz in Datenbank schreiben funktioniert nicht

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Datensatz in Datenbank schreiben funktioniert nicht

    Moin!

    Ich habe folgendes Problem: Ich versuche, Daten in eine MySQL-Tabelle schreiben zu lassen - was jedoch nicht funktioniert.

    PHP-Code:
    $wwm_abfragen "SELECT * FROM wwm"// WHERE frage_nummer = ".$i;
        
    $wwm mysql_query($wwm_abfragen);
        
    $frage = array();
        
    $antwort_richtig = array();
        
            while(
    $daten_wwm mysql_fetch_array($wwm))
                {
                    
    $frage[] = $daten_wwm["frage"];
                    
    $antwort_richtig[] = $daten_wwm["antwort_richtig"];

                }
        
            if (
    $fragenr != 0)
        {
            if(ISSET (
    $_POST["antwort"]));
            
    $antwort = array($_POST["antwort"]);
            
            
            if (
    $antwort[0] == $antwort_richtig[$fragenr-1])

            else
            {

                
    $punkte $fragenr-1;
                
    $rekorde_abfrage_string "SELECT * FROM rekorde ORDER BY punkte LIMIT 10";
                
    $rekorde_abfrage mysql_query($rekorde_abfrage_string);
                if(ISSET(
    $_POST["name"]) && strlen($_POST["name"]) >= 1)//Wenn Name gesetzt und mind. 1 Zeichen beinhaltet
                
    {        
                    
    $name $_POST["name"];                
                    
    $name_eintragen mysql_query("INSERT INTO rekorde (name, punkte) VALUES ($name, '$punkte')");
    [...]
            
    mysql_close($verbinden); 
    Meine Vermutung ist, dass es bereits an dem Select scheitern, weil er vorher bereits andere Daten aus der Tabelle ausgewählt hat....
    PHP-Code:
    echo $_POST['Beitrag_DAU']; 

  • #2
    Benutze bitte mysql_error() dann kommen auch Fehlermeldungen, die du dann debuggen kannst.
    ACHTUNG!!! SIGNATUR!!!
    PHP-Code:
    var_dump($gehirn); exit; 
    0 ??? WTF ? nervtag.de | freutag.net | friendmetr.com

    Kommentar


    • #3
      Ich nehme an, so? Bringt mir leider acuh keinerlei Ausgabe.

      PHP-Code:
                  $rekorde_abfrage_string "SELECT * FROM rekorde ORDER BY punkte LIMIT 10" OR die("mysql_error()") OR die("ERROR: $rekorde_abfrage_string <br>".mysql_error());
                  
      $rekorde_abfrage mysql_query($rekorde_abfrage_string);
                  if(ISSET(
      $_POST["name"]) && strlen($_POST["name"]) >= 1)//Wenn Name gesetzt und mind. 1 Zeichen beinhaltet
                  
      {        
                      
      $name $_POST["name"];                
                      
      $name_eintragen mysql_query("INSERT INTO rekorde (name, punkte) VALUES ($name, '$punkte')") OR die("ERROR: $name_eintragen <br>".mysql_error()); 
      PHP-Code:
      echo $_POST['Beitrag_DAU']; 

      Kommentar


      • #4
        beim INSERT benutzt du mysql_error richtig, beim select allerdings nicht. Das Speichern eines Strings in eine Variable wird für gewöhnlich keinen Datenbankfehler verursachen.

        Kommentar


        • #5
          Jo, macht Sinn. ^^
          (Er speichert ja nur den String in der PHP-Anwendung)

          PHP-Code:
                      $rekorde_abfrage mysql_query($rekorde_abfrage_string)  OR die("ERROR: $rekorde_abfrage <br>".mysql_error()); 
          Gibt mir jedoch auch keinen Fehler aus.
          PHP-Code:
          echo $_POST['Beitrag_DAU']; 

          Kommentar


          • #6
            Nun, dann werden deine SQL-Abfragen entweder gar nicht (da bedingungen aus dem script nicht zutreffen o.ä.) oder richtig ausgeführt...

            Kommentar


            • #7
              Grmlz, ich hatte das doch mehrmals überprüft...?

              Hattest damit recht. Fehler:
              Unbekanntes Tabellenfeld 'Bas' in field list

              Wobei 'Bas' der Name des Spielers ist.

              Für mich sieht es so aus, als würde er versuchen, etwas in das Tabellenfeld Bas zu schreiben anstatt "Bas" in das Tabellenfeld Name zu schreiben:
              PHP-Code:
                              $name_eintragen mysql_query("INSERT INTO rekorde (name, punkte) VALUES ($name, '$punkte')"); 
              PHP-Code:
              echo $_POST['Beitrag_DAU']; 

              Kommentar


              • #8
                Ja natürlich, String-Werte gehören auch in SQL in Anführungszeichen.

                Kommentar


                • #9
                  Argh, bei der zweiten Variable habe ich es doch sogar richtig...ich bin schon ein Pfosten.
                  PHP-Code:
                  echo $_POST['Beitrag_DAU']; 

                  Kommentar


                  • #10
                    Sö..meine Bestenliste funktioniert an sich soweit, jedoch gibt es ein Mini-Problem: Der gerade gespielte Nutzer wird mir nicht in der Tabelle angezeigt, sondern nur die vorher 10 Besten, nicht die aktuellen 10 Besten:
                    PHP-Code:
                                $rekorde_abfrage_string "SELECT * FROM rekorde ORDER BY punkte DESC LIMIT 10" OR die("mysql_error()");
                                
                    $rekorde_abfrage mysql_query($rekorde_abfrage_string)  OR die("ERROR: $rekorde_abfrage <br>".mysql_error());

                                if(ISSET(
                    $_POST["name"]) && strlen($_POST["name"] || ISSET($name)) >= 1)//Wenn Name gesetzt und mind. 1 Zeichen beinhaltet
                                
                    {        
                                    echo 
                    "Test";
                                    
                    $name $_POST["name"];                
                                    
                    $name_eintragen mysql_query("INSERT INTO rekorde (name, punkte) VALUES ('$name', '$punkte')") OR die("ERROR: $name_eintragen <br>".mysql_error());

                                    
                                    echo 
                    $name.", ";
                                }
                                echo 
                    "Sie haben ".$punkte." Punkte erzielt!";
                                
                    $rekorde_abfrage_2 mysql_query($rekorde_abfrage_string)  OR die("ERROR: $rekorde_abfrage <br>".mysql_error());
                                

                                
                    $rekorde_punkte = array();
                                
                    $rekorde_namen = array();
                                while (
                    $daten_rekorde mysql_fetch_array($rekorde_abfrage))
                                {
                                    
                    $rekorde_punkte[] = $daten_rekorde["punkte"];
                                    
                    $rekorde_namen[] = $daten_rekorde["name"];
                                }
                                
                                echo 
                    "<table border='1'>
                                        <tr>
                                            <th>Punkte
                                            </th>
                                            <th>Name
                                            </th>
                                        </tr>"
                    ;
                                for (
                    $i 0$i count($rekorde_namen); $i++)
                                {
                                    echo 
                    "<tr>
                                            <td>"
                    .$rekorde_punkte[$i]."
                                            </td>
                                            <td>"
                    .$rekorde_namen[$i]."
                                            </td>
                                        </tr>"
                    ;
                                }
                                echo 
                    "</table>"
                    PHP-Code:
                    echo $_POST['Beitrag_DAU']; 

                    Kommentar


                    • #11
                      Du fragst zuerst die Liste ab und trägst dann den neuen Wert ein. Du führst zwar die Abfrage nochmal aus, nutzt aber nur das Ergebnis der ersten Abfrage.

                      Kommentar


                      • #12
                        Dann ändere doch einfach die Reihenfolge in deinem Code. Muss man dir wirklich alles vorkauen?

                        Kommentar


                        • #13
                          @KE: Sehe gerade den Fehler.
                          PHP-Code:
                                      while ($daten_rekorde mysql_fetch_array($rekorde_abfrage_2)) 
                          Hatte dort bei mysql_fetch_array vorher noch den alten Wert stehen.

                          @Cycap: Den richtigen Gedanken hatte ich ja schon, hat sich nur ein kleiner Tippfehler eingeschlichen....
                          PHP-Code:
                          echo $_POST['Beitrag_DAU']; 

                          Kommentar


                          • #14
                            @Cycap: Den richtigen Gedanken hatte ich ja schon, hat sich nur ein kleiner Tippfehler eingeschlichen....
                            In deinen Posts sehe ich weder Ideen noch Gedanken...

                            Kommentar


                            • #15
                              Das erneute Auslesen des Datensatzes, nachdem ihn diesen geschrieben wurde.
                              PHP-Code:
                              echo $_POST['Beitrag_DAU']; 

                              Kommentar

                              Lädt...
                              X