PHP如何显示多个数组值

时间:2010-08-30 08:27:06

标签: php mysql

如何显示从数据库中检索的数组值,例如以下数组值。

while($row = mysqli_fetch_array($query)){
    $post_id[] = $row['id'];
    $post_user_id[] = $row['user_id'];
    $post_title[] = $row['title'];
}

输出

<li><a href="' . $post_user_id . 'post.php?id="' . $post_id . '">' . $post_title . '</a></li>
<li><a href="' . $post_user_id . 'post.php?id="' . $post_id . '">' . $post_title . '</a></li>
<li><a href="' . $post_user_id . 'post.php?id="' . $post_id . '">' . $post_title . '</a></li>
<li><a href="' . $post_user_id . 'post.php?id="' . $post_id . '">' . $post_title . '</a></li>
<li><a href="' . $post_user_id . 'post.php?id="' . $post_id . '">' . $post_title . '</a></li>

6 个答案:

答案 0 :(得分:2)

您可以在while循环之外执行以下操作:

for($i=0;$i<count($post_id);$i++) {
    echo '<li><a href="'.$post_user_id[$i].'post.php?id='.$post_id[$i].'">'.$post_title[$i] . '</a></li>';
}

答案 1 :(得分:1)

<?
$data = array();
while($row = mysqli_fetch_array($query)){
  $data[] = $row;
}
?>

输出

<? foreach ($data as $row): ?>
<li>
 <a href="<?=$row['post_user_id']?>post.php?id=<?=$row['post_id']?>">
  <?=$row['post_title']?>
 </a>
</li>
<? endforeach ?>

答案 2 :(得分:0)

while($row = mysqli_fetch_array($query)){
    $post_id = $row['id'];
    $post_user_id = $row['user_id'];
    $post_title = $row['title'];
    echo "<li><a href=\"" . $post_user_id . "post.php?id=" . $post_id . "\">" . $post_title . "</a></li>";
}

但在我的Oppinion中,链接的格式不是很好,你需要为每个用户提供一个[userid] post.php。更好的是:

    echo "<li><a href=\""post.php?userid=\"".$post_user_id."\"&id=". $post_id ."\">" . $post_title . "</a></li>";

所以你的post.php通过点击链接获得用户ID和每个GET的id。

答案 3 :(得分:0)

for ($i=0; $i<sizeof($post_id); $i++) {
   echo '<li><a href="' . $post_user_id[$i] . 'post.php?id=' . $post_id[$i] . '">' 
   . $post_title[$i] . '</a></li>';
}

答案 4 :(得分:0)

不是在多个变量之间拆分数据库记录(一行),而是将它们组合在一个多维数组中通常更好:

$posts = array();

while ($row = mysqli_fetch_array($query)) {
    $posts[] = $row;
}

foreach ($posts as $post) {
    echo $post['id'];
    echo $post['user_id'];
    echo $post['title'];
    ...
}

答案 5 :(得分:0)

更好的方法是

while($row = mysqli_fetch_array($query)){
   echo '<li><a href="' . $row['user_id'] . 'post.php?id="' . $row['id'] . '">' . $row['title'] . '</a></li>';
}

如果您需要相同的输出。但在我看来,这些联系并不是很好。