2013-07-05 21 views
0

我做了一個while循環顯示Ploegen從數據庫中的所有用戶我讓它輸出的文本,這是假設隱藏的,但即時測試它。無論如何,它必須更新只有一行文本和它顯示在頁面上的ID是正確的,但更新始終是ID 1,而我更改選項值很多和valueid(名稱)始終相同。PHP雖然循環後數據編輯1行

我不知道如何使這項工作我試過,因爲你看,希望你能解釋。

我不需要反饋,因爲代碼不好,只需要幫助解決問題。

<div class="content-module-main"> 
         <?php if(isset($_POST['submit'])){ 
         $idtje = $_POST['valueid']; 
         $valueid = $_POST['ploeg']; 
         $idtje = mysqli_real_escape_string($connect, $idtje); 
         $valueid = mysqli_real_escape_string($connect, $valueid); 
    //$go = "UPDATE `ploegen` SET `ploeg`='$id' where `id`='$valueid'"; 
    //$go2 = mysqli_query($connect, $go); 
         echo "<di" . "v class=\"confirmation-box round\">Ploegentest var_dump($valueid); var_dump($idtje);</div>"; 
         } 
         ?> 
         <table> 
          <thead> 
           <tr> 
            <th>Ploeg</th> 
            <th>Naam</th> 
            <th>Tel</th> 
            <th>Gas of Elektra</th> 
            <th>Wijzig</th> 
           </tr> 

          </thead> 
          <tbody> 

           <tr> 
            <form method="post" action="home_ploegen_b.php"> 
            <?php 
            $query = "SELECT naam, telefoonnummer, id, ploeg, gasofelektra FROM ploegen ORDER by naam DESC LIMIT 100"; 
            if ($result = mysqli_query($connect, $query)) { 
            while ($get = mysqli_fetch_assoc($result)) { 
            echo"<tr><td><center>" . $get['ploeg'] . "</center></td>"; 
            echo"<td>" . $get['naam'] . "</td>"; 
            echo"<td>" . $get['telefoonnummer'] . "</td>"; 
            echo"<td>" . $get['gasofelektra'] . "</td>"; 
            echo"<td><center><input type=\"text\" name=\"valueid\" value=\"" . $get['naam'] . "\" /><select name=\"ploeg\"> 
            <option value=\"1\">Ploeg 1</option> 
            <option value=\"2\">Ploeg 2</option> 
            <option value=\"3\">Ploeg 3</option> 
            <option value=\"4\">Ploeg 4</option> 
            <option value=\"5\">Ploeg 5</option> 
            <option value=\"6\">Ploeg 6</option> 
            <option value=\"7\">Ploeg 7</option> 
            <option value=\"8\">Ploeg 8</option> 
            <option value=\"9\">Ploeg 9</option> 
            <option value=\"10\">Ploeg 10</option> 
            </select><input type=\"submit\" name=\"submit\" value=\"UPDATE\"></center></td></tr>"; 

                      } 
            } 
             ?>     </td></form> 

http://oi42.tinypic.com/2pqrogm.jpg

+0

您的表結構錯誤。先檢查並清除它。 –

+0

呃請解釋一下? – Tredged

+0

爲每一行使用單獨的表格。 – monojit

回答

1

我想這裏是你有問題。

<input type=\"text\" name=\"valueid\" value=\"" . $get['naam'] . "\" /> 
<select name=\"ploeg\". 

您的文本字段和選擇字段名稱在所有行中都是相同的。請把一個動態的名稱到每個字段或使用的名稱作爲數組

參考鏈接: -

Array Name

Dynamic Naming

下面是一個使用陣列命名你的代碼

while ($get = mysqli_fetch_assoc($result)) { 
    echo"<tr><td><center>" . $get['ploeg'] . "</center></td>"; 
    echo"<td>" . $get['naam'] . "</td>"; 
    echo"<td>" . $get['telefoonnummer'] . "</td>"; 
    echo"<td>" . $get['gasofelektra'] . "</td>"; 
    echo"<td><center><input type=\"text\" name=\"valueid[]\" value=\"" . $get['naam'] . "\" /> 
    <select name=\"ploeg[]\"> 
    <option value=\"1\">Ploeg 1</option> 
    <option value=\"2\">Ploeg 2</option> 
    <option value=\"3\">Ploeg 3</option> 
    <option value=\"4\">Ploeg 4</option> 
    <option value=\"5\">Ploeg 5</option> 
    <option value=\"6\">Ploeg 6</option> 
    <option value=\"7\">Ploeg 7</option> 
    <option value=\"8\">Ploeg 8</option> 
    <option value=\"9\">Ploeg 9</option> 
    <option value=\"10\">Ploeg 10</option> 
    </select> 
    <input type=\"submit\" name=\"submit\" value=\"UPDATE\"></center></td></tr>"; 
} 

而這個是動態命名的

$row = 1; 
while ($get = mysqli_fetch_assoc($result)) { 
    echo"<tr><td><center>" . $get['ploeg'] . "</center></td>"; 
    echo"<td>" . $get['naam'] . "</td>"; 
    echo"<td>" . $get['telefoonnummer'] . "</td>"; 
    echo"<td>" . $get['gasofelektra'] . "</td>"; 
    echo"<td><center><input type=\"text\" name=\"valueid$row\" value=\"" . $get['naam'] . "\" /> 
    <select name=\"ploeg$row\"> 
    <option value=\"1\">Ploeg 1</option> 
    <option value=\"2\">Ploeg 2</option> 
    <option value=\"3\">Ploeg 3</option> 
    <option value=\"4\">Ploeg 4</option> 
    <option value=\"5\">Ploeg 5</option> 
    <option value=\"6\">Ploeg 6</option> 
    <option value=\"7\">Ploeg 7</option> 
    <option value=\"8\">Ploeg 8</option> 
    <option value=\"9\">Ploeg 9</option> 
    <option value=\"10\">Ploeg 10</option> 
    </select> 
    <input type=\"submit\" name=\"submit\" value=\"UPDATE\"></center></td></tr>"; 
    $row ++; 
} 
+0

您會如何提示? – Tredged

+0

由於您花了這麼多時間來回答,我喜歡答案一切正常,謝謝! – Tredged

1

mysqli_fetch_assoc: - 返回表示在結果集,其中陣列中的每個鍵代表結果集的一列的名稱獲取行內字符串的關聯數組或NULL,如果有結果集中不再有行。

要訪問同名的其他列,您需要使用mysqli_fetch_row()或添加別名來訪問帶有數字索引的結果。

+0

呃?它顯示正確的一切大聲笑我只是需要它的職位,它沒有通過正確的信息。 – Tredged

+1

這是你的問題嗎? 'PHP While循環編輯只有一行' –

+0

Duh我把一張圖片說明我想要什麼時按下更新我想要我選擇的行更新 – Tredged