我有两张表如下:
表1:产品
表2:product_add
现在我想使用PHP For Record Id = 3来跟随输出。
我将尝试以下代码:
<?php
$select = "SELECT * FROM product WHERE status = 1";
$query = mysql_query($select);
while($row = mysql_fetch_array($query)){
$s = "SELECT * FROM product_add WHERE status = 1 and product_id = '".$row["id"]."'";
$q = mysql_query($s);
while($r = mysql_fetch_array($q)){
echo $row["product_name"].'<input type="checkbox" '.($row["id"] == $r["product_id"] ? 'checked' : '').'>';
}
}
?>
答案 0 :(得分:0)
首先停止使用mysql_*
扩展程序,不推荐使用它并在PHP 7中关闭,您可以使用mysqli_*
或PDO
。
以下是MYSQLi Objected Oriented的示例:
<?php
// Create connection
$conn = new mysqli($YourServerName, $Yourusername, $Yourpassword, $Yourdbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// your query
$sql = "SELECT * FROM product p
LEFT JOIN product_add pa ON pa.product_id = p.id
WHERE p.status = 1";
$result = $conn->query($sql);
if ($result->num_rows > 0) { // if record found
while($row = $result->fetch_array()) // using while loop
{
?>
<?=$row["product_name"]?>
<input type="checkbox" <?=($row["record_id"] == 3 ? 'checked=""' : '')?>>
<?php
}
}
else
{
// if record not exist.
}
?>
您可以使用JOIN而不是在while循环中使用两个查询。您可以使用LEFT JOIN
来获得所需的输出。
如果您仍想使用您的代码,请注意,您的情况有误:
$row["id"] == $r["product_id"]
这应该是:
$row["record_id"] == 3
答案 1 :(得分:0)
我得到了答案
<?php
$select = "SELECT * FROM product WHERE status = 1";
$query = mysql_query($select);
while($row = mysql_fetch_array($query)){
$pid = $row['id'];
$s = "SELECT * FROM product_add WHERE status = 1 and product_id = '$pid' and record_id = 3";
$q = mysql_query($s);
$r = mysql_fetch_array($q);
echo $row["product_name"].'<input type="checkbox" '.($pid == $r["product_id"] ? 'checked' : '').'>';
}
?>