0

mysqlデータベースからデータを取得するこのコードがあります。

<?php
$sql = mysql_query( "SELECT * FROM users WHERE name = $name" );
while ( $row = mysql_fetch_array( $sql ) ) {
 echo $row[id] . '|';
 echo $row[name] . '|';
 echo $row[add] . ':';
}
OUTPUT : 12|jonathan|philippines:14|John|england:
?>

:whileを使用する最後のセパレータを削除するにはどうすればよい ですか?

4

4 に答える 4

2
$sql = mysql_query( "SELECT `id`, `name`, `add` FROM users WHERE name = $name" ); 
$data = array();
while ( $row = mysql_fetch_array( $sql, MYSQL_NUM ) ) 
{  
  $data[] = implode('|', $row);
} 
echo implode(':', $data);

このようにすると、もう少し堅牢になります。今すぐクエリを変更しても問題ありません...必要な形式でフィールドを出力するだけです

于 2012-07-13T11:26:23.493 に答える
1
$sql = mysql_query( "SELECT * FROM users WHERE name = $name" );
$counter = 0;
while ( $row = mysql_fetch_array( $sql ) ) {

   if ($counter > 0) {
       echo ":";
   }
   echo $row[id] . '|' . $row[name] . '|' . $row[add];
   $counter++;
}
于 2012-07-13T11:20:20.550 に答える
0
<?php
$out = '';
$sql = mysql_query( "SELECT * FROM users WHERE name = $name" );
while ( $row = mysql_fetch_array( $sql ) ) {
 $out.=$row[id] . '|';
 $out.=$row[name] . '|';
 $out.=$row[add] . ':';
}
echo substr($out,0,-1);
?>
于 2012-07-13T11:21:20.383 に答える
0
    $sql = mysql_query( "SELECT * FROM users WHERE name = $name" );
    $number = mysql_num_rows($sql);
    $i = 1;
       while ($row = mysql_fetch_assoc($sql)) {
             echo $row[id] . '|';
             echo $row[name] . '|';
             echo $row[add] ;

       if($i < $number) {
           echo ':';
        }
       $i++;
    }
于 2012-07-13T11:21:23.790 に答える