2013-04-17 14 views
19

Desidero aggiornare una stessa colonna in tutte le righe di una tabella, qualcuno può darmi una mano su come aggiornare la tabella? c'è solo un campo di input che dovrebbe aggiornare il valore di tutte le righe. questo codice non funziona e so che c'è qualcosa di sbagliato in indice e array.Aggiornamento di una colonna in tutte le righe di una tabella

<?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); 
    } 

    } 
?> 

risposta

43

Stai complicando troppo la soluzione. Per aggiornare ogni record, l'approccio che stai cercando di fare è:

  1. Seleziona tutti i record.
  2. Ottieni l'ID per ogni record.
  3. Ciclo attraverso gli ID.
  4. Aggiorna ogni record con tale ID.

La sintassi UPDATE ha un modo molto più semplice per farlo. Non è necessario fornire una clausola WHERE a un'istruzione UPDATE. Senza tale clausola, sarà di default aggiornare tutti i record della tabella:

UPDATE TableName SET `board`='value' 

Inoltre, si prega di essere consapevole del fatto che si dispone di un SQL injection vulnerabilità nel codice. Utilizzando $_REQUEST['text'] direttamente nella query SQL, si consente a qualsiasi utente di inviare codice SQL alla query. Il tuo codice quindi esegue qualunque cosa ti mandino. Ciò potrebbe consentire loro di danneggiare o eliminare i tuoi dati, persino di ottenere l'accesso amministrativo al tuo server.

Per i principianti, si prega di smettere di usare le funzioni mysql_*. PHP ha deprecato quelli e non dovrebbero più essere usati. C'è a mysqli_ replacement per loro. Inoltre, utilizzare the mysqli_real_escape_string() function per disinfettare gli input prima di utilizzarli in una query SQL. Infine, utilizzare prepared statements anziché concatenare direttamente i valori nella stringa SQL.

+0

grazie ho fatto quello che hai detto ma ancora non posso aggiornare –

+0

@ mohamad: puoi aggiornare la domanda originale con il nuovo codice? Qualsiasi numero di cose potrebbe potenzialmente essere sbagliato. – David

+0

Ho aggiornato il codice sopra –

Problemi correlati