0

php/mysql 2 を介して 2 つの mysql テーブルを利用しようとしています。最大値を取得します。これを行うには配列を使用するのが正しい方法だと思いますが、何時間も費やして何かが欠けています。

私のテーブルは次のとおりです。

1) $CustIDを持つplantcompすべてのリストを知りたい場合。(現在は 3 つあります)。CompressIDCustID

2) comps、これらのCompressIDリストを使用して有効な # を知りたい場合Compressor。次に、これらの値に対して max() を実行して、次のコンプレッサーに max()+1 という名前を付けます。

私のコードの試行...これによりエラーが発生します:「通知:55行目の(パス名)の配列から文字列への変換」、次に「配列」

//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'];}

よろしくお願いいたします。

4

3 に答える 3

0
Please change this line 

echo "<p>".$row;
to 
echo "<p>";
print_r($row);
于 2013-01-03T06:56:53.297 に答える
0

あなたが抱えている問題は、文字列 (< p >) と配列 ( $row )を混ぜているという事実から来ています。

echo "<p>".$row;

print_rを使用して $row 配列を出力できます。

print_r($row);

次のように $row 配列 (テーブルの列) のさまざまな要素にアクセスすることもできます。

$row['column_name'];

たとえば、テーブルが first_name と last_name の 2 つの列で構成されているとします。次のように印刷できます。

echo '<p>' . $row['first_name'] . ' ' . $row['last_name'] . '</p>';

したがって、その知識があれば、CompressID を出力できます。

$result55 = mysql_query("SELECT * FROM `plantcomp` WHERE `CustID`='" . $CustID . "'");

while ($row = mysql_fetch_assoc($result55))
{
    echo '<p>' . $row['CompressID'] . '</p>';
}
于 2013-01-03T06:58:13.617 に答える
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'];

    }
}
于 2013-01-03T07:29:33.550 に答える