在php mysql中的while语句外部回显多个字段

在php mysql中的while语句外部回显多个字段,php,mysql,Php,Mysql,对不起,如果你看起来很傻,因为我是初学者 我正在比较id并显示数据 预期产出 名称1名称2名称3 代码。 $cout = mysql_query("SELECT * FROM student where parent_id='$update_id' ",$link); while($cput = mysql_fetch_array($cout)){ echo $cput['s_name']; } 但是,我想在循环时在外部回显,因此我尝试了以下操作,但它只输出最后一个值,即Name3

对不起,如果你看起来很傻,因为我是初学者

我正在比较id并显示数据

预期产出

名称1名称2名称3

代码。

$cout = mysql_query("SELECT * FROM student where parent_id='$update_id' ",$link);
while($cput = mysql_fetch_array($cout)){
  echo $cput['s_name'];   
}
但是,我想在循环时在
外部
回显
,因此我尝试了以下操作,但它只输出最后一个值,即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;

我可以理解,
循环
将在while循环之后终止,因此它不会执行所需的操作。但是,我认为可能有一个解决办法。任何人都可以在这里帮我

定义一个变量,使名称以空格分隔($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;

定义一个变量,使名称以空格分隔($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;

在使用串联变量时,请注意最终将输出的尾随空间。或者想象一下,您想用逗号分隔名称。上述代码(带逗号)将输出:

$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*
另一种方法是在数组中捕获输出。这将允许您选择您喜欢的任何分隔符。考虑以下事项:

$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\u query(“选择*来自学生,其中家长的\u id='$update\u id'”,$link);
$sname=[];
而($cput=mysql\u fetch\u数组($cout)){
$sname[]=$cput['s_name'];
}
回声内爆(“”,$sname);//名称1名称2名称3
回声内爆(',',$sname);//名字1,名字2,名字3
回声内爆(“
,$sname);//名称1
名称2
名称3 //等等。
更新

$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>';
$cout=mysql\u query(“选择*来自学生,其中家长的\u id='$update\u id'”,$link);
回声';
而($cput=mysql\u fetch\u数组($cout)){
回显'.$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; // Name1, Name2, Name3, // note trailing (unwanted) comma with *space*
另一种方法是在数组中捕获输出。这将允许您选择您喜欢的任何分隔符。考虑以下事项:

$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\u query(“选择*来自学生,其中家长的\u id='$update\u id'”,$link);
$sname=[];
而($cput=mysql\u fetch\u数组($cout)){
$sname[]=$cput['s_name'];
}
回声内爆(“”,$sname);//名称1名称2名称3
回声内爆(',',$sname);//名字1,名字2,名字3
回声内爆(“
,$sname);//名称1
名称2
名称3 //等等。
更新

$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>';
$cout=mysql\u query(“选择*来自学生,其中家长的\u id='$update\u id'”,$link);
回声';
而($cput=mysql\u fetch\u数组($cout)){
回显'.$cput['s_name'].';
}
回声';

使用连接运算符进行追加,如
$sname.=$cput['s_name']请。已在PHP7中删除。了解使用PDO的声明,并考虑使用。UUCHHA工作,非常感谢,欢迎你。很高兴它对你有用。但请认真对待@JayBlanchard注释。使用连接运算符进行附加,如
$sname.=$cput['s_name']请。已在PHP7中删除。了解使用PDO的声明,并考虑使用。UUCHHA工作,非常感谢,欢迎你。很高兴它对你有用。但是请认真对待@JayBlanchard的评论。这个答案非常有用,非常感谢。我从你的回答中得到了一些想法。感谢Sagreed,最好的方法是不必关心到底要做什么,也不必担心什么时候可以将这些项目添加到阵列中,然后再将其内爆。把一些愚蠢的小细节留给那些关心的专业函数,但不要把这些东西浪费在你的通用代码上。@Marcus你能指导我如何内爆选择吗box@RajaGopalinfrade()不是使用包装的最佳情况。你希望完成什么?请参阅上面的更新。这个答案非常有用,非常感谢。我从你的回答中得到了一些想法。感谢Sagreed,最好的方法是不必关心到底要做什么,也不必担心什么时候可以将这些项目添加到阵列中,然后再将其内爆。把一些愚蠢的小细节留给那些关心的专业函数,但不要把这些东西浪费在你的通用代码上。@Marcus你能指导我如何内爆选择吗box@RajaGopalinfrade()不是使用包装的最佳情况。你希望完成什么?见上面的更新。