Php SQL表比较、生成查询并将过滤后的数据打印到下拉列表中
我有一个名为user_id的表中的存储值。我还有另一个表: 客户单位项目:Php SQL表比较、生成查询并将过滤后的数据打印到下拉列表中,php,sql,mysqli,Php,Sql,Mysqli,我有一个名为user_id的表中的存储值。我还有另一个表: 客户单位项目: +------------------+-------------+-------------+-------------+ | project_codename | client_id_1 | client_id_2 | client_id_3 | +------------------+-------------+-------------+-------------+ | Alpha |
+------------------+-------------+-------------+-------------+
| project_codename | client_id_1 | client_id_2 | client_id_3 |
+------------------+-------------+-------------+-------------+
| Alpha | 1 | 2 | 3 |
+------------------+-------------+-------------+-------------+
| Beta | 2 | 1 | 0 |
+------------------+-------------+-------------+-------------+
| Gamma | 3 | 1 | 0 |
+------------------+-------------+-------------+-------------+
如果用户_id=(client_id_1或client_id_2或client_id_3),那么我想在下拉列表中打印相应的项目_代码名。这是我拥有的php,但没有返回正确的结果。我已将我不确定的领域推向市场
PHP(已更新并解决):
您将$query直接输入mysqli\u fetch\u array(),但此函数需要一个结果资源作为输入。您缺少mysqli_query()调用。参见示例#2 at除了根据Roman的答案缺少mysqli步骤外,您的查询在中使用不正确。您应该将其写为client\u id\u 1=?或客户机_id_2=?或者客户id 3=?Michael是对的。如果您不确定您的查询是否正确,请检查mysqli_query()的返回值,并可以选择使用函数显示服务器发送给您的完整错误消息。@MichaelJ.Anderson我已经更新了上面的代码并进行了测试,但$query中仍然存在语法错误。我的编码不对吗?我已经将代码再次更新为适合我的代码。谢谢
<?php
$con = mysqli_connect("localhost","****","****","db") or die("Connection error: " . mysqli_error($con));
//stored sample value from another table
$user_id = "1";
//Build query: Not sure if this is correct format
$query = "SELECT * FROM client_projects WHERE client_id_1 = $user_id OR client_id_2 = $user_id OR client_id_3 = $user_id";
$result = mysqli_query($con, $query) or die("Query error: " . mysqli_error($con));
//Drop down list
echo '<select id="Projects" class="input">';
echo '<option value="" selected="selected" disabled="disabled">Choose a Project...</option>';
// Loop through the query results, outputing specific options one by one
// Not sure of the loop for the options
while ($row = mysqli_fetch_array($query)) {
echo '<option value="'.$row['project_codename'].'">'.$row['project_codename'].'</option>';
}
echo '</select>';
mysqli_close($con);
?>