[英]mysql_num_rows if count is greater than 1
我正在使用Mysql_num_rows來獲取數據(他們的電子郵件和IP),如果所說的用戶已經輸入了數據,它將被拒絕,但是如果沒有,則它會成功。
但是,如果我更改IP仍然可以成功,什么時候不應該,因為即時通訊仍在使用相同的電子郵件? 它不會同時檢查電子郵件和IP。 Thankyew提前'-'
$query = "SELECT * FROM tbl_1 WHERE Email='$Email' AND IP='$ip'";
$Result = mysql_query($query) or die ('unable to run: ' .mysql_error());
$count = mysql_num_rows($Result);
if($count==1)
{
echo 'You have already entered this competition!';
}
else {
echo 'success';
}
您的代碼包含WHERE Email='$Email' AND IP='$ip'";
但是您in a comment
寫道:
““ $ Email = $ _ POST ['email'];來自提交表單,而IP來自代碼:$ IP = $ _SERVER [” REMOTE_ADDR“];位於此腳本頁面的頂部”
您正在使用$IP = $_SERVER["REMOTE_ADDR"];
您應該在哪里使用
$ip = $_SERVER["REMOTE_ADDR"];
或WHERE Email='$Email' AND IP='$IP'";
$IP
和$ip
是不同的東西,它們是“完全兩種不同的動物” -
變量區分大小寫。
旁注:您可以使用OR
代替AND
,如果有人嘗試使用其他電子郵件但具有相同的IP進行注冊(反之亦然),則他們將無法這樣做。
腳注:
mysql_*
函數棄用通知:
http://www.php.net/manual/en/intro.mysql.php
自PHP 5.5.0起不推薦使用該擴展,不建議編寫新代碼,因為將來會刪除該擴展。 相反,應使用mysqli或PDO_MySQL擴展名。 另請參見MySQL API概述,以獲取選擇MySQL API時的更多幫助。
這些功能使您可以訪問MySQL數據庫服務器。 有關MySQL的更多信息,請參見» http://www.mysql.com/ 。
可以在» http://dev.mysql.com/doc/中找到MySQL的文檔。
你可以這樣嘗試,有點不同
$query = "SELECT COUNT(*) as count Email, IP FROM tbl_1 WHERE Email='$Email' AND IP='$ip'";
$Result = mysql_query($query);
if($Result){
$row = mysql_fetch_assoc($Result);
if((int)$row['count'] > 0)
{
echo 'You have already entered this competition!\n';
echo $row['Email'];
echo $row['IP'];
}
else {
echo 'success';
}
}else{
die ('unable to run: ' .mysql_error());
}
首先,您應該對查詢中使用的變量使用mysql_fetch_assoc()
檢查列名是否正確編寫,您應該這樣做:
$query = "SELECT * FROM tbl_1 WHERE Email='$Email' AND IP='$ip'";
$Result = mysql_query($query) or die ('unable to run: ' .mysql_error());
if(mysql_num_rows($Result))
{
echo 'You have already entered this competition!';
}
else {
echo 'success';
}
因為可能您在mysql中用此電子郵件和ip記錄了1條以上的記錄,所以表示成功
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.