2011-01-13 89 views
-2

为什么这不起作用?PHP帮助虽然功能

<?php 
$select = "select * from messages where user='$u'"; 

$query = mysqli_query($connect,$select) or die(mysqli_error($connect)); 

$row = mysqli_num_rows($query); 

$result = mysqli_fetch_assoc($query); 

$title = mysqli_real_escape_string($connect,trim($result['title'])); 

$message = mysqli_real_escape_string($connect,trim($result['message'])); 

while(($result = mysqli_fetch_assoc($query))){ 
echo $title; 
echo '<br/>'; 
echo '<br/>'; 
echo $message; 
} 

?> 

哪里,因为这工作 -

<?php 

echo $title; 

?> 

遗憾地说,但答案工作NONE。任何其他想法?

+3

我们可以看到整个来源吗?看起来上下文可能是一个问题。 – 2011-01-13 21:53:50

回答

1

如果您的mysqli查询返回零行,那么您将永远不会看到任何打印在while循环中的内容。如果没有设置$ title和$ message(因为您希望通过$ result ['title'] & $ result ['message']来引用它们,如果那是数据库中的字段名称),那么您只会看到两个<br />标签在你的网页源代码中。

1

如果while循环条件不成立,那么while循环的内容将永远不会执行。

所以,如果没有什么要从查询中提取,那么您将看不到任何输出。

1

您的代码是否显示任何内容,或完全跳过输出? 如果它完全跳过,那么你的查询返回了0行。 如果它输出<br />,那么你需要检查你的变量。我可能是错的,不知道TE整个代码,但一般在这种情况下,你会像 echo $result['title']而不是echo $title

0

试试这个:

<?php 

$result = mysql_query($query); 
while($row = mysqli_fetch_assoc($result)){ 
    echo $title.'<br/><br/>'.$message; 
} 

?> 
0

如果$ title和$消息从你的MySQL来那么你必须通过mysqli_fetch_assoc返回的$ result数组访问它们。

echo $result['title']; 
echo $result['message']; 
0

此外,如果您使用的mysqli你会做这样的事情:

$mysqli = new mysqli("localhost", "user", "password", "db"); 

if ($result = $mysqli->query($query)) { 

    while ($row = $result->fetch_assoc()) { 
     print $row['title']; 
    } 

    $result->close(); 
} 
0

这是否工作;

<?php 
$select = "select * from messages where user='$u'"; 

$query = mysqli_query($connect,$select) or die(mysqli_error($connect)); 

$row = mysqli_num_rows($query); 

while(($result = mysqli_fetch_assoc($query))){ 
    echo $result['title']; 
    echo '<br/>'; 
    echo '<br/>'; 
    echo $result['message']; 
} 

?> 

基本上我确信,它不是从查询&然后依托,通过以反复打印相同的消息也被越来越结果循环采摘的第一个结果。