DELETE Probleme

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

  • #16
    hab gerade noch ein änderscript schreiben wollen also ein UPDATE sogesehen.

    Es funzt rein theoretisch sogar
    Nur das Problem ist das es immer den letzten aufgezeigten datensatz evrwendet und nicht den wo man am Button draufklickt.

    PHP-Code:
    #####Ändern Anfang #####

    if ($switch == 'laendern'){

    if($url == "") {
    $fehler = 1;
    $fehlermeldung .= '<tr><td><font color="#000000" size="2" type="tahoma">Die URL</td> ';
    $fehlermeldung .= '<td><td><font color="#000000" size="2" type="tahoma">Du hast noch keine URL angegeben!</td> </tr> ';
    }
    if(!$submit) {
    ?>
    <br><br><center><b><u><font color="#000000" size="4" type="tahoma">Hyperlink &Aumlndern</b></u></font>
    <br>

    <center>
    <form action="admin.php?action=leintrag" method="post">
    <br><br>
    <?
    $abfrage = @ mysql_query("select * FROM  schnubb_link ORDER BY id DESC")or die("Konnte den Select Befehl nicht ausführen.");
        while($eintrag = mysql_fetch_object($abfrage)) {
    echo '<table width="500">';
    echo '<tr>';
    echo '<td width="190" ><font color="#000000" size="2" type="tahoma">Die Überschrift<font color="red" size="2" type="tahoma">*</font><font color="#000000" size="2" type="tahoma">:</font></td>';
    echo '<td width="310" ><input type="text" name="ueberschrift" size="20" class="input" style="border:thin dotted #000000" value="'.$eintrag->ueberschrift.'"></td>';
    echo '</tr><tr><td width="190" ><font color="#000000" size="2" type="tahoma">Die URL<font color="red" size="2" type="tahoma">*</font><font color="#000000" size="2" type="tahoma">:<b><br>(mit [url]http://[/url] angeben)</b></font></td>';
    echo '<td width="310" ><input type="text" name="url" size="20" class="input" style="border:thin dotted #000000" value="'.$eintrag->url.'"></td>';
    echo '</tr><tr>    <td width="190" ><font color="#000000" size="2" type="tahoma">Die Banner-URL:<b><br>(mit [url]http://[/url] angeben)</b></font></td>';
    echo '<td width="310" ><input type="text" name="banner" size="20" class="input" style="border:thin dotted #000000" value="'.$eintrag->banner.'"></td>';
    ?>    </tr>

           <tr>
            <td width="190">&nbsp;</td>
            <td width="310" align="center">
            <input type="submit" name="submit" value="Eintragen" style="border:thin dotted #000000">
            </td>
        </tr>
    </table>
    <?
    }
    }elseif($submit && $fehler == 1) {
    echo $fehlermeldungStart;
    echo $fehlermeldung;
    echo $fehlermeldungEnde;
    }else{
    $text = strip_tags($text);
    $text =  htmlentities($text);
    $text = replace($text);
    $sql = "UPDATE  schnubb_link VALUES ('','$ueberschrift','$url','$banner')";
    @ mysql_query($sql) ;
    }

    ?>

    <center> <br><br>

    </center>
    <br><br> <center>
    <font color="#000000" size="2" type="tahoma">&copy; by <a href="http://www.schnubbi-web.de"><font color="#000000" size="2" type="tahoma">Schnubbi</a></font</font></center>
    <br>
    <?
    }

    #####Ändern Ende#####

               ?>
    Wer mit den Katzen spielt, muss ihr Kratzen vertragen.

    Kommentar


    • #17
      tja. du gibst ja auch keine id an.

      ---
      $abfrage = @ mysql_query("select * FROM schnubb_link ORDER BY id DESC")or die("Konnte den Select Befehl nicht ausführen.");
      ---

      dann nochwas...
      1. schaue dir mal den code von mir von eben an. habe ich da ein @ drin?
      2. habe ich da innerhalb von die() einen nichtssagenden text drin?
      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


      • #18
        das mit dem @ versteh ich net. Manche sagen es soll rein manche lassen es weg.
        Und das mit der ID sollte doch durch die while schleife geklärt sein oder irre ich mich da ?
        Wer mit den Katzen spielt, muss ihr Kratzen vertragen.

        Kommentar


        • #19
          ein @ unterdrückt nur die fehlermeldung, aber der fehler ist dennoch vorhanden.

          daher solltest du dir angewöhnen OHNE @'s zu arbeiten. ein @ ist nur an bestimmten punkten sinnvoll.

          und was deine id angeht. so schaue dir doch erst einmal deinen code an und vergleiche ihn mit dem, was du eigentlich machen willst.
          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


          • #20
            ok den grundlegenden fehler für das Problem hab ich erstmal gefunden. war ein action noch falsch *sich selber schlag*

            So die buttons sind durch den namen welcher jetzt der jeweiligen id entspricht auch eindeutig identifiziert. Doch wie is der sql befehl für das update. Weil wie im manual beschrieben per update into sowie update tabelle set übernimmt er es nicht.

            und ein echo $SQL; zeigt auch nix an obwohl ja inhalte drin sein müssten.
            Wer mit den Katzen spielt, muss ihr Kratzen vertragen.

            Kommentar


            • #21
              Original geschrieben von schnubbi
              und ein echo $SQL; zeigt auch nix an obwohl ja inhalte drin sein müssten.
              müsste vielleicht: ja.

              ist aber dann anscheinend nicht. -> weiter suchen...
              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


              • #22
                ok ich revidiere mich

                die submitbuttons werden durch die name = id zuweisung doch nicht zu einem unikat. Egal welcher button ausgeführt wird es wird durch die Ordnung sort by ID immer der Datensatz mit der kleinsten ID ( in dem Fall 1 ) aktualisiert. Ich habs ma per echo mir ausgeben lassen. Warum $sql keinen inhalt hat ist auch klar. der updatebefehl ist falsch.
                Laut mysqlfront ist er
                UPDATE schnubb_link SET ueberschrift= 'test' WHERE id=1

                Dies würde bedeuten ueberschrift = Datensatzspalte , test muss der inhalt welcher in einer variable steht welche $eintrag->ueberschrift heisst sein.

                Aber die frage ist wieso er trotzdem es nicht updated. Überseh ich was grundlehgendes oder bin ich auf der richtigen fährte ?

                ~edit~

                ma ne grundlegende frage. ISt es normal in meinem script das $eintrag->id usw. ( also alle objects mit $eintrag davor ) leer sind ?

                Weil das ist bei mir der fall und ich denke grade vl. ist das der fehler. dann würde es bedeuten das das mit dem value falsch läuft. Also das der das net abspeichert.

                ~edit2~

                so jetzt weiss ich glaube ich das Problem. Es liegt am Fomular. Die Inhalte der einzelnen inputs wird durch ein value bestimmt. Dieses value ließt per mysql_object das ganze aus einer Datenbank aus. Wenn man nun etwas neues reinschreibt wird das value ja eigentlich überschrieben aber sobald der submit kommt wird es wieder aus der Datenbank genommen oder ?
                Insofern updated der das deswegen nicht oder ?
                Zuletzt geändert von schnubbi; 13.12.2003, 17:06.
                Wer mit den Katzen spielt, muss ihr Kratzen vertragen.

                Kommentar


                • #23
                  Original geschrieben von schnubbi
                  ma ne grundlegende frage. ISt es normal in meinem script das $eintrag->id usw. ( also alle objects mit $eintrag davor ) leer sind ?
                  wenn du meinen code 1:1 übernommen hast, ist $ergebnis kein object mehr, sondern ein array. schaue es dir mal genau an ... print_r()

                  und dieser update ist auch ein wenig merkwürdig. hier hast du nämlich nur ein INSERT genommen, aber UPDATE geschrieben.
                  $sql = "UPDATE schnubb_link VALUES ('','$ueberschrift','$url','$banner')";
                  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


                  • #24
                    ich hatte deinen code nicht verwendet weil ich mit ihm nicht zurecht kam.
                    SO jetzt hab ich es mal so auf deinen Code umgemodelt und krieg nen parserror in Zeile 139. Da du eh nicht weiss welche zeile das ist geb ich die bemerkung. Sie steht unten dran nochmal da fett net funzt im code bereich


                    PHP-Code:
                    if ($switch == 'laendern'){

                    if($url == "") {
                    $fehler = 1;
                    $fehlermeldung .= '<tr><td><font color="#000000" size="2" type="tahoma">Die URL</td> ';
                    $fehlermeldung .= '<td><td><font color="#000000" size="2" type="tahoma">Du hast noch keine URL angegeben!</td> </tr> ';
                    }
                    if(!$submit) {
                    ?>
                    <br><br><center><b><u><font color="#000000" size="4" type="tahoma">Hyperlink &Aumlndern</b></u></font>
                    <br>

                    <center>
                    <form action="admin.php?action=laendern" method="post">
                    <br><br>
                    <?

                     if (isset($_POST['action'], $_POST['cb']) && $_POST['action']=='laendern' && count($_POST['cb'])>0)
                        {
                         $res = mysql_query('UPDATE  schnubb_link SET ueberschrift  = '$ueberschrift', url = '$url', banner = '$banner' 
                                                WHERE id IN ('.implode(',', $_POST['cb']).')')
                                               or die(mysql_error());

                        }
                        $abfrage = mysql_query("SELECT * FROM schnubb_link
                                                ORDER BY id DESC") or die(mysql_error());
                        while( $eintrag = mysql_fetch_assoc($abfrage))
                        {

                    echo '<table width="500">';
                    echo '<tr>';
                    echo '<td width="190" ><font color="#000000" size="2" type="tahoma">Die Überschrift<font color="red" size="2" type="tahoma">*</font><font color="#000000" size="2" type="tahoma">:</font></td>';
                    echo '<td width="310" ><input type="text" name="ueberschrift" size="20" class="input" style="border:thin dotted #000000" value="'.$eintrag['ueberschrift'].'"></td>';
                    echo '</tr><tr><td width="190" ><font color="#000000" size="2" type="tahoma">Die URL<font color="red" size="2" type="tahoma">*</font><font color="#000000" size="2" type="tahoma">:<b><br>(mit [url]http://[/url] angeben)</b></font></td>';
                    echo '<td width="310" ><input type="text" name="url" size="20" class="input" style="border:thin dotted #000000" value="'.$eintrag['url'].'"></td>';
                    echo '</tr><tr>    <td width="190" ><font color="#000000" size="2" type="tahoma">Die Banner-URL:<b><br>(mit [url]http://[/url] angeben)</b></font></td>';
                    echo '<td width="310" ><input type="text" name="banner" size="20" class="input" style="border:thin dotted #000000" value="'.$eintrag['banner'].'"></td>';
                    ?>    </tr>

                           <tr>
                            <td width="190">&nbsp;</td>
                            <td width="310" align="center">
                    <?    echo'    <input type="submit" name="'.$eintrag['id'].'" value="Eintragen" style="border:thin dotted #000000">';
                    }}
                    ?>        </td>
                        </tr>
                    </table>

                    <center> <br><br>

                    </center>
                    <br><br> <center>
                    <font color="#000000" size="2" type="tahoma">&copy; by <a href="http://www.schnubbi-web.de"><font color="#000000" size="2" type="tahoma">Schnubbi</a></font</font></center>
                    <br>
                    <?
                    }
                    PHP-Code:
                    $res mysql_query('UPDATE  schnubb_link SET ueberschrift  = '$ueberschrift', url = '$url', banner = '$banner
                    Wer mit den Katzen spielt, muss ihr Kratzen vertragen.

                    Kommentar


                    • #25
                      irgendwann fällst du immer wieder auf die schnauze, wenn du variablen in einem string direkt unterbringt.

                      bei ' werden sie nämlich nicht interpretiert.

                      so sollte es passen.
                      PHP-Code:
                           $res mysql_query('UPDATE  schnubb_link SET ueberschrift  = '".$ueberschrift."', url = '".$url."', banner = '".$banner."' 
                                                  WHERE .......'
                      )
                                                 or die(
                      mysql_error()); 
                      allerdings solltest du WHERE noch korrekt anpassen.

                      und warum schreibe ich eigentlich deinen code?
                      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


                      • #26
                        aber immer wenn ich es per test = '".$test."' schreibe krieg ich nen parse error. Da is bei mir schon immer so ... sobad ich die " wegalsse is er auch weg.


                        Und du schreibst net meinen Code. Du gibst mir gedanken anstöße
                        Wer mit den Katzen spielt, muss ihr Kratzen vertragen.

                        Kommentar


                        • #27
                          arg. jetzt habe ich doch mal wieder einen fehler in der schnelle gemacht.....

                          mach mal so.
                          PHP-Code:
                          $res mysql_query("UPDATE  schnubb_link SET ueberschrift  = '".$ueberschrift."', url = '".$url."', banner = '".$banner."' 
                                                      WHERE ......."
                          )
                                                     or die(
                          mysql_error()); 
                          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