PHP / MySQL在int值内打印0

时间:2012-02-26 23:15:24

标签: php mysql printf

当我尝试输入ID字段来标记我的个人帖子(post-id:1932等)时,该值始终显示为0,而不是数据库的值。

查询采用$ _REQUEST的主题变量(通过单击链接生成)。

这是我的代码:

 <?php

 require_once 'connect.php';

 $topic = $_REQUEST['topic'];

 // Build the SELECT statement
 $select_posts =
 "SELECT p.topic, p.title, p.pic_id, p.snippet, p.content, p.author_id, p.date FROM posts p WHERE p.topic =  '" . $topic . "' OR p.topic='Admin' ORDER BY p.date DESC";

 // Run the Query
 $result = mysql_query($select_posts);

 ?>

 <?php
   $post_count=0;
   while ($post_count<10 && $posts = mysql_fetch_array($result)) {
       $posts_row = sprintf(
           '<entry>
               <headline>%s</headline>
                    <pic><img class=inlinepic src=/Sustenance/assets/post-pics/%d.jpg></pic>
                    <snippet class=on id="%d snippet">%s</snippet>
                    <readmore id="readmore%d" class=on onclick=readmore("%d")>Read More</readmore>
                    <content id="%d" class="less">%s
                        <readmore class=on onclick=readless(%d)>Show Less</readmore>
                    </content>
                    <byline>
                        <by>by</by>
                        <author>%s</author>
                    </byline>
            </entry>',
       $posts['topic'], $posts['title'], $posts['pic_id'], $posts['post_id'], $posts['snippet'], $posts['post_id'], $posts['post_id'], $posts['post_id'], $posts['content'], $posts['post_id'], $posts['author_id']);
       echo $posts_row;
       $post_count++;
  }
 ?>

我发现奇怪的是'pic_id'正确打印并输入正确的图片,但即使我尝试在$ divid中重复使用pic_id也无效。我尝试使用$ {3}}中的所有不同的整数类型说明符替换$ divid和$ posts ['id'],甚至使用内联php。

我是否有语法错误?为什么它会一直打印0?

编辑:我已根据要求发布了查询

编辑2:删除了$ divid变量。

1 个答案:

答案 0 :(得分:0)

你必须把行

$divid=$posts['post_id'];

while循环中。它现在的方式是尝试在循环头中第一次分配$posts['post_id']之前获取值0因此是{{1}}并且永远不会更改(因为它永远不会被重新分配)。