我試圖建立的是從數據庫查詢在MySQL數組中的數組。通過該數組循環查找帶strpos的特定字符串。MySQL的PHP陣列問題
當註冊頁面加載,我有一個文件,這個文件的源代碼如下:
mysql_select_db($database_connBlog, $connBlog);
$query_rsBannedDomains = "SELECT * FROM banned_emailproviders";
$rsBannedDomains = mysql_query($query_rsBannedDomains, $connBlog) or die(mysql_error());
$row_rsBannedDomains = mysql_fetch_assoc($rsBannedDomains);
$totalRows_rsBannedDomains = mysql_num_rows($rsBannedDomains);
$bannedArray = array();
do {
array_push($bannedArray, $row_rsBannedDomains['domain_emailprovider']);
}
while ($row_rsBannedDomains = mysql_fetch_assoc($rsBannedDomains));
//print_r($bannedArray);
$emailaddress = $_POST['email_usr'];
foreach($bannedArray as $key => $domain){
if(strpos($emailaddress, $domain) == false){
echo (strpos($emailaddress, $domain));
} else {
header ("Location: http://www.disney.com");
}
}
當寄存器提交頁面,提交自己。包含上面的源代碼,是註冊php文件中的第二行。第一行是數據庫連接的包含。
奇怪的是,當我點擊並重新提交表單時,有時會出現這種情況。
do ...雖然不是循環訪問數據庫結果的好方法,因爲它總是會在循環中至少運行一次,並且有可能查詢將返回0行。改爲使用。 – GordonM
若要添加到GordonM的評論,您應該刪除'$ row_rsBannedDomains = mysql_fetch_assoc($ rsBannedDomains);頂部的第一行。另外''array_push()'在這裏並不是必須的。看起來你可以在'while'循環中執行'$ bannedArray [] = $ row_rsBannedDomains ['domain_emailprovider'];''。 –