我正在尝试通过php / mysql 2使用2个mysql表来获取最大值。我假设使用数组是正确的方法,但我已经花了很多时间而且错过了一些东西。
我的表是:
1)plantcomp
,我想知道CompressID
$ CustID的CustID
个商家信息。 (目前有3个)。
2)comps
,我希望使用这些CompressID
列表来了解有效的Compressor
#s。然后我会对这些值执行max(),这样我就可以命名下一个压缩器max()+ 1。
我的代码尝试...这给我一个错误:“注意:第55行的(pathname)中的数组转换为字符串”,然后是“数组”
//have the custid
echo $CustID;
//under table `plantcomp`, find matching compressid's.
$q55 = "SELECT * FROM `plantcomp` WHERE `CustID`='" . $CustID . "' ";
// Run query
$result55 = mysql_query($q55);
while($row = mysql_fetch_array($result55)){
echo "<p>".$row;
我也试过这个,mysql_fetch_assoc,但它只给了我3个有效条目中的2个......
$get = mysql_query("SELECT CompressID FROM plantcomp WHERE CustID = '$CustID'");
$money = mysql_fetch_assoc($get);
while($money = mysql_fetch_assoc($get)){echo $money['CompressID'];}
提前感谢您的帮助!!
答案 0 :(得分:0)
Please change this line
echo "<p>".$row;
to
echo "<p>";
print_r($row);
答案 1 :(得分:0)
您遇到的问题来自于您将字符串(&lt; p &gt;)与数组混合( $ row )。
echo "<p>".$row;
您可以使用 print_r :
打印$ row数组print_r($row);
您还可以访问$ row数组(表列)的不同元素,如下所示:
$row['column_name'];
例如,假设您的表包含两列:first_name和last_name。您可以这样打印:
echo '<p>' . $row['first_name'] . ' ' . $row['last_name'] . '</p>';
因此,凭借这些知识,我们可以打印您的CompressIDs:
$result55 = mysql_query("SELECT * FROM `plantcomp` WHERE `CustID`='" . $CustID . "'");
while ($row = mysql_fetch_assoc($result55))
{
echo '<p>' . $row['CompressID'] . '</p>';
}
答案 2 :(得分:0)
$CompressID = array(); //Initialising an array
$query = "SELECT * FROM `plantcomp` WHERE `CustID`='" . $CustID . "' ";
$result = mysql_query($query);
while($obj = mysql_fetch_assoc($result)){
$CompressID = $obj['CompressID']; //Storing all the CompressID in an array
echo $obj['CompressID']; // sanity check
}
首先运行上面的查询并将结果与db进行比较。如果结果不匹配 1)db中有一些错误的数据 2)改变您的查询以获得所需的结果。
如果这样做,那么添加其余的代码
if( count($CompressID) >0 ){
$query = "SELECT max(CompressID) as maxCompressID FROM `comps` WHERE `CompressID` IN($CompressID)";
$result = mysql_query($query);
while($newObj = mysql_fetch_assoc($result){
echo $newObj['maxCompressID'];
}
}