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の下)にあるすべての名前とWebサイトをエコーアウトしたいと思います。これは、ある種のフレームのホールになります。どうすればいいですか?配列のサイズがわからないという事実は私を思いとどまらせます。

通常、私がサイズを知っていれば、私は次のようになります:

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

よろしくお願いします。PSローカルホストで最初にWebサイトの機能をソートしたら、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 に答える