私が直面している問題は、mysql_num_rows の出力がコード全体で 1 になることですが、if ステートメントで wil 0 と一致すると true が返され、コードが実行されます。そのため、 $license は実際の値の代わりに.......を返します。
これらを使用して自分で問題をデバッグしようとしました。
- print_r を試して、データが存在するかどうかを確認しました。- はい。
- 最初の部分で $license をエコーしようとしました - 正しい値を返します。
- mysql_num_rows の値を確認しようとしました - 1 を返します。
- if ステートメントで 0 と一致させる - 値が 1 であるため false であるべき場合に true を返します。
これについて何か助けはありますか?
$check = mysql_query("SELECT * FROM licenses WHERE email='$email'") or die(mysql_error
());
if (mysql_num_rows($check) > 0)
{
while ($data = mysql_fetch_array($check))
{
print_r($data); // for test
$name = $data['name'];
$license = $data['pid'];
echo $license; // test print 1
$comments = $data['comments'];
}
if ($license == "Sgsmorgan")
$license = "EWP Discounted Basic (Simpleleveraging)";
}
$count = mysql_num_rows($check); // for test
echo $count; // returns 1.
if (mysql_num_rows($check) == 0)
$name = "";
$license = "...........";
echo $license;// test print 2
$comments = "Email doesnt exist in the database";