it-swarm.com.de

Aktualisieren einer Spalte in allen Zeilen einer Tabelle

Ich möchte dieselbe Spalte in allen Zeilen einer Tabelle aktualisieren. Kann mir jemand dabei helfen, die Tabelle zu aktualisieren? Es gibt nur ein Eingabefeld, in dem alle Zeilenwerte aktualisiert werden sollen. Dieser Code funktioniert nicht und ich weiß, dass in Index und Array etwas nicht stimmt.

<?php
    <form method="post" dir="rtl" name="maxcharfield" >                     
        <textarea onKeyDown="textCounter(this,'progressbar1',300)" 
          onKeyUp="textCounter(this,'progressbar1',300)" 
          onFocus="textCounter(this,'progressbar1',300)"  
            style="font-family:'B_yekan';" id="text" name="text" rows="0" cols="0" class="required"></textarea>
        <div class="cleaner h10"></div> 

        <div style="font-family:'B_yekan';" dir="rtl" id="progressbar1" class="progress" ></div>
        <script>textCounter(document.getElementById("maxcharfield"),"progressbar1",100)</script>    

        <input class="styled-button-8" style="margin-top:10px; float:right; margin-right:50px; font-size: 14px;  padding: 5px 14px;" type="submit" value="save" name="Submit"   />
        <input style="font-family:'B_yekan';" type="reset" value="reset" id="reset" name="reset" class="submit_btn float_l" />

    </form>

<?php
// for updating Check if button name "Submit" is active, do this 
if(isset($_POST['Submit']) && $_POST['Submit'] == 'save')
    {
        $sql1="UPDATE `".$tbl_name."` SET `board`='".$_REQUEST['text']."'  ";
                            $result1=mysql_query($sql1);
     }

    }   
?>
22

Sie machen die Lösung zu kompliziert. Um jeden Datensatz zu aktualisieren, versuchen Sie wie folgt vorzugehen:

  1. Wählen Sie alle Datensätze aus.
  2. Holen Sie sich die ID für jeden Datensatz.
  3. Durchlaufen Sie die IDs.
  4. Aktualisieren Sie jeden Datensatz mit dieser ID.

Die UPDATE -Syntax bietet eine viel einfachere Möglichkeit, dies zu tun. Sie müssen keine WHERE -Klausel für eine UPDATE -Anweisung angeben. Ohne diese Klausel wird standardmäßig jeder Datensatz in der Tabelle aktualisiert:

UPDATE TableName SET `board`='value'

Beachten Sie auch , dass Ihr Code eine SQL Injection - Schwachstelle enthält. Indem Sie $_REQUEST['text'] Direkt in Ihrer SQL-Abfrage verwenden, gestatten Sie jedem Benutzer, SQL-Code an Ihre Abfrage zu senden. Ihr Code führt dann alles aus, was er Ihnen sendet. Dadurch können sie Ihre Daten beschädigen oder löschen und erhalten sogar Administratorzugriff auf Ihren Server.

Bitte beenden Sie zunächst die Verwendung der Funktionen mysql_*. PHP hat diese verworfen und sie sollten nicht mehr verwendet werden. Es gibt einen mysqli_ Ersatz für sie. Zusätzlich benutze Die Funktion mysqli_real_escape_string() , um Ihre Eingaben zu bereinigen, bevor Sie sie in einer SQL-Abfrage verwenden. Verwenden Sie abschließend vorbereitete Anweisungen , anstatt Werte direkt in Ihre SQL-Zeichenfolge zu verketten.

52
David