2010-02-18 2 views
2

[Статус: учащийся] Используя флажки, пользователь выбирает строки из отображаемой таблицы HTML. Затем я хочу вставить дату и уникальный идентификатор строки («select_id») выбранных («отмеченных») строк в другую таблицу. Может быть, я вне базы, но мне кажется, что первый блок кода не работает. Второй блок кода действительно работает. Если я прав, кажется, что имеет значение, где выполняется оператор SQL. ЗАЧЕМ? Я имею в виду, что никакие назначения переменных не выполняются до тех пор, пока $ sql не будет вызвана функцией mysql_query(), правильно?Когда точно заданы переменные PHP-MySQL?

(... Если я ошибаюсь, фигу, это просто обычный вечер дома.)

$sql = "INSERT INTO sap_id_select ( select_date 
            , select_id) 
     VALUES ( CURRENT_DATE() 
       , '{$cSelected_id}') 
     " ; 

if (isset ($_POST [ checkbox])) 
    { 
     foreach ($_POST [ checkbox ] as $cSelected_id) 
     { 
      mysql_query ($sql) or ("Error: " . mysql_error()) ; 
     } 
    } 

================= ===============

if (isset ($_POST [ checkbox])) 
    { 
     foreach ($_POST [ checkbox ] as $cSelected_id) 
      { 
      $sql = "INSERT INTO sap_id_select ( select_date 
               , select_id) 
        VALUES ( CURRENT_DATE() 
          , '{$cSelected_id}') 
        " ; 

      mysql_query ($sql) or ("Error: " . mysql_error()) ; 
      } 
    } 

ответ

0

в одном примере, запрос предполагая существование переменной, которая не существует. Если вы хотите, вы могли бы parameterize the query, и добавить значения в foreach, но вы не можете сделать это, как вы пытаетесь в примере 1.

Пример:

+0

Спасибо, Johathan. Если вы побалуете меня, почему не является оператором $ sql «связкой текста» до его использования функцией mysql_query()? [IOW, если я правильно вас понимаю, присваивание {$ cSelected_id} выполняется, как только синтаксический анализ $ sql обрабатывается, и НЕ дождаться, пока он будет введен в действие mysql_query().] – dave

+0

Я считаю, что это так , Дэйв. – Sampson

+0

Ну, да! Просто, когда я думал, что узнал что-то. – dave

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