3

私は現在、instagram の画像のリストを取得し、(選択に基づいて) 特定の画像を特定のデータベースに挿入するアプリケーションを作成しています。

現在、送信ボタンを選択すると、リスト内の最後の利用可能な画像が取得され、それがデータベースに挿入されます。各画像には送信ボタンが割り当てられています。送信ボタンに関連する適切な画像がデータベースに挿入されていることを確認するにはどうすればよいですか。

以下は、画像のリストと各画像の送信ボタンのコードです。

foreach ($media->data as $data) {
echo $pictureImage = "<img src=\"{$data->images->thumbnail->url}\">";
echo "<form action='tag.php' method='post'>";
echo "<input type='submit' name='submit' value='Click Me'>";  
echo "</form>";
}

これは、データベースに画像を挿入する方法です。これは、リスト内の最後の使用可能な画像を取得して挿入することを忘れないでください。

if(isset($_POST['submit'])) {

// There variables are for the database information
$hostname = "random";
$username = "random";
$dbname = "random";
$password = "random!";
$usertable = "random";

//Connecting to your database
$con = mysql_connect($hostname, $username, $password) OR DIE ("Unable to 
connect to database! Please try again later.");
mysql_select_db($dbname, $con);

$sql="INSERT INTO $usertable (image) VALUES ('$pictureImage')";
if (!mysql_query($sql,$con)) {
    die('Error: ' . mysql_error($con));
}
    mysql_close($con);
}

助言がありますか?

4

3 に答える 3

2

フォームを次のように変更します。

echo "<form action='tag.php' method='post'>";
foreach ($media->data as $data) {
    echo "<img src=\"{$data->images->thumbnail->url}\">";
    echo "<input type=\"hidden\" name=\"image[]\" value=\"".$data->images->thumbnail->url."\">";
}
echo "<input type='submit' name='submit' value='Click Me'>";
echo "</form>";

次に、バックエンドで $image[] 配列を処理します。

foreach ($_POST['image'] as $k=>$image){
    $sql="INSERT INTO $usertable (image) VALUES ('$image')";
    if (!mysql_query($sql,$con)) {
        die('Error: ' . mysqli_error($con));
    }
}

コードにさらにいくつかの小さな変更を加える必要があるかもしれませんが、このロジックは機能するはずです。

更新:OPは画像ごとに1つのボタンを必要とするため、これはそのコードです:

foreach ($media->data as $data) {
    echo "<form action='tag.php' method='post'>";
    echo "<img src=\"{$data->images->thumbnail->url}\">";
    echo "<input type=\"hidden\" name=\"image\" value=\"".$data->images->thumbnail->url."\">";
    echo "<input type='submit' name='submit' value='Click Me'>";
    echo "</form>";
}

次に、 foreach ($_POST['image'] ) 部分を次のように変更する必要があります。

$sql="INSERT INTO $usertable (image) VALUES ('".file_get_contents($_POST['image'])."')";
if (!mysql_query($sql,$con)) {
    die('Error: ' . mysqli_error($con));
}

これにより、OPが望むようにデータベースに実際の画像画像が挿入されます。

于 2013-07-31T20:14:27.793 に答える
0

画像ごとにフォームを作成しているため、送信ボタンはその送信されたフォーム内の入力フィールドのみを投稿します。

フォームの非表示フィールドとして画像データを追加する必要があります

出力:

foreach ($media->data as $data) {
    echo $pictureImage = "<img src=\"{$data->images->thumbnail->url}\">";
    echo "<form action='tag.php' method='post'>";
    echo "<input type='hidden' name='img_url' value='{$data->images->thumbnail->url}'">;
    echo "<input type='submit' name='submit' value='Click Me'>";  
    echo "</form>";
}

次に、投稿を処理するために:

...
$hostname = "random";
$username = "random";
$dbname = "random";
$password = "random!";
$usertable = "random";
$pictureImage = file_get_contents($_POST['img_url']);
...
于 2013-07-31T20:25:13.663 に答える
0

画像ごとに送信ボタンが必要な場合は、複数のフォーム構成を維持して、次を追加するだけです。

echo "<input type='hidden' name='image_url' value='".$data->images->thumbnail->url."'>";

次に、tag.php で URL を取得します$_POST['image_url']。URL を SQL クエリに入れる前に必ず検証してください。

于 2013-07-31T20:21:50.817 に答える