0

画像をアップロードできるフォームがあります。ユーザーは、ラジオボタンに基づいて、画像をアップロードするギャラリーを選択できます。

phpのアップロードスクリプトでは、画像がディレクトリにアップロードされてから、ディレクトリの場所がMYSQLデータベースに追加されます。アップロードとディレクトリの追加は正常に機能します。

画像データベースの別の列に押されたラジオボタンの名前を追加して、画像が別のテーブルにあるため、どの画像がどのギャラリーにアップロードされたかを確認しようとしています。

私のフォームは次のようになります

<form enctype="multipart/form-data" action="upload-image.php" method="POST">
<h3>Select Gallery To Upload To</h3>
<?php
    $results = mysql_query("SELECT * FROM users");
    while ($row = mysql_fetch_assoc($results)) 
    {
        echo'<br>';
        echo '<input type="radio" name="'. $row["username"].'"value="'.$row["username"].'">' . $row["username"];
    }
?>
<input type="hidden" name="MAX_FILE_SIZE" value="10000000" />
Choose a file to upload: <input name="uploadedfile" type="file" /><br />
<input type="submit" value="Upload File" />
</form>

MYSQLデータベースへの追加を処理するアップロードスクリプトのセクションは次のとおりです。

mysql_query("INSERT INTO images (image, gallery_name) VALUES('".$target_path, $_POST["$row["name"]"]."')")

これは私にいくつかのエラーを与えています:注意:未定義のインデックス:名前

警告:mysql_query()は、パラメーター2がリソースであり、文字列が指定されていることを想定しています。

どうすればこれを修正できますか?

4

2 に答える 2

1

文字列が正しく連結(結合)されていません。

変化する

mysql_query("INSERT INTO images (image, gallery_name) VALUES('".$target_path, $_POST["$row["name"]"]."')")

$row_data = $row["name"];
mysql_query("INSERT INTO images (image, gallery_name) VALUES('".$target_path."', '".$_POST[$row_data]."')");
于 2013-01-15T05:57:40.983 に答える
1

クエリの二重引用符は少し厄介です。mysql_queryまた、によって作成されたリソースをフィードする必要がありますmysql_connect(次の例では、によって表され$mysqlます)。

mysql_query("INSERT INTO images (image, gallery_name) VALUES('".$target_path."', '". $_POST[$row["name"]]."')", $mysql);
于 2013-01-15T05:58:32.373 に答える