PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了php-有时只显示一行?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我有两个sql表,一个包含按脚本的“手动插入的数据”,另一个包含按脚本的“自动插入的数据”.

为了测试脚本是否运行良好,手动表和自动表是相同的.

因此,我想“比较”两个数据库,然后在另一个脚本中突出显示差异.

// $currentdate_today_midnight is a timestamp

$sql_getLive = "SELECT * FROM worksheets WHERE entry_date > $currentdate_today_midnight";
$req_getLive = $cnx->query($sql_getLivE);
$req_getLive->setFetchMode(PDO::FETCH_OBJ);

// countAll counts all rows for a table and a condition 
$countLive = countAll("worksheets", "entry_date > $currentdate_today_midnight");

$sql_getCriter = "SELECT * FROM criter_live WHERE entry_date > $currentdate_today_midnight";
$req_getCriter = $cnx->query($sql_getCriter);
$req_getCriter->setFetchMode(PDO::FETCH_OBJ);

$countCriter = countAll("criter_live", "entry_date > $currentdate_today_midnight");

if($countLive == 0){
    /* If there is no live (manual datas) inserted */
    echo "EMPTY";
    die();
}

while ($check_criter = $req_getCriter->fetch()) {

    while ($check_live = $req_getLive->fetch()) {

        if ($check_live->Train_id == $check_criter->Train_id) {

            /* check_live = worksheets */
            /* check_criter = criter_live */

            echo $check_live->Train_id . "|" . $check_criter->entry_date . "|" . $check_live->entry_date . "|". $check_criter->left_date . "|". $check_live->entry_date . "|". $check_criter->Train_type . "|". $check_live->Train_type . "|". $check_criter->entry_number . "|". $check_live->entry_number . "|". $check_criter->left_number . "|". $check_live->left_number. "#";

        }
    }
}

因此,我尝试制作“一阵子”,但它不起作用,我只得到一个“ echo”……而不是17(由于countAll函数而返回).

我做错了吗?还是有其他解决方案?

谢谢!

解决方法:

编辑:我假设您在两个表中具有相同的数据.

删除第二个while循环:

while ($check_criter = $req_getCriter->fetch()) {

    $check_live = $req_getLive->fetch();

    if ($check_live->Train_id == $check_criter->Train_id) {

        echo $check_live->Train_id . "|" . $check_criter->entry_date . "|" . $check_live->entry_date . "|". $check_criter->left_date . "|". $check_live->entry_date . "|". $check_criter->Train_type . "|". $check_live->Train_type . "|". $check_criter->entry_number . "|". $check_live->entry_number . "|". $check_criter->left_number . "|". $check_live->left_number. "#";

    }
}

基本上,在外循环的第一次迭代中,您一直在从$req_getCriter中提取一行,并将其与$req_getLive中的所有其他行进行比较.第二次迭代将不起作用,因为已获取$req_getLive中的所有行.

大佬总结

以上是大佬教程为你收集整理的php-有时只显示一行?全部内容,希望文章能够帮你解决php-有时只显示一行?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: