我需要使用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);
?>*
将记录集填充到数组并比较数组
会更容易吗?帮助赞赏
答案 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
查看运行查询