PHP POST请求-无法获取第一行MYSQL

PHP POST请求-无法获取第一行MYSQL,php,mysql,post,Php,Mysql,Post,我目前正在创建一个图像库网站,不管我做什么,我在系统上发布的第一张图像总是不可用。我在图像上有一个“showinfo”按钮,它执行一个post请求,调用showinfo.php 这是display.php,它显示数据库中所有可用的图像 if ($method == "0") { $stmt = $conn->prepare("SELECT * FROM image"); $stmt->execute(); $result = $stmt->get_res

我目前正在创建一个图像库网站,不管我做什么,我在系统上发布的第一张图像总是不可用。我在图像上有一个“showinfo”按钮,它执行一个post请求,调用showinfo.php

这是display.php,它显示数据库中所有可用的图像

if ($method == "0") {
    $stmt = $conn->prepare("SELECT * FROM image");
    $stmt->execute();
    $result = $stmt->get_result();
    echo "
    <div class='container'>
        <div class='row text-center' style='display:flex; flex-wrap: wrap;'>";
        while ($row2 = $result->fetch_assoc()) {
        echo "<div class='col-md-3 col-sm-4'>
                    <div class='thumbnail'>
                        <img src='".$target_dir.$row2['filename']."'>
                        <div class='caption'>
                            <h4>".$row2['name']."</h4>
                        </div>  
                        <p>
                            <form action='showinfo.php' method='POST' enctype='multipart/form-data'>
                                <input type='hidden' name='image_id' value='".$row2['id']."'>
                                <button name='showinfo' class='btn btn-primary'>More Info</button>
                            </form>
                        </p>
                    </div>
                </div>";
            }
    echo "</div> </div>";
}
if($method==“0”){
$stmt=$conn->prepare(“从图像中选择*);
$stmt->execute();
$result=$stmt->get_result();
回声“
";
而($row2=$result->fetch_assoc()){
回声“
“$row2['name']”

更多信息

"; } 回声“; }
这是网页上的样子,请注意mysql中表的第一个图像/第一行仍然会被获取:

当点击“更多信息”按钮时,它将重定向到showinfo.php,如下所示:

但是,它对第一个图像不起作用。我做了一些测试,它永远不会进入showinfo.php页面,在我点击按钮后,它总是会重定向回主页。我用postman做了一个post请求,将image_id设置为1,这样我就可以得到第一张图像的信息页面,而不是单击按钮时。我使用的是XAMPP5.6.37

这是我应该得到的第一张图片的预期结果

不要理会那些塞满的东西。。但是post请求通过了


为什么要使用表单在下一页显示该产品的数据?如果用户复制链接并将其共享到其他地方,则该链接中不会包含该产品的发布数据,并且结果将是没有数据的错误页面。到目前为止,这是更好的使用方法

if ($method == "0") {
$stmt = $conn->prepare("SELECT * FROM image");
$stmt->execute();
$result = $stmt->get_result();
echo "
<div class='container'>
    <div class='row text-center' style='display:flex; flex-wrap: wrap;'>";
    while ($row2 = $result->fetch_assoc()) {
    echo "<div class='col-md-3 col-sm-4'>
                <div class='thumbnail'>
                    <img src='".$target_dir.$row2['filename']."'>
                    <div class='caption'>
                        <h4>".$row2['name']."</h4>
                    </div>  
                    <p>
                            <a href='showinfo.php?image_id=".$row2['id']."'> <button name='showinfo' class='btn btn-primary'>More Info</button></a>
                    </p>
                </div>
            </div>";
        }
echo "</div> </div>";
}
if($method==“0”){
$stmt=$conn->prepare(“从图像中选择*);
$stmt->execute();
$result=$stmt->get_result();
回声“
";
而($row2=$result->fetch_assoc()){
回声“
“$row2['name']”

"; } 回声“; }

在showinfo.php页面上,您可以使用$\u GET['image\u id']根据图像id从mysql获取数据,并通过链接在全球各地工作。

感谢所有建议。有人提到我应该尝试使用重定向代码来了解问题发生的原因。我做到了,并且我能够毫无问题地获得第一张图片的信息。所以我查看了我主页上的代码。。。事实证明,这与我们讨论的问题无关。在我的主页上,我将“方法”选择代码包装成一个表单,这就是为什么它会导致这个问题。我的代码最初看起来是这样的,showImages(this.value)是一个js函数,它将调用上面显示的display.php

id为“showimage”的div是显示所有缩略图的地方。 一旦我拿出那本书,我就能够解决我的问题了

  <form>
        <div class='form-inline'>
            <input class='form-control' type='text' id='menu_search_input' size='50' placeholder="enter content first if searching by name..">
                <select class='form-control' id='menu_search' onchange='showImages(this.value)'>
                    <option value=''>Search by</option>
                    <option value='0'>Search by Latest</option>
                    <option value='1'>Search by Image Name</option>
                    <option value='2'>Search by Category</option>
                    <option value='3'>Search by Most Popular</option>
                    <option value='4'>Search by Least Popular</option>
                    <option value='5'>Search by Most Credit Needs</option>
                    <option value='6'>Search by Least Credit Needs</option>
                </select>
            <div id="showimage">Loading images ...</div>
        </div>
 </form>

搜寻
按最新版本搜索
按图像名称搜索
按类别搜索
按最流行的搜索
按最不受欢迎的搜索
按大多数信贷需求搜索
按最少信用需求搜索
正在加载图像。。。

访问显示页面后,您是否查看了显示页面的源代码?第一张图片是否具有
图像id
输入中的预期值?@Geshode
var\u dump($\u POST)
的输出显示
image\u id
@Ukiitomi的正确值您可以添加
var\u dump($row)的结果吗
image\u id=1
image\u id=2
的showinfo.php页面上的
?从showinfo.php返回的唯一方法是当条件->如果($row=$result->fetch\u assoc()){为false时。因为sql尽可能简单(从id=?)的图像中选择*错误的id必须是原因。转储id,转储sql,查看base并检查此特定记录的id。希望通过“鼠标右键单击”->检查“Baby Cat”上的元素,而不是“Baby Pug”(在问题中更新,不是作为注释)。为什么这会解决问题?如果它不能解决问题,他将不得不在showinfo.php文件中显示他的代码,因为我似乎有问题,因为他在画廊页面上所做的一切似乎都很好,但由于新帐户的原因,我无法让他知道评论。这样做比使用表单发布图像id更灵活这不是好的做法。