Когда именно назначаются переменные PHP-MySQL? - PullRequest
2 голосов
/ 18 февраля 2010

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

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

$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 () ) ;
          }
    }

1 Ответ

0 голосов
/ 18 февраля 2010

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

Пример:

$sql = "INSERT INTO sap_id_select(select_id) VALUES('%s')";

if (isset($_POST["checkbox"])) {
  foreach ($_POST["checkbox"] as $cSelected_id) {
    mysql_query ( sprintf($sql, $cSelected_id) ) or ("Error: ".mysql_error());
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...