php - 检查数组中是否存在 mysql 行

标签 php mysql

我有一组商店编号。我有一个 mysql 数据库,这些商店每周提交报告。我正在尝试建立一个简单的表格,在左侧列出所有商店,然后根据该商店是否提交了每周报告打上复选标记或 x。

我可以使 StoreNumber 数组按应有的方式适合表列,但很难检查 store_number 的 num_row 是否存在。我想我很接近,但也许不是。提前致谢。

代码如下:

<?php
//set var store as store number
//check if var store has kir submitted
//if so, put check.
//if not, put x.
//check next store number

    //connect to the database
    require("../dbfiles/connect.php");

    // Date Formatting for MYSQL
    if(!empty($_POST['WeekEnding'])){
        $WeekEnding = $_POST['WeekEnding'];

        $WeekEnding = strtotime($WeekEnding);
        $WeekEnding = date('Y-m-d', $WeekEnding);
}
//Array of all stores
$StoreNumber = array(586,
7695,
12510, 
24022,
24707,
28373,
30367,
30819,
31396,
31544,
33663,
33475,
39245,
47140,
49647,
49648,
51833,
51833-1,
57107,
60641,
62802,
297,
13778,
26519,
27055,
28311,
31296,
36438,
38156,
48925,
59288);

while($StoreNumber[$x] = 0){
//query to check for info in table
    $query = "SELECT * FROM kir1 WHERE WeekEnding = '$WeekEnding' AND storenumber = ' . $StoreNumber[$x] . '";  
    $response = @mysqli_query($dbc, $query);  
        echo '<style>
            table {
                border-collapse: collapse;
                width: 100%;
            }

            th, td {
                text-align: left;
                padding: 8px;
            }

            tr:nth-child(even){background-color: #f2f2f2}

            th {
                background-color: #4CAF50;
                color: white;
            }
            </style>';
        echo '<table>

        <tr><th><b>Store Number</b></th>
        <th><b>KIR</b></th></tr>';

//If connected, build table, then row out each response
    if($response) {
        $count = mysqli_num_row($response);
        if($count > 0){
            echo "<tr><td>" . $StoreNumber[$x] . "</td><td> &#x2714; </td></tr>";
            } else {
            echo "<tr><td>" . $StoreNumber[$x] . "</td><td> &#x2717; </td></tr>";
            }
        }
    }
?>

最佳答案

使用 IN 运算符,它的工作方式类似于 OR

$storeNumbers = array(...);
$query = "SELECT * FROM kir1 WHERE WeekEnding = '$WeekEnding' AND storenumber IN ($storeNumbers)";  

关于php - 检查数组中是否存在 mysql 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45529266/

相关文章:

php - 使用 jquery 和 ajax 更新 <select> 选项列表

mysql - 如何在 Laravel 中编写 orWhereYear()

php - 输入标签中的换行符,来自 mysql 的数据

javascript - Service Worker 可以预缓存 MySQL 数据库吗?

mysql - 优化 MySQL 表速度的方法

php - 在 php 中包含外部代码

php - 显示来自mysql数据库的数据

php - MySQL:验证费率范围内的日期范围(laravel 可选)

php - 如何获取使用 post 方法循环插入值到数据库中的文本框的值?

php - 将参数传递给分页 url