php循环从一个表然后从另一个表循环

时间:2012-10-17 08:14:07

标签: php while-loop

我试过搜索,但没有找到我的问题的好答案。我有一个循环的代码:

<?php
$i=0;
while ($i < $num) {

$f0=mysql_result($sql,$i,"id");
$f1=mysql_result($sql,$i,"title");
$f2=mysql_result($sql,$i,"post");
?>

<p><?php echo $f1; ?></p>
<p><?php echo $f2; ?></p>
<p>Categories:</p>

<?php
$i++;
}
?>

<?php
$i=0;
while ($i < $num1) {
$f3=mysql_result($sql1,$i,"category");
?>

<?php echo $f3; ?>

<a href="edit.php?id=<?php echo $f0; ?>"><button>Edit</button></a>

<?php
$i++;
}
?>

问题是它只会循环到<p>Categories</p>。它不循环类别并编辑作为$f3变量和编辑按钮的部分。 categories表是一个单独的表,所以我设置了一个不同于posts表的查询($sql1)。如何将这些部分包含在循环中,以便为每个帖子显示?我试着将$i++部分移到底部,但这只是无限地向我展示了相同的帖子。谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

嵌入式循环

<?php
  $i=0;
  while ($i < $num) {

    $f0=mysql_result($sql,$i,"id");
    $f1=mysql_result($sql,$i,"title");
    $f2=mysql_result($sql,$i,"post");
?>

    <p><?php echo $f1; ?></p>
    <p><?php echo $f2; ?></p>
    <p>Categories:</p>

<?php
    $j=0;
    while ($j < $num1) {
      $f3=mysql_result($sql1,$j,"category");
      echo $f3; 
      $j++;
}
?>

<a href="edit.php?id=<?php echo $f0; ?>"><button>Edit</button></a>

<?php
$i++;
}
?>

答案 1 :(得分:0)

Udan的答案是正确的,但由于某种原因,并没有为每个帖子循环我的类别。我决定使用不同的循环并使其正常工作。如果其他人有同样的问题,请在此处发布。

echo "<h2>Posts</h2>";
$sql = mysql_query("SELECT id, title, post FROM posts") or die(mysql_error());
while ($test = mysql_fetch_array($sql)) {?>
<table><tr><td><input type="hidden" name="id" value="<?php echo $test['id']; ?>" /></td></tr>
<tr><td><?php echo $test['title']; ?></td></tr>
<tr><td><?php echo nl2br($test['post']); ?></td></tr></table>
<?php
echo "Categories:";
$sql1 = mysql_query("SELECT categories.* FROM categories INNER JOIN post_category ON categories.id=post_category.cat WHERE post_category.post='".$test['id']."'") or die(mysql_error());
while ($test1 = mysql_fetch_array($sql1)) {?>
<table><tr><td><?php echo $test1['category']; ?></td></tr></table>
<?php
}
?>
<a href="edit.php?id=<?php echo $test['id']; ?>"><button>Edit</button></a>
<?php
}
?>