0

我有一个脚本可以将值插入数据库,然后完成后将标题传递到页面,在该页面中检查特定列中的空白值并将它们返回到页面上,稍后我将使其可编辑以便可以更新它们。

我遇到的问题是,当我运行查询时,它没有返回具有空白值的单元格。

$sql = "SELECT * FROM `data` WHERE `team`=''";

$result = mysql_query($sql, $conn);
if(!$result) {
    echo "Cannot do query" . "<br/>";
    exit;
}

$row = mysql_fetch_row($result);
$count = $row[0];

$each_results = mysql_fetch_row($result);

for ($i=0; $i<$each_results; $i++) {
    $row = mysql_fetch_assoc ($result);
    echo $row['rep_num'] . " " ;
    echo $row['team'] . " ";
    echo $row['description'] . "</br>";
}

我尝试了 SELECT * FROM data,它返回了所有结果,包括没有团队价值的结果。我在 phpmyadmin 中运行了 SELECT * FROM dataWHERE team='' 查询,它确实返回了我期望的行以及团队行中缺少的单元格数据。所以我猜它底部的 for 循环有问题。

提前感谢您的帮助。

4

2 回答 2

2

$each_result不包含您期望的值;您已从结果集中将一行作为数组提取到其中,并且无法进行类似的比较$i < $each_results)而不是循环,而是使用循环for迭代您的行while

// Don't call fetch here, as it will advance the record pointer
// before you intend to.
//$row = mysql_fetch_row($result);
//$count = $row[0];

//$each_results = mysql_fetch_row($result);

// Replace the for loop with a while loop
while ($row = mysql_fetch_assoc($result)) {
    echo $row['rep_num'] . " " ;
    // Note, team should be blank because you queried team=''
    echo $row['team'] . " ";
    echo $row['description'] . "</br>";
}
于 2012-05-09T14:54:34.937 回答
0

以防万一您有 NULL 和 ot 空白字段,请使用 'IS NULL' 或 'IS NOT NULL' 或 isnull() mysql 函数

于 2012-05-09T14:55:23.333 回答