问题
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