请求带有id号的名称和描述的Mysql查询

时间:2017-03-16 11:15:42

标签: php mysql

我有content.php页面,当我点击"更多"它必须给我与id号

相同的内容
<a class="btn text_3 color_3" href="contentdesc.php?contentid=<?=$content["id"]?>">more</a>

问题是当我点击更多时,它会将我引导至contentdesc.php并通过此查询向我提供表格中的最后一行:

  <?php   
   $select="SELECT * FROM content WHERE id HAVING COUNT(*) > 1";
                $query=mysql_query($select);
                while($row=mysql_fetch_assoc($query)) {
                    ?>

                <div class="grid_12">   

                <div class="box3">
        <h3 class="text_4   equal" data-mh="3"><?=$row['name']?></h3>

        <div class="divider"></div>


        <p class="text_8 color_6"><?=$row['description']?></p>

                            </div>

                        </div>  


        <?php } ?>

请允许任何人帮助我将内容作为相同的ID号码添加到行中吗?

1 个答案:

答案 0 :(得分:0)

contentdesc.php页面中的SQL查询有点奇怪。

SELECT * FROM content WHERE id HAVING COUNT(*) > 1

这是什么意思?

  • SELECT *返回所有列
  • FROM content来自此表
  • WHERE id其中id列的值计算结果为true。也就是说,对于具有非零id的每一行。 (可能不是你想要的。)
  • HAVING COUNT(*) > 1如果表格有两行或更多行。 (可能不是你想要的)。

这可能不正确。您可能需要使用此SQL语句:

  SELECT name, description FROM content WHERE id=DESIRED_ID_VALUE;

在php中,它看起来像这样。

 $select="SELECT name, description FROM content WHERE id=" . 
             intval($_REQUEST["contentid"]) . ";";

第一个代码行中的超链接会生成一个如下所示的网址。

contentdesc.php?contentid=123

$_REQUEST["contentid"]的值来自contentid parameter on the URL. intval() turns the value into an integeravoid sql injection

警告即可。您正在使用的mysql_来电是过时不安全。请考虑改为使用mysqli_PDO