PHP Mysql WHILE loop remove the last separator

a 夏天 提交于 2019-12-12 05:49:50

问题


I have this code that get the data from mysql database.

<?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:
?>

How can I remove the last separator of : using while?


回答1:


$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);

If you do it like this its a bit more robust, it doens't matter if you change your query right now... It will just output your fields in your wanted format




回答2:


$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++;
}



回答3:


<?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);
?>



回答4:


    $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++;
    }


来源:https://stackoverflow.com/questions/11469451/php-mysql-while-loop-remove-the-last-separator

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!