2

我有以下代码应该选择我数据库中相关表中的所有用户:

$hof = mysql_query("SELECT * FROM users");

$name = array();
$website = array();
$i=0;
while($result = mysql_fetch_array($hof)){
$name[$i] = $result['company']; 
$website[$i] = $result['website'];
}
$i++;

我想在我的脚本的 html 部分(在 php 下方)中回显所有的名称和网站,这将是一个框架大厅。我该怎么办?我不知道数组大小的事实让我望而却步。

通常,如果我知道尺寸,我会这样:

<?php echo $name[1];?>
<?php echo $name[2];?>
//and so on

提前谢谢了。PS 当我首先在 localhost 上对网站的功能进行排序时,我计划转移到 MySQLi。干杯

4

7 回答 7

6

您的$i++;语句应该在 while 循环内

while($result = mysql_fetch_array($hof)){
    $name[$i] = $result['company']; 
    $website[$i] = $result['website'];
    $i++;
}

最好你这样做,

$rows = array();
while($result = mysql_fetch_assoc($hof)){
        $rows[] = $result; 
}

你像这样回应他们,

<?php
$len = count($name);
for($i=0;$i<$len;$i++){
    echo $name[1];
}
?>

对于替代方法,请使用此方法,

<?php
foreach($rows as $row){
    echo $row['name']; // use $row['website'] to echo website.
}
?>
于 2012-12-22T13:41:35.667 回答
3
foreach($name as $key=>$value){
  echo $name[$key];
  echo $website[$key];
}

也不需要带$i++,可以使用以下方式

while($result = mysql_fetch_array($hof)){
  $name[] = $result['company']; 
  $website[] = $result['website'];
}

参见手册中的数组

于 2012-12-22T13:41:10.080 回答
3

首先$i++应该循环内。

要将它们全部输出,您可以使用implode(), 或者foreach.

于 2012-12-22T13:41:21.553 回答
1

首先,将您的数据放入数组

$data = array();
$sql = "SELECT * FROM users";
$res = mysql_query($sql) or trigger_error(mysql_error()."[$sql]");
while($row = mysql_fetch_array($res)){
    $data[] = $row; 
}

然后在您希望的任何地方使用它,例如在模板中:

<ul>
<? foreach($data as $row): ?>
    <li><a href="<?=$row['website']?>"><?=$row['company']?></a></li>
<? endforeach ?>
</ul>
于 2012-12-22T14:01:51.947 回答
0

怎么样:

foreach ($name as $val)
{
    echo $val;
}
于 2012-12-22T13:41:29.197 回答
0

您可以使用 mysql_num_rows() 了解查询返回的结果数

于 2012-12-22T13:41:54.777 回答
0
$arrarySize = mysql_num_rows($hof);
于 2012-12-22T13:52:06.120 回答