MYSQL While Loop DropDown


MYSQL While Loop DropDown

>我有一个while循环,显示来自表学生的数据和一个额外的列,显示员工表ID的下拉选择,当选择时,将更新学生表中的id。我有以下代码,但在显示它时,每行仅显示雇主表中的 1 个数据。

这是 while 循环。任何帮助将不胜感激,提前感谢。

while(($row = mysql_fetch_array($search_result)) && ($row1 =mysql_fetch_array($search_result2))){
echo"<form action=manualallocation.php method=post>";
echo"<tr>";
echo "<td>" . $row['stud_ID']."</td>";
echo "<td>" . $row['stud_NAME']."</td>";
echo "<td>"."<Select name='ex1'>"."<option value='" .$row1['emp_id'] ."'>" .$row1['emp_id'] ."</option>"."</select>";
echo "<td>" . "<input type='char' name='emp_location' value='" .$row1['emp_location'] . "'/> </td>";
echo "<td>" . "<input type='char' name='stud_FIELDOFSTUDY' value='" .$row['stud_FIELDOFSTUDY'] . "'/> </td>";
echo "<td>" . "<input type='char' name='student_yearCompleted' value='" .$row['student_yearCompleted'] . "'/> </td>";
echo "<input type='hidden' name=hidden value=" . $row['stud_ID'] . ">";
echo "<td>" . "<input type='submit' name='submit' value=update". "></td>";
echo "</tr>";
echo "</form>";
}

查询:

<?php
    $connect=mysql_connect('127.0.0.1', 'root', 'root');
    if(!$connect)
    { die("Can't Connect " . mysql_error()); } 
    mysql_select_db("web",$connect); 
    if (isset($_POST['submit']))
    {
        $updatequery = "UPDATE student SET emp_id=emp_id WHERE emp_ID='$_POST[submit]'"; 
        mysql_query($updatequery,$connect); 
    }; 
    $sql="SELECT * FROM student WHERE emp_id IS NULL"; 
    $search_result=mysql_query($sql,$connect); 
    $sql2="SELECT * FROM employer "; 
    $search_result2=mysql_query($sql2,$connect); 
?>

while循环失败,因为两个查询返回不同的行号。另外,您不了解获取机制:在每个循环中,$row值和$row1值都是一个查询行:如何仅使用一个值构建<option>

基本上,您必须分离while()循环:

首先,用雇主的完整<option>代码填充变量(将字段名称替换为您自己的正确名称);

$employers = '';
while( ( $row = mysql_fetch_array( $search_result2 ) )
{
    $employers .= "<option value='"{$row['emp_id']}'">{$row['emp_name']}</option>";
}
$employers = "<select>$employers</select>";

然后,为学生执行while()循环:

while( ( $row = mysql_fetch_array( $search_result ) )
{
    (...)
    echo "<td>" . $row['stud_NAME']."</td>";
    echo "<td>$employers</td>";
    (...)
}

通常,您必须在编写代码之前弄清楚代码的工作方式。

另外,请注意,UPDATE student SET emp_id=emp_id WHERE emp_ID='$_POST[submit]'听起来像是一个不必要的查询:这意味着emp_id字段必须设置为自己的值。

上面的代码只是一个示例,可帮助您修改代码。它没有经过测试,我不知道您的代码中是否存在其他错误。你绝对必须检查编写代码的错误:遵循Jay在评论中的建议。

请注意:

mysql_语法在 PHP 5.5.0 中被弃用,并在 PHP 7.0.0 中删除。相反,应该使用 MySQLiPDO_MySQL 扩展。

(来自PHP官方网站)