0

私はphpを初めて使用し、次のコードブロックに問題があります。すべてが実行されると、何らかの理由で次のアドレスに送信されます:私のエラー? 前もって感謝します. PS プロジェクトを分類したら, 機能に関して, 言われたことをmysqliへの賢明な翻訳にします. ありがとうございました.

ああ、最後にもう1つ、私が見逃している近道があるかもしれないことを私は認識しています. とにかく INSERT クエリが存在した後、いくつかのコードは新しい ID が何であるかをすぐに知ることができます。次のクエリを実行する私を救うために。最初の値フィールドに「$new_id」を入れるのと同じくらい簡単ですか。それが明確であることを願っています。

if ($check_1 == 0)
{

//Then need to register the auction...so...

$auc_update = mysql_query("

INSERT INTO auction VALUES ('','$afil','$user','','','','','')

//Should the first be "$new_id" here (above) i mean


");

$row_1 = mysql_query("

SELECT * FROM auction WHERE host = $user AND auc_no = $afil  

");

//Find
$new_id = $row_1['id'];

//Id obtained
//Go to:

header ("location:auctionx.php?id='$new_id'");

}
4

5 に答える 5

1
//Find
$new_id = $row_1['id'];

like に追加mysql_fetch_assoc()してみてくださいnew_id:

$new_id = mysql_fetch_assoc($row_1)['id'];
于 2012-12-09T17:44:42.040 に答える
1

mysql_query()結果セットを取得する必要がある後mysql_fetch_assoc()

$result_1 = mysql_query("SELECT * FROM auction WHERE host = $user AND auc_no = $afil");
$row_1 = mysql_fetch_assoc($result_1);
$new_id = $row_1['id'];
于 2012-12-09T17:45:43.127 に答える
0

問題はここにあります:

$new_id = $row_1['id'];

これを行うmysqli_fetch_array()前に行う必要があります。


ただの提案:

mysqli_*の代わりにPDO または を使用することをお勧めしますmysql_

于 2012-12-09T17:46:54.357 に答える
0

mysql_xxx()まず、1 つの関数呼び出しを見逃しています。mysql_query()クエリを mysql に送信するだけですが、SELECT次のように結果を取得する必要があります。

$result = mysql_query("SELECT * FROM auction WHERE host = $user AND auc_no = $afil");
$row1 = mysql_fetch_assoc($result);
$new_id = $row1['id'];
header ("Location: auctionx.php?id=$new_id");

使用される関数の詳細: mysql_query() mysql_fetch_assoc()

次に、クエリが機能することを本当に確認する必要があるため、戻り値を確認し、それが false でないかどうかを確認し、そうでない場合はエラーを表示します。

$result = mysql_query("SELECT * FROM auction WHERE host = $user AND auc_no = $afil");
if(false == $result) {
    echo "Mysql error '" . mysql_errno() . "' : " . mysql_error();
}

次に、データベースへの最後の挿入に関連付けられた ID を取得する必要があるようです。これには は必要ありません。これにはmysql_insert_id()SELECTを使用するだけです。

これらすべてを念頭に置いて、コードは次のようになります。

if ($check_1 == 0)
{
$auc_update = mysql_query("INSERT INTO auction VALUES ('','$afil','$user','','','','','')");
if(false == $auc_update ) {
    echo "Mysql error '" . mysql_errno() . "' : " . mysql_error();
} else {
    $new_id = mysql_insert_id();
    header ("Location: auctionx.php?id=$new_id");
}

もう 1 つのことmysql_xxx()は非推奨と見なされます。実際には使用を避け、代わりにmysqliまたはPDOを試す必要があります。

于 2012-12-09T17:42:20.920 に答える
0

構文エラー: SQL ステートメント内にコメントを入れようとしました。さらに、呼び出し後に行をフェッチする必要があります。

<?php
if ($check_1 == 0){

    //Then need to register the auction...so...

    $auc_update = mysql_query("INSERT INTO auction VALUES ('','$afil','$user','','','','','')");

    //Should the first be "$new_id" here (above) i mean

    $row_1 = mysql_query("SELECT * FROM auction WHERE host = $user AND auc_no = $afil ");
    $row_1 = mysql_fetch_assoc($row_1);
    //Find
    $new_id = $row_1['id'];

    //Id obtained
    //Go to:

    header ("location:auctionx.php?id='$new_id'");
}?>
于 2012-12-09T17:45:03.623 に答える