Передача параметров по ссылке: Get Cookies

Статус
В этой теме нельзя размещать новые ответы.
Спасибо, вроде разобрался.
Создал поле в Mysql и вставляю куки
pid=19877&kw=keyword&mt=b&ad=2465444.

Как сделать так, чтобы куки вставлялся в 3 поля.
К примеру: создаем 3 поля в базе(pid,kw,ad) и чтобы в эти поля вставлялись значения(19877,keyword,2465444)
PHP:
<?php

parse_str($_COOKIE['param'], $param);

$sql = 'INSERT INTO table (' . implode(',', array_keys($param)) . ') VALUES (' . implode(',', array_values($param)) . ')';

mysql_query($sql);

?>

PS в твоём примере 4-е параметра.
 
Создал 4 поля (pid,kw,mt,ad)
Для проверки, создал поле (param)

Данные в поле (param) вставляются одной строкой (pid=19877&kw=keyword&mt=b&ad=2465444.)

А поля (pid,kw,mt,ad) пустые. В чем может быть проблема?

PHP:
<?php
parse_str($_COOKIE['param'], $param);
$sql = 'INSERT INTO table (' . implode(',', array_keys($param)) . ') VALUES (' . implode(',', array_values($param)) . ')';
mysql_query($sql);
?>
 
на проблему укажет запрос
сохрани его или выведи на экран,
увидишь если переменные пусты
нет - выполни его руками, увидишь есть ли ошибки

Из очевидного - implode кавычки не поставит для строки, просто дает лист через запятую
будет так VALUES (19877, keyword, b, 2465444)
а надо VALUES (19877, 'keyword', 'b', 2465444)
 
implode кавычки не поставит для строки, просто дает лист через запятую
писал на скорую руку, да и не решение это, а пример.
Какие сложности добавить кавычки к implode?
 
Поля в таблице customer (FirstName, LastName, pid, kw, mt, ad)
Человек по ссыле (domain.com?pid=19877&kw=keyword&mt=b&ad=2465444) переходит на сайт(mydomain.com). Параметры (pid=19877&kw=keyword&mt=b&ad=2465444) сохраняются в куки.
Далее он идет на страницу с формой и заполняет ее.
Все данные втавляются сохраняются в базу.

Помогите разобраться в проблеме.
Проблема в следуюшем:
Когда заходим прямо на сайт (mydomain.com), затем на страницу с формой и заполняет ее.

Данные не сохраняются и выводиться ошибка:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') VALUES('111','222','')' at line 1
Сам запрос:


PHP:
parse_str($_COOKIE['param'], $param);
mysql_query("INSERT INTO table (FirstName,LastName,". implode(", ", array_keys($param)) .") 
 VALUES('$_REQUEST[FirstName]','$_REQUEST[LastName]','" . implode("','", array_values($param)) ."')") or die("Cannot save : " . mysql_error());
 
Так если человек рпишёл напрямую то куки у него не будет, соответственно и запрос надо строить с учётом этого.
PHP:
mysql_query("INSERT INTO table (FirstName,LastName) 
 VALUES('$_REQUEST[FirstName]','$_REQUEST[LastName]')") or die("Cannot save : " . mysql_error());
 
Получается нужно сделать 2 запроса?
 
Нет.
Если есть печенька, выполняешь один запрос, нет печеньки - другой.
 
Проблема решена, за что собственно спасибо.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху