gpt4 book ai didi

php - 尝试用 php 回显 mysql 表中没有的每个 int

转载 作者:行者123 更新时间:2023-11-29 23:18:19 25 4
gpt4 key购买 nike

我对整个编程工作还很陌生。我需要从 mysql 数据库中回显任何丢失的整数(按时间顺序)。所以这个 $row["statement"] 的整数从 114 开始一直到 44714。这个列表中缺少数字,我需要知道哪些数字。第一个缺失的数字是 118。所以它是 114, 115, 116, 117, 120, ...

我想回显 118、119 以及此 $row["statement"] 中缺少的任何其他内容。

我这里的内容只是打印,直到缺少一个,所以“114 115 116 117”。

<?php 
$link = mysqli_connect("localhost", "root", "password", "DB")or die("Error " . mysqli_error($link));

$query = "SELECT statement FROM sales" or die ("Error in the consult.." . mysqli_error($link));
$result = $link->query($query);
$count = 114;

while($row = mysqli_fetch_array($result)) {
while ($row["statement"] == $count) {
echo $count . "<br>";
$count++;
}
}
?>

我不知道如何做相反的事情。如果我要设置第二个 while 条件来检查 if !==,这只会打印出整个列表,包括缺失的和未缺失的。即 114、115、116、117、118、119、120...

嵌套这些 while 不好吗?应该做一会儿吗?如果声明?我不明白其中的逻辑。请学我真好。

最佳答案

如果创建一个数组然后比较该数组,您可以让自己变得简单 -

$count = 114;
$currentNumbers = array();
while($row = mysqli_fetch_array($result)) {
array_push($currentNumbers, $row['statement'];
}
$tempArray = range($count,max($number));
$missingNumbers = array_diff($tempArray,$CurrentNumbers);
foreach($missingNumber AS $value) {
echo $value . '<br />';
}

range() array_diff() EXAMPLE

关于php - 尝试用 php 回显 mysql 表中没有的每个 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27573535/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com