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 や空白のフィールドがある場合に備えて、'IS NULL' または 'IS NOT NULL' または isnull() mysql 関数を使用してください。

于 2012-05-09T14:55:23.333 に答える