使用php比较两个mysql记录集

时间:2013-05-17 12:37:49

标签: php mysql compare recordset

我需要使用php

比较两个mysql记录集

比较第一个记录集中的记录存在于第二个记录集中并返回一个真值,如果不存在则返回false。

问题是一旦对记录集进行一次传递,它就不会返回到开头,所以我可以将recordset1的剩余记录与它进行比较。

我正在使用的代码是:

*mysql_select_db($database_db, $db);

$query_rec_teams = "SELECT tbl_items.* FROM tbl_items;";
$rec_items = mysql_query($query_rec_items, $db) or die(mysql_error());

$row_rec_items = mysql_fetch_assoc($rec_items);
$totalRows_rec_items = mysql_num_rows($rec_items);

$query_rec_itemsLeft = "(SELECT tbl_itemsleft.* FROM tbl_itemsLeft";
$rec_itemsLeft = mysql_query($query_rec_itemsLeft, $db) or die(mysql_error());
$row_rec_itemsLeft = mysql_fetch_assoc($rec_itemsLeft);
$totalRows_rec_itemsLeft = mysql_num_rows($rec_itemsLeft);

//iterate first recordset, populate variables
do{ 
    $itemPresent=0;
    $item=$row_rec_item['ItemID'];
    //iterate second recordset and compare item variable with itemID fields in recordset, if exist echo true, else echo false
    do { 
            if ($row_rec_itemsLeft(['ItemID'] == $item){
                itemPresent=1;
            }
            else{
                itemPresent=0;
            }
        echo itemPresent;
    } while ($row_rec_itemsLeft = mysql_fetch_assoc($rec_itemsLeft));

} while ($row_rec_items = mysql_fetch_assoc($rec_items));

mysql_free_result($rec_itemsLeft);
mysql_free_result($rec_items);
?>*

将记录集填充到数组并比较数组

会更容易吗?

帮助赞赏

2 个答案:

答案 0 :(得分:0)

使用MYSQL JOIN检索结果。

请参阅此内容以了解JOINS ..

http://www.sitepoint.com/understanding-sql-joins-mysql-database/

答案 1 :(得分:0)

您应该使用MYSQL联接来完成此任务。如果您只想显示两者中的项目:

SELECT * 
FROM tbl_items
     INNER JOIN tbl_itemsLeft 
     ON tbl_items.ItemID=tbl_itemsLeft.ItemID

如果要查看tbl_items中的所有项目并查看任何匹配或与tbl_itemsLeft不匹配,那么您可以执行LEFT JOIN并且任何具有tbl_itemsLeft IS NULL的内容都将是tbl_itemsLeft表中没有匹配项的记录

SELECT * 
FROM tbl_items 
     LEFT JOIN tbl_itemsLeft 
     ON tbl_items.ItemID=tbl_itemsLeft.ItemID

另一个提示是你不应该在php中使用mysql api函数。从PHP 5.5.0开始,这些是已弃用的函数,并且在将来的php升级后,您的代码将不再有效。我建议您使用PDO

查看运行查询