我对这整个编程工作都很陌生。我需要回显出缺少的mysql数据库中的任何整数(按时间顺序)。所以这个$ row ["语句"]的整数从114开始到44714.这个列表中缺少数字,我需要知道哪些。缺少的第一个数字是118.所以它是114,115,116,117,120,......
我想回复118,119,以及此$行["声明"]中的任何其他缺失。
我所拥有的只是打印,直到缺少一个,所以" 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++;
}
}
?>
我无法思考如何反过来。如果我设置第二个条件以检查是否!==,这将打印出整个列表,包括丢失和不丢失。即114,115,116,117,118,119,120 ......
嵌套这些不好吗?应该是吗?如果声明?我没有得到逻辑。请真正了解我。
答案 0 :(得分:0)
如果制作一个数组然后对数组进行差异化,你可以轻松自己做 -
$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 />';
}
答案 1 :(得分:0)
<?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;
$max = 44714;
$currentNumbers = array();
$numberOfMissing = 1;
while($row = mysqli_fetch_array($result)) {
array_push($currentNumbers, $row['statement']);
}
$tempArray = range($count, $max);
$missingNumbers = array_diff($tempArray, $currentNumbers);
foreach ($missingNumbers as $value) {
echo $numberOfMissing++ . ". " . $value . "<br>";
}
?>
谢谢Jay!