复选框选择数据库中是否存在数据

时间:2016-10-11 06:51:04

标签: php

我有两张表如下:

表1:产品

表2:product_add

prodct tables

现在我想使用PHP For Record Id = 3来跟随输出。

Output

我将尝试以下代码:

<?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' : '').'>';
    }
}

?>

2 个答案:

答案 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' : '').'>';

}

?>