wie bekomm ich das hin...

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

  • wie bekomm ich das hin...

    also ich möchte eine gewisse daten aus einer tabelle auslesen und diese werte dann darstellen. Das mache ich so:

    PHP-Code:
    $result=mysql_query("SELECT * FROM uebersicht WHERE id=$id ORDER BY zeitpunkt DESC ");
    function 
    show_result($result) {
    while(
    $data=mysql_fetch_array($result)) {
    echo 
    '<tr>
       <td>'
    .$data[wer].'</td>                 
       <td>'
    .$data[was].'</td>                
       <td>'
    .$data[anzahl].'</td>
       </tr>'
    ;
    }

    Nun möchte ich aber das hinter jeder reihe noch ein Button erzeugt wird. Wenn dieser gedrückt wird soll es den entsprechenden eintrag aus der datenbank löschen...
    Ich habe es wie folgt versucht was jedoch nicht den gewünschten effekt erzielt:
    PHP-Code:
    $resullt= .........
    ...
    while.....
    echo 
    '<tr>
        <form method=post action=beispiel.php>
       <td>'
    .$data[wer].'</td>                 
       <td>'
    .$data[was].'</td>                
       <td>'
    .$data[anzahl].'</td>
        <td ><input name=formLoeschen type=submit value='
    .$data[anzahl].'></td>
      </form></tr>'
    ;  

    //löschen
    if(!$formLoeschen=="") {
        
    mysql_query("UPDATE uebersicht SET anzahl='0' WHERE id='.$data[wer].' ");

    Damit erreich ich zumindest das ein button mit der richtigen "anzahl" erscheint, wenn ich diesen jedoch klicke passiert nichts, der eintrag wird nicht geloescht...
    aendere ich jedoch
    PHP-Code:
    mysql_query("UPDATE uebersicht SET anzahl='0' WHERE id='.$data[wer].' "); 
    in

    PHP-Code:
    mysql_query("UPDATE uebersicht SET anzahl='0' WHERE id=10 "); 
    um, wird der befehl ausgefuehrt...
    ich als noob in sachen php gehe davon aus das die variable $data[wer] nicht ankommt, weis aber leider nicht warum bzw wo der haken ist.
    kann mir da jemand helfen bzw. erklaeren wie ich so ein vorhaben auch einfacher loesen kann?


    EDIT:
    php.tags by Abraxax
    Zuletzt geändert von Abraxax; 28.05.2003, 00:50.

  • #2
    hier hast du einen fehler
    PHP-Code:
    mysql_query("UPDATE uebersicht SET anzahl='0' WHERE id='.$data[wer].' "); 
    dein string beginnt und endet mit ", aber du verwendest ' um den string zu teilen.

    entweder du nimmer " zum trennen oder ' als beginn und ende.

    PHP-Code:
    // " zum trennen verwenden
    $result mysql_query("UPDATE uebersicht SET anzahl='0' WHERE id=".$data[wer]." ");

    // ' als string-beginn und -ende und innerhalb muss escaped werden.
    $result mysql_query('UPDATE uebersicht SET anzahl=\\\\'0\\\\' WHERE id='.$data[wer].' '); // form-darstellungfehler beim escapen
    // bzw. bei zahlenfeldern, sind keine stringzeichen nötig.
    $result mysql_query('UPDATE uebersicht SET anzahl=0 WHERE id='.$data[wer].' '); 
    dann lege ich dir noch or die(mysql_error()) ans herz.
    PHP-Code:
    $result mysql_query("UPDATE uebersicht SET anzahl='0' WHERE id=".$data[wer]." ") or die(mysql_error()); 
    so siehst du auch, wenn fehler in der query sind.
    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
      versuch einmal statt
      PHP-Code:
      mysql_query("UPDATE uebersicht SET anzahl='0' WHERE id='.$data[wer].' "); 
      PHP-Code:
      mysql_query("UPDATE uebersicht SET anzahl='0' WHERE id='$data[wer]' "); 

      Kommentar


      • #4
        @weserweb
        arrays machen sich nicht gut in strings, wenn der string nicht getrennt wird oder das array nicht in {} eingeschlossen wird.
        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
          OffTopic:

          @ Abraxax,
          ich meinte ja dasselbe wie du, aber natürlich hast du recht.
          ich verspüre nur etwas wie eine "bringschuld".
          ihr habt mir so oft geholfen, da will ich auch mal ran.
          aber ok, den array habe ich übersehen...

          Kommentar


          • #6
            ersteinmal danke für die superschnellen hilfen
            habe nun die zeile geändert in
            $result = mysql_query("UPDATE uebersicht SET anzahl='0' WHERE id=".$data[wer]." ") or die(mysql_error());

            aber ich halte dann leider nur die fehlermeldung
            You have an error in your SQL syntax near '' at line 1

            habe die oben genannte varianten durchprobiert

            Kommentar


            • #7
              Original geschrieben von Vanse
              ersteinmal danke für die superschnellen hilfen
              habe nun die zeile geändert in
              $result = mysql_query("UPDATE uebersicht SET anzahl='0' WHERE id=".$data[wer]." ") or die(mysql_error());

              aber ich halte dann leider nur die fehlermeldung
              You have an error in your SQL syntax near '' at line 1

              habe die oben genannte varianten durchprobiert
              Das zeigt das du irgendwo in der Anfrage einen Fehler hast - ich nehme einmal an das $data['wer'] ist keine Zahl (muss ehrlich zugeben dass ich jetzt nicht die restlichen Postings durchgelesen habe ...

              PHP-Code:
              $result mysql_query("UPDATE uebersicht SET anzahl='0' WHERE id='".$data['wer']."'") or die(mysql_error()); 
              Versuchs mal damit
              Eventuelle Tippfehler bei PHP-Beispielen können durchaus vorkommen, aber es geht um die grundsätzliche Möglichkeit der Anwendung.

              Es war einmal ein Benutzer, der hatte ein Problem mit ... PHP (http://de3.php.net/manual/de/) MySQL (http://dev.mysql.com/doc/mysql/de/) HTML (http://www.selfhtml.org/)

              Wer suchet, der findet: http://www.php-resource.de/forum/search.php
              Immer noch nichts? Dann frag!


              Mit freundlichen Grüßen,
              @4u

              Kommentar


              • #8
                Original geschrieben von weserweb
                ich verspüre nur etwas wie eine "bringschuld".
                OffTopic:
                k.p. du kannst uns ja jeden eine cola bringen ...
                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


                • #9
                  Habe ich nun auch probiert, was aber leider auch nix bringt, der fehler wird nun zwar nicht mehr angezeigt aber es wird auch kein datensatz gelöscht...
                  hab nun alles probiert und nichts funktioniert ;(

                  Kommentar


                  • #10
                    Original geschrieben von Vanse
                    [...] aber es wird auch kein datensatz gelöscht... [...]
                    gelöscht? von löschen hast du nie was gesagt. du willst was updaten. löschen geht mit DELETE FROM tabelle WHERE .....
                    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


                    • #11
                      ja sorry
                      ich will nicht löschen sondern UPDATEN....
                      sorry für den falschen ausdruck oben *g*

                      Kommentar


                      • #12
                        und was geht jetzt nicht? hast du alle änderungen übernommen? wie sieht der aktuelle code aus?
                        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


                        • #13
                          der code sieht eigentlich immer noch gleich aus...

                          PHP-Code:
                          $result=mysql_query("SELECT * FROM uebersicht WHERE id=$id ORDER BY zeitpunkt DESC ");
                          function 
                          show_result($result) {
                          while(
                          $data=mysql_fetch_array($result)) {
                          echo 
                          '<tr>
                              <form method=post action=beispiel.php>
                             <td>'
                          .$data[wer].'</td>                 
                             <td>'
                          .$data[was].'</td>                
                             <td>'
                          .$data[anzahl].'</td>
                              <td ><input name=formLoeschen type=submit value='
                          .$data[anzahl].'></td>
                            </form></tr>'
                          ;  
                          }
                          }

                          //löschen
                          if(!$formLoeschen=="") {
                              
                          mysql_query("UPDATE uebersicht SET anzahl='0' WHERE id='.$data[wer].' ");

                          habe nun alles was empfohlen wurde mit " oder ' versucht, kein erfolg...

                          Kommentar


                          • #14
                            2 kleine logische fehler. setz die zeilen mal ein:

                            PHP-Code:
                            <input name=formLoeschen type=submit value='.$data[wer].'>

                            mysql_query("UPDATE uebersicht SET anzahl='0' WHERE id='.$_POST['formLoeschen'].' "); 
                            Kissolino.com

                            Kommentar


                            • #15
                              nein. du hast ja eigentlich gar nichts geändert. du musst mal 1+1 zusammenzählen.

                              hier hast du einen fehler
                              PHP-Code:
                              mysql_query("UPDATE uebersicht SET anzahl='0' WHERE id='.$data[wer].' "); 
                              dein string beginnt und endet mit ", aber du verwendest ' um den string zu teilen.

                              entweder du nimmer " zum trennen oder ' als beginn und ende.

                              PHP-Code:
                              // " zum trennen verwenden
                              $result mysql_query("UPDATE uebersicht SET anzahl='0' WHERE id=".$data[wer]." ");

                              // ' als string-beginn und -ende und innerhalb muss escaped werden.
                              $result mysql_query('UPDATE uebersicht SET anzahl=\\\\'0\\\\' WHERE id='.$data[wer].' '); // form-darstellungfehler beim escapen
                              // bzw. bei zahlenfeldern, sind keine stringzeichen nötig.
                              $result mysql_query('UPDATE uebersicht SET anzahl=0 WHERE id='.$data[wer].' '); 
                              dann lege ich dir noch or die(mysql_error()) ans herz.
                              PHP-Code:
                              $result mysql_query("UPDATE uebersicht SET anzahl='0' WHERE id=".$data[wer]." ") or die(mysql_error()); 
                              so siehst du auch, wenn fehler in der query sind.

                              Original geschrieben von a4u
                              Das zeigt das du irgendwo in der Anfrage einen Fehler hast - ich nehme einmal an das $data['wer'] ist keine Zahl (muss ehrlich zugeben dass ich jetzt nicht die restlichen Postings durchgelesen habe ...
                              PHP-Code:
                              $result mysql_query("UPDATE uebersicht SET anzahl='0' WHERE id='".$data['wer']."'") or die(mysql_error()); 
                              sprich. diese zeile müsste wie folgt aussehen.
                              PHP-Code:
                              $result mysql_query("UPDATE uebersicht SET anzahl='0' WHERE id=".$data[wer]." ") or die(mysql_error());
                              // oder so. mit ' um die id.
                              $result mysql_query("UPDATE uebersicht SET anzahl='0' WHERE id='".$data[wer]."'") or die(mysql_error()); 
                              wenn du es immer noch nicht verstanden hast, lies die die antworten einfach noch einmal ganz laaaaaaaaaangsam durch.
                              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

                              Lädt...
                              X