很抱歉,因为我是初学者,所以看起来很傻。
我正在比较id和显示数据。
预期输出
Name1 Name2 Name3
代码。
$cout = mysql_query("SELECT * FROM student where parent_id='$update_id' ",$link);
while($cput = mysql_fetch_array($cout)){
echo $cput['s_name'];
}
但是,我希望在echo
之外while loop
,所以我尝试了以下内容,但它仅输出最后一个值,即Name3
$cout = mysql_query("SELECT * FROM student where parent_id='$update_id' ",$link);
while($cput = mysql_fetch_array($cout)){
$sname = $cput['s_name'];
}
echo $sname;
我可以理解loop
将在while循环之后终止,因此它不会执行所需的操作。但是,我认为可能有一个解决方法。任何人都可以帮助我。
答案 0 :(得分:3)
使用连接变量工作时,请注意最终将输出的尾随空间。或者想象你想用逗号分隔名字。上述代码 - 用逗号 - 输出:
$cout = mysql_query("SELECT * FROM student where parent_id='$update_id' ",$link);
$sname = '';
while($cput = mysql_fetch_array($cout)){
$sname .= $cput['s_name'] . ', ';
}
echo $sname; // Name1, Name2, Name3, // note trailing (unwanted) comma with *space*
另一种方法是捕获数组中的输出。这将允许你然后implode()无论你喜欢哪个分界符。请考虑以下事项:
$cout = mysql_query("SELECT * FROM student where parent_id='$update_id' ",$link);
$sname = [];
while($cput = mysql_fetch_array($cout)){
$sname[] = $cput['s_name'];
}
echo implode(' ', $sname); // Name1 Name2 Name3
echo implode(', ', $sname); // Name1, Name2, Name3
echo implode('<br/>', $sname); // Name1<br/>Name2<br/>Name3
// etc.
<强>更新强>
$cout = mysql_query("SELECT * FROM student where parent_id='$update_id' ",$link);
echo '<select name="mySelectBox">';
while($cput = mysql_fetch_array($cout)){
echo '<option value="Some Value">' . $cput['s_name'] . '</option>';
}
echo '</select>';
答案 1 :(得分:2)
定义一个变量以保持名称与空格分开($ sname)然后在每次迭代中连接s_name值,如$ sname。= $ cput ['s_name']。 '';
所以你的代码就像......
$cout = mysql_query("SELECT * FROM student where parent_id='$update_id' ",$link);
$sname = '';
while($cput = mysql_fetch_array($cout)){
$sname .= $cput['s_name'] . ' ';
}
echo $sname;