2012-06-18 203 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