我有以下PHP:
<?php
$con = mysql_connect("localhost","foo","bar");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("zed", $con);
$getTagID = $_GET["id"];
//make a loop that outputs each coupon that has been tagged that
$alphaTagSQL = mysql_query("SELECT * FROM coupon_tags WHERE tagID = '$getTagID'");
$alphaTagSQLArr[] = mysql_fetch_array($alphaTagSQL);
foreach($alphaTagSQLArr as $mouse)
{
$nzed = $mouse["couponID"];
$brah = mysql_query("SELECT * FROM coupons WHERE couponID = '$nzed'");
$pen[] = mysql_fetch_row($brah);
}
foreach($pen as $ruler)
{
echo $pen;
}
?>
我要做的是从$_GET
中选择tagID,然后将其与表couponID
中与其匹配的所有coupon_tags
匹配,然后将coupon_ID
与表retailerName
中的coupons
匹配,其中couponID
将匹配字段id
。然后我只想按字母顺序列出它们。我遇到了一些问题 - 即我收到错误Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource
。
任何帮助?
答案 0 :(得分:3)
尝试更改
$brah = mysql_query("SELECT * FROM coupons WHERE couponID = '$nzed'");
到
$brah = mysql_query("SELECT * FROM coupons WHERE couponID = '$nzed'") or die(mysql_error());
它将为您提供有关查询未成功原因的更多信息。
答案 1 :(得分:0)
如果您使用的是最新版本的MySQL,我建议您使用子选项替换该循环,例如
"SELECT retailerName FROM coupons WHERE couponID IN (SELECT id FROM coupon_tags WHERE tagID = '$getTagID')"
如果您在查询中添加更多内容,则可以让数据库完成工作,并且它比多个查询更有效。通常,只返回您感兴趣的列而不是所有列也是一个好主意。
除此之外,您可以尝试查看使用MySQL控制台的问题或更详细的PHP日志记录(如@Ikke建议的那样)