2014-01-11 2 views
0

Я получаю ошибку * У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с «[0]» в строке 1 * при попытке обновления и отправки по электронной почте.Ошибка синтаксиса массива PHP

$updatelist = explode(",",$Limited); 
print_r($updatelist); // echos Array ([0] => [email protected] [1] => [email protected] [2] =>) 

$totalupdates = count($updatelist)-1; 
for ($y = 0; $y < $totalupdates; $y++) 
{ 
    $updatemail = "UPDATE tblusers SET date= '$date' WHERE Email = 'updatelist[$y]'"; 
    $updatefree = mysql_query($updatemail); 

    echo $updatemail; 

} 

Что не так с $ updatelist [$ y]? Должен ли он перебирать $ updatelist [0] в $ updatelist [1]?

ответ

1

Я думаю, что проблема здесь:

$updatemail = "UPDATE tblusers SET date= '$date' WHERE Email = 'updatelist[$y]'"; 

Попробуйте это:

$updatemail = "UPDATE tblusers SET date = '$date' WHERE Email = '$updatelist[$y]'"; 
+0

О, спасибо! Я смотрел на это на мгновение, но я не понял, что пропустил знак «$». – Sarah

+0

Без проблем! Те, кто уверен, могут подкрасться к вам, если вы не будете осторожны. – DopeGhoti

3

изменение $updatelist[$y] вместо updatelist[$y]

-1

Try:

$updatemail = "UPDATE tblusers SET date= '".$date."' WHERE Email = '".$updatelist[$y]."'"; 
+0

Сначала я подумал, что это тоже так, но потом понял, что одиночные кавычки внутри строк с двойными кавычками в PHP не являются особыми символами. Затем я увидел отсутствующий '$'. (: – DopeGhoti

0

Попробуйте это код:

$updatelist = explode(",",$Limited); 
print_r($updatelist); // echos Array ([0] => [email protected] [1] => [email protected] [2] =>) 
$totalupdates = count($updatelist)-1; 
foreach ($updateList as $key=>$val) 
{ 
    $updatemail = "UPDATE tblusers SET date= '$date' WHERE Email = '".$val."'"; 
    $updatefree = mysql_query($updatemail); 
} 
echo $updatemail; 
+0

попробуйте использовать цикл foreach, который даст вам одно значение – Nilesh

Смежные вопросы