php echo不显示

时间:2011-07-12 13:29:29

标签: php mysql

此代码

<?php  echo "Likes: ".$r['votes_up']."&nbsp;"; echo "Dislike: ".$r['votes_down'].""; ?>        

不要在表格中发布'votes_up''votes_down'的值 我无法理解这个问题!我有这个确切的代码在不同的页面上工作,但它不会在此。
继承了整个代码......

    <div class="message">
<?php 
$sql = mysql_query("SELECT * FROM threads WHERE id = '" . $_GET['id'] . "'") or die(mysql_error());     
    while($r = mysql_fetch_array($sql))  {
$posted = date("jS M Y h:i",$r['posted']); echo "".$r['author']." &nbsp; $posted";?>
<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" data-text="<?php echo "".$r['message'].""; ?>">
        Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
<div class="message2"><?php echo "".$r['message'].""; }?></div> 
<?php  echo "Likes: ".$r['votes_up']."&nbsp;"; echo "Dislike: ".$r['votes_down'].""; ?>        
</div>
<br/>
<hr>

有人可以帮忙吗?它让我疯了

4 个答案:

答案 0 :(得分:2)

代码的第8行

<div class="message2"><?php echo "".$r['message'].""; }?></div> 

为什么在结束?>之前关闭大括号?

答案 1 :(得分:2)

你好像已经在这里关闭了WHILE循环:

<div class="message2"><?php echo "".$r['message'].""; }?></div>

注意大括号。

因此,votes_up和votes_down没有值。

答案 2 :(得分:1)

您的大括号放在最后一个echo语句之前,因此$ r变量超出范围。

将}移动到页面中的后面,如此

<div class="message">
<?php 
    $sql = mysql_query("SELECT * FROM threads WHERE id = '" . mysql_real_escape_string($_GET['id']) . "'") or die(mysql_error());     
    while($r = mysql_fetch_array($sql))
    {
        $posted = date("jS M Y h:i",$r['posted']);
        echo $r['author']." ".$posted;
?>
<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" data-text="<?php echo $r['message']; ?>">
    Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
<div class="message2">
    <?php
        echo $r['message']; 
    ?>
</div> 
    <?php
        echo "Likes: ".$r['votes_up']."&nbsp;";
        echo "Dislike: ".$r['votes_down'];
    } 
    ?>        
</div>
<br/>
<hr>

另请注意$ sql var中对mysql_real_Escape_string的调用。这样可以防止令人讨厌的SQL注入

答案 3 :(得分:0)

这是因为$r['...']变量超出了放置它的范围。

更好的方法(假设你只获取一行:

<?
   $sql = mysql_query("SELECT * FROM threads WHERE id = '" . $_GET['id'] . "'") or die (mysql_error());
   $row = mysql_fetch_assoc($sql);
?>

<div> ... </div>
<?php echo "Likes: " . $row['votes_up'] . " &nbsp;  Dislike: " . $row['votes_down']; ?>