mysql_fetch_array使用php比较2个表之间的数据?

时间:2013-01-03 06:54:07

标签: php mysql arrays

我正在尝试通过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'];}

提前感谢您的帮助!!

3 个答案:

答案 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'];

    }
}