php
  • html
  • 2012-09-19 47 views 0 likes 
    0

    So..in一個textarea我把存儲在我的表中的值修改它們像這樣:更新值

    $l=mysql_query("select * from intrebari where cod_chestionar='".$_SESSION['cod']."'"); 
    
    echo "<form method='POST' action='lalalalal.php'>"; 
    echo "<textarea name='edit' cols='50'>"; 
    while($p=mysql_fetch_array($l)) 
    
    { 
    
        echo $p[denumire_intrebare]; 
        echo "\n"; 
    
    } 
    echo "</textarea>"; 
    echo "<input type='submit' value='Finished' name='save_edit'/>"; 
    echo "</form>"; 
    } 
    

    這一切都fine..the值,即是問題,是分開的線路。現在我想在必要時進行更新。所以在我的更新文件中,我是這樣做的:

    $a=$_POST['edit']; 
    
    $a_array=explode("\n",$a); 
    
    
        foreach($a_array as $b) 
    
        { 
    
    
    $sql=mysql_query("UPDATE intrebari set denumire_intrebare='$b' WHERE cod_chestionar='".$_SESSION['cod']."'"); 
    echo $b; 
    } 
    

    我想要所有問題都有相同的cod_chestionar進行更新。在這一刻,如果我進行更新,我的所有問題都會得到同樣的價值。如果我回應它,​​值會在我修改它們時帶給我,但它不會在表中進行更新。你能否給出意見,因爲我無法弄清楚。

    回答

    1

    對於多條記錄,您正在使用一個<textarea>,您必須使用單獨的textarea s才能修改它們並單獨更新它們。

    你必須有一個唯一的ID字段在intrebari表,我們將其命名爲id,我們將用它做解決問題:

    <?php 
    
    $l = mysql_query("select * from intrebari where cod_chestionar='".$_SESSION['cod']."'"); 
    
    echo "<form method='POST' action='lalalalal.php'>"; 
    
    while($p = mysql_fetch_array($l)){ 
        echo "<textarea name='edit[".$p['id']."]' cols='50'>"; // Using `id` field here to make array of textareas 
        echo $p[denumire_intrebare]; 
        echo "</textarea>"; 
    } 
    
    echo "<input type='submit' value='Finished' name='save_edit'/>"; 
    echo "</form>"; 
    
    ?> 
    

    而且更新:

    <?php 
    
    $a = $_POST['edit']; 
    
    foreach($a AS $id => $b){ 
        $b = mysql_real_escape_string($b); 
        $id = mysql_real_escape_string($id); 
    
        $sql = mysql_query("UPDATE intrebari set denumire_intrebare='$b' WHERE id='".$id."'"); // Using id field again 
    } 
    
    ?> 
    
    +0

    哼。 .. id ='「。$ id。」'...這裏的fisrt id代表什麼? – Bibu

    +0

    我已經在我的回答中解釋過,請再次閱讀答案。 – Night2

    相關問題