php - MYSQLI - 每次运行增量查询 WHERE 值

标签 php mysql mysqli auto-increment

我想看看是否可以增加 $tid 每次加一,
所以它是 $tid = 1, 2, 3, 4, 5, 等等...

$tid 将对表的行进行计数,因此 $tid=1 将回显第 1 行信息,$tid=2将回显第 2 行信息等。虽然我可能觉得这不是最好的解决方案,但如果有人能提出一个更优选的替代方案,那就太好了。

TL:DR:我只是想找到一种方法,可以使用下面的代码示例循环遍历 s_id = $tid 的所有行

$tid = 1;

$query2 = "SELECT * FROM `SALE` 
 LEFT JOIN `SALE_ROW` 
   ON `SALE_ROW`.s_id=`SALE`.s_id 
 WHERE `SALE_ROW`.s_id = {$tid}";
$results2 = mysqli_query($dbconnection, $query2);
while ($row = mysqli_fetch_array($results2)) {

    echo '<div class="pphhold">';

    echo '<div class="pcdtstlye">Previous Details</div>';

    echo  '<div> s_id: ' . $row['s_id'] .'</div>';
    echo  '<div> p_id: ' . $row['p_id'] .'</div>';
    echo  '<div> sr_qty: ' . $row['sr_qty'] .'</div>';
    echo  '<div> s_total: ' . $row['s_total'] . '</div>';
    echo  '<div> s_date: ' . $row['s_date'] . '</div>';

    echo '</div>';

};

最佳答案

在您的代码中,您正在循环外执行 MySQL 查询。它将执行一次,然后循环结果。如果您想更改查询(我假设 $tid 是查询的参数)并希望获取更改后查询的输出,则必须再次执行查询。如果您知道 $tid 所有可能的值,它可以按以下方式工作:

$tids = [1, 2, 3];
foreach($tids as $tid) {
  $query2 = "SELECT * FROM `SALE` LEFT JOIN `SALE_ROW` ON `SALE_ROW`.s_id=`SALE`.s_id WHERE `SALE_ROW`.s_id = {$tid}";
  $results2 = mysqli_query($dbconnection, $query2);
  $row = mysqli_fetch_array($results2);

  echo '<div class="pphhold">';

  echo '<div class="pcdtstlye">Previous Details</div>';

  echo  '<div> s_id: ' . $row['s_id'] .'</div>';
  echo  '<div> p_id: ' . $row['p_id'] .'</div>';
  echo  '<div> sr_qty: ' . $row['sr_qty'] .'</div>';
  echo  '<div> s_total: ' . $row['s_total'] . '</div>';
  echo  '<div> s_date: ' . $row['s_date'] . '</div>';

  echo '</div>';
}

但这并不好,因为您必须多次执行查询。所以只需使用 IN:

$tids = [1, 2, 3];
$query2 = "SELECT * FROM `SALE` LEFT JOIN `SALE_ROW` ON `SALE_ROW`.s_id=`SALE`.s_id WHERE `SALE_ROW`.s_id IN(" . implode(',', $tids) . ")";
$results2 = mysqli_query($dbconnection, $query2);
while($row = mysqli_fetch_array($results2)) {
  echo '<div class="pphhold">';

  echo '<div class="pcdtstlye">Previous Details</div>';

  echo  '<div> s_id: ' . $row['s_id'] .'</div>';
  echo  '<div> p_id: ' . $row['p_id'] .'</div>';
  echo  '<div> sr_qty: ' . $row['sr_qty'] .'</div>';
  echo  '<div> s_total: ' . $row['s_total'] . '</div>';
  echo  '<div> s_date: ' . $row['s_date'] . '</div>';

  echo '</div>';
}

关于php - MYSQLI - 每次运行增量查询 WHERE 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47740405/

相关文章:

php - 寻找在线sql注入(inject)工具检查器

mysql - 使用 mysql 从表中搜索项目,例如

scriptella 中的 MySQL 到 MySQL 数据复制

php - mysqli insert_id 不工作

php - 将mysql更改为mysqli错误

用户函数中的 php data_seek

php - laravel - 如何连接 URL 并以 json 格式从数据库检索图像

javascript - 如何在 php 中传递值?

php - 本地化的州/省数据

php - 频繁的数据库计算