2012-11-01 35 views
0
<?php 
//wall =================================================== 
if($_POST['submit'] == "submit"){ 
// connect to the database 
include("dbinfo.inc.php"); 

    $client_id = $_POST['client_id']; 
    echo $client_id; 
    $query="select * from messages where client_id='$client_id'"; 
    $result = $mysqli->query($query); 
    $row = $result->fetch_assoc(); 
             while ($row = $result->fetch_object()) 
             { 
               $id = $row->msg_id; 
               $mes = $row->message; 
               $mes = nl2br($mes); 
               $cdate = $row->date_post; 
               $msg ="{$mes} <br> . {$cdate}"; 

//wall =================================================== 
?> 
<li class="bar<?php echo $id; ?>"> 
<div align="left" class="post_box"> 
<span style="padding:10px"><?php echo $msg; ?> </span> 
<span class="delete_button"><a href="#" id="<?php echo $id; ?>" class="delete_update">X</a></span> 
<span class='feed_link'><a href="#" class="comment" id="<?php echo $id; ?>">comment</a></span> 
</div> 
<div id='expand_box'> 
<div id='expand_url'></div> 
</div> 
<div id="fullbox" class="fullbox<?php echo $id; ?>"> 
<div id="commentload<?php echo $id; ?>" > 

</div> 
<div class="comment_box" id="c<?php echo $id; ?>"> 
<form method="post" action="" name="<?php echo $id; ?>"> 
<textarea class="text_area" name="comment_value" id="textarea<?php echo $id; ?>"> 
</textarea><br /> 
<input type="submit" value=" Comment " class="comment_submit" id="<?php echo $id; ?>"/> 
</form> 
</div> 
</div> 
</li> 
<?php         } 
//wall =================================================== 
    $mysqli->close(); 
} 
//wall =================================================== 
?> 

我的脚本应该输出等同于用户输入的所有数据。脚本在数据库输出上跳过1个数据

EX输入CLIENT_ID “2”

查询:

msg_id message date_sent client_id 

1  a  1/1/1   1 
2  b  2/2/2   1 
3  c  3/3/3   1 
4  d  1/2/3   1 
5  e  2/2/2   2  
7  e  2/2/2   2  
8  g  2/2/2   2  
9  f  8/8/8   3 

它将只显示

7  e  2/2/2   2  
    8  g  2/2/2   2 

并跳过非常第一其中一个是

5  e  2/2/2   2 

如果我输入client_id“ 3"

不会有输出,但它应该显示:

9  f  8/8/8   3 

请你检查我的剧本,看看我在做什么错在这里?

回答

3

要调用

$row = $result->fetch_assoc(); 

启动循环的结果之前:

while ($row = $result->fetch_object()) { 
... 
} 

这在结果集跳过第一行(因为你没有做任何事情的影响来自第一次呼叫的$row)。

+0

我应该删除那部分? – telexper

+0

是的,将第一个作业删除到'$ row'。 –

+0

太棒了!感谢工作正常:) 5分钟,直到我接受你的答案 – telexper

0

使用fetch_assoc()或fetch_object()。这里是一个来自PHP手册的例子:

$mysqli = new mysqli("localhost", "my_user", "my_password", "world"); 

/* check connection */ 
if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5"; 

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

    /* fetch associative array */ 
    while ($row = $result->fetch_assoc()) { 
     printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]); 
    } 

    /* free result set */ 
    $result->free(); 
} 

/* close connection */ 
$mysqli->close();