2015-08-07 5 views
-2

Я добавляю несколько языков к своему производителю CMS. Я пытаюсь иметь несколько названий статей, основанных на идентификаторе POSTed Language: [language_id]. $title_[$lid] должен установить в поле DB a_title_[$lid]. Я не думаю, что правильно использую a_title_[$lid]. Я был бы очень благодарен за любую быструю помощь. Я застрял в воде и под пистолетом.Правильное использование массивных скобок

$aid    = trim(cleanQuery($_POST[article_id])); 
$lid    = trim(cleanQuery($_POST[language_id]));  
$title_[$lid]  = trim(cleanQuery($_POST[title_][$lid])); 

mysql_query("UPDATE articles SET a_title_[$lid] ='$title_[$lid]' WHERE aid='$aid'"); 
+1

'a_title _ [$ крышка]' - имя поля !!!! –

+0

См. Http://php.net/manual/en/language.types.array.php (цитирование буквенных ключей) и http://php.net/manual/en/language.types.string.php#language.types .string.syntax.double (интерполяция с '{}' фигурным синтаксисом). Также скорее ограничьте компост 'cleanQuery()' и прочитайте [параметризация] (http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php). – mario

+0

Спасибо b0s3. Я понимаю, что a_title _ [$ lid] неверен. Есть ли лучший способ добавить переменную $ lid в a_title_? Я знаю, что я просто прошу исправить ситуацию, и должен делать больше об этом, но когда я говорю, что я под пистолетом, я действительно под ружьем. Я сделаю домашнее задание, когда это препятствие будет пересечено. Клянусь. Я всегда делаю. – Stipko

ответ

0

Я предполагаю, что вы не хотите использовать массивы, а имена динамических переменных. Поэтому, если вы хотите иметь переменные $ title_1, $ title_2, $ title_3. Вы должны использовать {} вроде:

${'title_' . $lid} = trim(cleanQuery($_POST['title_'][$lid])); // or maybe trim(cleanQuery($_POST['title_' . $lid])); 

И ваш запрос должен выглядеть следующим образом:

mysql_query("UPDATE articles SET a_title_$lid ='${'title_' . $lid}' WHERE aid='$aid'"); 
+0

Бинго. Спасибо друг! (теперь на кофе, затем изучая мое руководство по PHP/Array). – Stipko

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