mysql_query wird nicht ausgeführt, keine Fehlermeldung

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

  • #16
    Gute Tipps, werd ich versuchen.
    Habe mir schon die pmid und uid ausgeben lassen, war alles korrekt, in der Datenbakn (prüfe ich mit phpMyAdmin) gibt es auch einen Datensatz mit der pmid aber die spalte wo uid stehen sollte wurde nicht aktualisiert.

    $uid war in diesem Fall 1 und in der Datenbank steht 0 (standartwert).
    Werde mal alles ausprobieren, was ihr vorgeschlagen habt und gleich hierreineditieren.

    // edit1 Hier der Code drumherum:

    PHP-Code:
    if(isset($_GET["pmid"])){
    $pmid = $_GET["pmid"];
        if($_GET["new"] == "answer"){
                if($_POST["answer"] != ""){
                    $text = $_POST["answer"];
                    $eintragen = sendanswer($pmid,$userid,$text);    
                      if(!$eintragen){
                         ?><div class="box_hell" style="width:800px;">
                                                     <div class="msg_warning">Fehler beim Eintragen der Nachricht.</div>
                                                </div><?
                      }
                      else{ // Wenn alles klappt:
                              ?><meta http-equiv="refresh" content="0; 
                                              URL=index.php?s=msg&pmid=<?echo $pmid;?>"><?
                      }
                }else{
                    ?><div class="box_hell" style="width:800px;">
                                         <div class="msg_warning">Keine Nachricht angegeben.</div>
                                     </div><?
                }    
            
        }
    }
    Danke schonmal bis hier

    //edit2: Leider immer noch keinen Fehler gefunden..
    Zuletzt geändert von Spunk95; 16.02.2011, 19:13.

    Kommentar


    • #17
      PHP-Code:
      function sendanswer ($pmid,$uid,$text){
              
      $update mysql_query("UPDATE msg SET opened = '1' AND last_answer = '1294761891' WHERE id = '24'")
              or die(
      mysql_error()); 
              if(
      $update){
                  return 
      true;
              }else{
                  return 
      false;
              }                                    

      Nichtmal so klappt es... Da muss doch was faul sein? ^^

      Kommentar


      • #18
        Warum steht dort ein AND? Meinst du vielleicht ein Komma?
        [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


        • #19
          Zitat von AmicaNoctis Beitrag anzeigen
          Warum steht dort ein AND? Meinst du vielleicht ein Komma?
          Haha, genau xD Danke danke danke
          Komisch, das da keine Fehlermeldungen kommen.
          Zuletzt geändert von Spunk95; 16.02.2011, 20:04.

          Kommentar


          • #20
            Zitat von Spunk95 Beitrag anzeigen
            Komisch, das da keine Fehlermeldungen kommen.
            Nein, nicht komisch, weil syntaktisch vollkommen korrekt.

            last_answer = '1294761891' ist ein Vergleichsausdruck, der true oder false bzw. in nummerischem Kontext 1 oder 0 ergeben kann.

            Und den verknüpfst du mit dem Textliteral '1', bevor du das Gesamtergebnis dieser Verknüpfung in die Spalte opened schreiben lässt.

            Der komplette Ausdruck
            Code:
            '1' AND last_answer = '1294761891'
            ergibt also 1 oder 0, je nachdem, ob in der Spalte last_answer bereits '1294761891' drin steht oder nicht.
            Dieses Ergebnis wird dann in opened eingetragen, und die Spalte last_answer bleibt unverändert, weil in deinem UPDATE-Statement gar keine Wertzuweisung für diese enthalten war.


            @Amica: Gutes Adlerauge, Danke.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #21
              Warum wird hier eigentlich kein mysql_real_escape_string() verwendet?

              Kommentar


              • #22
                @h3all: Beim Text hab ichs ja gemacht. Muss ichs auch für die anderen Sachen? Weil das ist ja nicht vom User eingegeben.

                @wahsaga: Danke für die Erklärung, habs halbwegs verstanden

                Und danke nochmal an AmicaNoctis

                Kommentar


                • #23
                  Code:
                  [COLOR=#000000]"
                  UPDATE msg 
                  SET opened = '".$uid."' AND last_answer = '".$timestamp."' 
                  WHERE id = '".$pmid."'
                  "[/COLOR]
                  also ich hab mal gelernt, dass AND und OR für logische Verknüpfungen verwendet werden, nicht aber um mehrere Änderungen aufzureihen ...

                  ersetze in dieser Abfrage mal das AND durch ein Komma ....
                  [font=Verdana]
                  Wer LESEN kann, ist klar im Vorteil!
                  [/font]

                  Kommentar


                  • #24
                    Zitat von eagle275 Beitrag anzeigen
                    ersetze in dieser Abfrage mal das AND durch ein Komma ....
                    Und du, lies vielleicht erst mal den kompletten bisherigen Thread-Verlauf ... :-)
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #25
                      Haha steht sogar in seiner Signatur
                      Na ja, ich editier mal eben die Lösung in den Startpost und dann kann hier zu

                      // Danke für eure Hilfe

                      Kommentar

                      Lädt...
                      X