2012-06-18 231 views
0

我有這個代碼,它可以幫助我檢索所有表字段並將一個檢查按鈕關聯到它們,但是此代碼生成相同的名稱,我的意思是它顯示我所有的字段,但命名相同... IDphp選擇多個複選框

我需要他們的particulatr名..

可以請你看看有什麼錯?

謝謝..

 <form action='report.php' method='post'> 

<?php // Script 12.7 - sopping.php 

$db = mysql_connect('localhost', 'root', ''); 
mysql_select_db('db_up', $db); 

echo "<table border='1' class='tabtext'>"; 

$result = mysql_query("SELECT * FROM hostess"); 
$numrows = mysql_num_rows($result); 
$numfields = mysql_num_fields($result); 

// show headers 
echo '<thead><tr>'; 
for ($field = 0; $field < $numfields; $field++) { 
    $field_name = mysql_field_name($result, $field); // instead of $i 
    echo '<th><label><input type="checkbox" name="checkbox[' . $field_name . ']" value="1"/> ' . $field_name . '</label></th>'; 
} 

echo '</tr></thead>'; 

echo '<tbody>'; 
for ($row = 0; $row < $numrows; $row++) { 
    $data = mysql_fetch_assoc($result); 
    echo '<tr>'; 
    for ($field = 0; $field < $numfields; $field++) { 
     $field_name = mysql_field_name($result, $field); 
     if (isset($_POST['checkbox'][$field_name])) { 
      echo '<td>' . $data[$field_name] . '</td>'; 
     } 
    } 
    echo '</tr>'; 
} 
echo '</tbody>'; 
echo '</table>'; 


?> 
<input type='submit' value='Submit' /> 
</form> 

回答

1

的mysql_field_name函數的第二個參數沒有定義,所以我敢肯定,PHP是假設你的意思是0,只返回第一個字段名。使用您定義的變量($ field)作爲索引。

應該是:

for ($field = 0; $field < $numfields; $field++) { 
    $field_name = mysql_field_name($result, $field); // instead of $i 
    echo '<th><label><input type="checkbox" name="checkbox[' . $field_name . ']" value="1"/> ' . $field_name . '</label></th>'; 
} 
+0

嘿,謝謝,,這很明顯,謝謝:) 我可以請你幫忙關於一件事,一旦我選擇了值,怎麼才能顯示出選定的值?我的意思是我需要打印我選擇的字段,信息isnide他們.. – Landi

+0

你已經這樣做,但你在我所回答的代碼塊有相同的問題。如果你修正了這個問題,並且你已經把表格正確地提交給了這個腳本,它應該只顯示選中的腳本。應該是:for($ field = 0; $ field <$ numfields; $ field ++){ $ field_name = mysql_field_name($ result,$ field);如果(isset($ _POST ['checkbox'] [$ field_name])){ echo'​​',則不是$ i再次 。 $ data [$ field_name]。 ''; } } – EmmanuelG

+0

所以我應該把你剛告訴我的report.php這段代碼放在裏面? – Landi

1

您正在使用mysql_field_name,它總是給你返回相同的名稱(列0),因爲$i沒有定義。

+0

你能看到我更新的代碼嗎?你能幫我打印所有表格,基於我選擇的字段,如 選擇$複選框,$複選框2等... – Landi