Php 使数组显示所有结果
绝对是新手。我有一个简单的问题:Php 使数组显示所有结果,php,mysql,Php,Mysql,绝对是新手。我有一个简单的问题: $result = mysql_query("SELECT * FROM evalucion WHERE username = '$empleado'") or die(mysql_error()); $row = mysql_fetch_array( $result ); if ( $row['relacion'] == 'Team') { while ($row = mysql_fetch_array( $result)) {
$result = mysql_query("SELECT * FROM evalucion WHERE username = '$empleado'") or die(mysql_error());
$row = mysql_fetch_array( $result );
if ( $row['relacion'] == 'Team') {
while ($row = mysql_fetch_array( $result)) {
...
}
}
问题是当我这样做时,数组显示的结果就少了一个。还有其他方法吗?发生这种情况是因为只有一个值通过
if($row['relacion']='Team')
进行检查,并且当if
条件失败时,控件将永远不会返回,而将从SELECT
查询中提取剩余数据
要过滤掉所有值,首先需要遍历所有值,然后检查if
条件
要实现这一点,只需交换现有代码,如下所示:
while($row = mysql_fetch_array( $result ) ) { //fetch value first
if ( $row['relacion'] == 'Team') { //check condition
//if condition true
}
}//while ends
如果您想保持相同的结构(并且如果您有充分的理由这样做),请使用do-while
而不是简单的while
)
您只需修改sql即可避免所有问题:
"SELECT * FROM evalucion WHERE username = '$empleado' AND relacion = 'Team'"
在循环内使用if
$result = mysql_query("SELECT * FROM evalucion WHERE username = '$empleado'") or die(mysql_error());
while($row = mysql_fetch_array( $result ) ) { if ( $row['relacion'] == 'Team') {
这取决于您尝试执行的操作,但您可以使用mysql\u data\u seek()
将数组指针重置回起始位置
你为什么要做两次取回?谢谢,这就成功了。我不敢相信这有多简单。
$result = mysql_query("SELECT * FROM evalucion WHERE username = '$empleado'") or die(mysql_error());
while($row = mysql_fetch_array( $result ) ) { if ( $row['relacion'] == 'Team') {
$result = mysql_query("SELECT * FROM evalucion WHERE username = '$empleado'") or die(mysql_error());
$new_arr = array();
while($row = mysql_fetch_array( $result ) )
{
if ( $row['relacion'] == 'Team')
{
// do whatever you want;
}
}
$result = mysql_query("SELECT * FROM evalucion WHERE username = '$empleado'") or die(mysql_error());
$row = mysql_fetch_array($result);
// Internal pointer has now been moved on +1 when you
// called mysql_fetch_array() above, so your next loop through
// the $result will start from the second row.
// So reset it to the beginning before the next while loop.
mysql_data_seek($result, 1);
if ($row['relacion'] == 'Team') {
while($row = mysql_fetch_array($result)) {
...