2013-08-29 4 views
1

My $ _POST имя: $ _POST [p_new_1], $ _POST [p_new_2], $ _POST [p_new_3] и т. Д. Зависит от значения $ _POST [число] (выше $ _POST [число], равное 4). Теперь мне нужно добавить, что значение в таблицу с помощью:

mysqli_query($con,"INSERT INTO `tablename` (`Name`) VALUES ('$_POST[p_new_1]')"); 

Но это работает только, если я знаю, что $ _POST [число] = 2; иногда $ _POST [число] не имеет значения или значения больше 2, в общем случае она должна быть:

if($_POST[number]!=NULL) 
for ($i = 1; $i < $_POST[number]; $i++) { 
    mysqli_query($con,"INSERT INTO `table` (`Name`) VALUES ('$_POST['p_new_'.$i]')"); 
} 

Но с помощью этого кода я всегда получил ошибку. Я также пробовал:

if($_POST[number]!=NULL) 
for ($i = 1; $i < $_POST[number]; $i++) { 
    mysqli_query($con,"INSERT INTO `table` (`Name`) VALUES ('$_POST['p_new_$i']')"); 
} 

Но такая же ошибка.

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /test.php on line 18 

Как правильно это написать?

+0

Можете ли вы написать ошибку? – kgd

+0

Да, я добавил к своему оригинальному сообщению. – user1314404

+0

О, моя ошибка ... – kgd

ответ

1

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

if(isset($_POST[number]) and is_numeric($_POST[number])){ 
    for ($i = 1; $i < $_POST[number]; $i++) { 
     $name=isset($_POST['p_new_'.$i]) ? $_POST['p_new_'.$i] : ""; 
     mysqli_query($con,"INSERT INTO table (Name) VALUES ('".$name."')"); 
    } 
} 
+0

Я должен принять этот ответ, хотя мне все еще нужна одиночная кавычка в 'Name' on выше кода. Да, теперь это работает! Спасибо и спасибо всем предложениям членов, все вы рок! – user1314404

0

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

if(($_POST['number']!=NULL) and (is_numeric($_POST['number']))) 
for ($i = 1; $i < $_POST['number']; $i++) 
{ 
    mysqli_query($con,"INSERT INTO `table` (`Name`) VALUES (".$_POST['p_new_'.$i].")"); 
} 
2

Ваших двойные кавычки путают процесс. Измените его на:

if($_POST[number]!=NULL) 
for ($i = 1; $i < $_POST[number]; $i++) { 
    $key = 'p_new_'.$i; 
    mysqli_query($con,"INSERT INTO `table` (`Name`) VALUES ('".$_POST[$key]."')"); 
} 
0

Ну, с моим очень ограниченным знанием, я могу определить один вопрос:

переменными должны быть в двойных кавычках для того, чтобы значения его для передачи в запрос правильно:

".$_POST['p_new_'.$i]." 

Это предотвращает использование переменной как строки.

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