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 需要为每个图像一个按钮,因此代码如下:

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

如果您想为每个图像设置一个提交按钮,您可以保留多表单结构并添加:

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 回答
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 回答