我目前正在创建一个应用程序来抓取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);
}
有什么建议吗?
答案 0 :(得分: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想要的那样在数据库中插入实际的图像。
答案 1 :(得分:0)
如果您想为每个图像设置一个提交按钮,您可以保留多个表单结构并添加:
echo "<input type='hidden' name='image_url' value='".$data->images->thumbnail->url."'>";
然后使用$_POST['image_url']
检索tag.php中的网址。
确保在将URL放入SQL查询之前验证URL。
答案 2 :(得分: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']);
...