2015-06-18 3 views
-2

Когда я обрабатываю код ниже, я всегда получаю эту ошибку: «Неизвестный столбец« Массив »в« списке полей »». Может ли кто-нибудь помочь мне в этом? Я новичок в php, поэтому, пожалуйста, медведь со мной. Спасибо заранее.Неизвестный столбец 'Array' в 'списке полей'

//updating conversation members 
function update_cmembers($nc_id,$ids){ 


$r = "DELETE FROM nc_members WHERE nc_id = '$nc_id' "; 

mysql_query($r) or die(mysql_error()); 


$values = array("($nc_id,{$_SESSION['id']},UNIX_TIMESTAMP(),0,1)"); 


foreach($ids as $id){ 

    $id=(int)$id; 

    $values[] = "($nc_id,$id,0,0,0)"; 

} 

$sql = "INSERT INTO nc_members  (nc_id,user_id,nc_last_view,nc_deleted,nc_rank) VALUES " . implode(",",$values); 

mysql_query($sql) or die(mysql_error()); 
} 
+0

Проверьте '$ sql'. Вы получите то, что не так. –

+0

Я использовал этот код (за исключением части удаления), когда создаю новое сообщение, и он работает нормально .. но когда я использую его в этом ... у меня есть эта ошибка .. не могли бы вы объяснить, как я могу отладить мой код? – justMe

+0

возможно $ _SESSION ['id'] - массив? Работает ли инструкция DELETE? Попробуйте var_dump или эхо-файл $ sql перед тем, как запросить его. – codeneuss

ответ

0

изменения $values = array("($nc_id,{$_SESSION['id']},UNIX_TIMESTAMP(),0,1)"); к этому:

`$ = значения массива ($ nc_id, $ _ SESSION [ 'ID'], UNIX_TIMESTAMP(), 0,1));

и изменить

$sql = "INSERT INTO nc_members (nc_id,user_id,nc_last_view,nc_deleted,nc_rank) VALUES " . implode(",",$values); к:

$sql = "INSERT INTO nc_members (nc_id,user_id,nc_last_view,nc_deleted,nc_rank) VALUES (" . implode(',',$values).")"

+0

У меня пустая страница – justMe

+0

нет ошибок? – Faradox

+0

проверить свою таблицу – Faradox

1

Он бросает ошибку, потому что вы передаете ассоциативный массив взрываться функции. Таким образом, функция implode распределяет их по нескольким массивам и передает их в качестве значений. Удалите этот код между $ values ​​array и оператором sql.

foreach($ids as $id){ 

    $id=(int)$id; 
    $values[] = "($nc_id,$id,0,0,0)"; 

} 

Как этот код преобразует массив $ value в ассоциативный массив.

+0

дает такую ​​же ошибку – justMe

+0

Попробуйте вот так: $ values ​​= array ("$ nc_id, {$ _ SESSION ['id']}, UNIX_TIMESTAMP(), 0,1"); $ sql = "INSERT INTO nc_members (nc_id, user_id, nc_last_view, nc_deleted, nc_rank) VALUES (". Implode (",", $ values). ")"; –

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