Php 选择数据,其中id=url的一部分

Php 选择数据,其中id=url的一部分,php,mysqli,Php,Mysqli,我编写这段代码是为了获取12345,并在bithumula.co/posts/12345的mysql查询中选择它,以便查询可以选择id=12345的数据 例如: 当前url:bithumor.co/posts/12345 选择:id=12345的数据 代码如下: <?php $tokens = explode("/", $_SERVER[REQUEST_URI]); $number = $tokens[count($tokens) - 1]; $sql = "SELECT id, post

我编写这段代码是为了获取12345,并在bithumula.co/posts/12345的mysql查询中选择它,以便查询可以选择id=12345的数据

例如: 当前url:bithumor.co/posts/12345 选择:id=12345的数据

代码如下:

<?php
$tokens = explode("/", $_SERVER[REQUEST_URI]);
$number = $tokens[count($tokens) - 1];
$sql = "SELECT id, post_title, username, content_url, pro_pic, username FROM posts WHERE id = ".$number;

$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo "<br><div class='entire_post'><center><img class='pro_pic' src=http://cdn.bithumor.co/pro_pics/" . $row['pro_pic']. "></center><title>" . $row['post_title']. " </title><center><font face='HelveticaNeue-Light' font size='5'>" . $row['username']. "</font> </center><center><img class='upload' src=http://cdn.bithumor.co/uploads/" . $row["content_url"]. " width='100%'></center> " . $row["id"]. "<br></div>";
}
$conn->close();
?>

我做错了什么?如何修复它?

-您缺少一个}来关闭if语句

-您可以删除if语句: 而不是:

if ($result->num_rows > 0) 
{
    // output data of each row
    while($row = $result->fetch_assoc()) 
    {
        echo "<br><div class='entire_post'><center><img class='pro_pic' src=http://cdn.bithumor.co/pro_pics/" . $row['pro_pic']. "></center><title>" . $row['post_title']. " </title><center><font face='HelveticaNeue-Light' font size='5'>" . $row['username']. "</font> </center><center><img class='upload' src=http://cdn.bithumor.co/uploads/" . $row["content_url"]. " width='100%'></center> " . $row["id"]. "<br></div>";
     }
 }
只需使用:

while($row = $result->fetch_assoc())
{
    echo "<br><div class='entire_post'><center><img class='pro_pic' src=http://cdn.bithumor.co/pro_pics/" . $row['pro_pic']. "></center><title>" . $row['post_title']. " </title><center><font face='HelveticaNeue-Light' font size='5'>" . $row['username']. "</font> </center><center><img class='upload' src=http://cdn.bithumor.co/uploads/" . $row["content_url"]. " width='100%'></center> " . $row["id"]. "<br></div>";
 }

如果$result没有行,则语句:$result->fetch\u assoc将返回null,您将无法进入while循环。

这样做是不可能的。我的意思是:

http://bithumor.co/posts/12345

将无法正确执行。如果是:

http://bithumor.co/posts/?12345

这可以收集或阅读。因为这类似于index.php?12345

我建议使用URL重写。通过这种方式,您可以将URL重写为URL参数。这样,url:

http://bithumor.co/posts/12345

可能导致

http://bithumor.co/index.php?posts=12345


然后可以在脚本中调用变量$GET['posts'.

该post不存在。@JayBlanchard这只是一个例子,页面实际上不存在。请尝试打印\r$标记,尝试回显$number。执行一些调试以确保$number是有效的数字。请准备好你的声明!或者至少将您的var转换为int:int$number