处理未知大小的PHP数组

时间:2012-12-22 13:39:12

标签: php html

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

$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

非常感谢提前。附:当我首先在localhost上排序网站的功能时,我打算转到MySQLi。干杯

7 个答案:

答案 0 :(得分:5)

你的$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.
}
?>

答案 1 :(得分: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'];
}

请参阅array in manual

答案 2 :(得分:3)

首先,$i++应该循环中。

要全部输出,您可以使用implode(),也可以使用foreach

答案 3 :(得分: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>

答案 4 :(得分:0)

怎么样:

foreach ($name as $val)
{
    echo $val;
}

答案 5 :(得分:0)

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

答案 6 :(得分:0)

$arrarySize = mysql_num_rows($hof);