-2

如何从下一个<?php?>标签中的 while(mysql_fetch_array($query)) 函数调用访问 PHP 变量以获取单独的 HTML?

<body>
<?php
    $sql="select * from $table order by id desc";
    $query=mysql_query($sql) or die(mysql_error());
    while($result=mysql_fetch_array($query)){
    $id=$result[id];
    $subject=$result[subject];
    $subjectpic=$result[subjectpic];
    $content=$result[content];

    //global $id, $subject, $subjectpic, $content; ?
    }
?>
<div class="subject">
<?php
    print"$subject";
?>
</div>
<div class="subjectpic">
<?php
    print"$subjectpic";
?>
</div>
</body>

非常感谢!

4

3 回答 3

3

只需将花括号向下移动

    //global $id, $subject, $subjectpic, $content; ?
?>
<div class="subject">
<?php
    print"$subject";
?>
</div>
<div class="subjectpic">
<?php
    print"$subjectpic";
?>
</div>
<?php
    }
?>
</body>
于 2012-11-10T15:48:07.980 回答
2

实际上,您可以简单地将右大括号放在更下方...

<body>
<?php
    $sql="select * from $table order by id desc";
    $query=mysql_query($sql) or die(mysql_error());
    while($result=mysql_fetch_array($query)){
      $id=$result['id'];
      $content=$result['content'];
?>
  <div class="subject"><?php print $result['subject']; ?></div>
  <div class="subjectpic"><?php print $result['subjectpic']; ?></div>
<?php } ?>
</body>

但是,此版本更具可读性:

<body>
<?php
    $sql="select * from $table order by id desc";
    $query=mysql_query($sql) or die(mysql_error());
    while($result=mysql_fetch_array($query)){
      $id=$result['id'];
      $content=$result['content'];
      sprintf('<div class="subject">%s</div>'."\n",    $result['subject']);
      sprintf('<div class="subjectpic">%s</div>'."\n", $result['subjectpic']);
    }
?>
</body>
于 2012-11-10T15:46:42.183 回答
0

$subject其他变量仅打印最后一行的值。如果您计划在遍历数组时迭代变量的值,请考虑在while块本身内打印/回显它们。

于 2012-11-10T15:40:41.990 回答