|
|
|
|
foreach ($_POST["cat"] as $val)
{
$query = "INSERT INTO 2cat_catalog (category_id, catalog_id) VALUES ('$val', '$cat_id')";
$req = mysql_query($query) or die("<B>Error ".mysql_errno()." :</B> ".mysql_error()."");
}
|
Это работает, но если есть не один, а три массива, данные которых нужно вставить в эту же базу, как это сделать?
Спасибо. | |
|
|
|
|
|
|
|
для: kis-kis
(25.10.2007 в 15:00)
| | данные, которые в массиве, Вы загоняете через implode в поле типа SET? | |
|
|
|
|
|
|
|
для: ronin
(25.10.2007 в 16:10)
| | Не понял Вас? $_POST["cat"] - это выбранные категории в select multiple | |
|
|
|
|
|
|
|
для: kis-kis
(25.10.2007 в 16:41)
| | если мультипл подразумевается, что может быть выбрано несколько позиций? Тогда по идее, у Вас массив Вы приведите массив, как он выглядит. его, если не ошибаюсь нужно собрать до кучи коммандой '".implode(",",$val)."')" тогда его запихивают в поле типа SET при этом информация ложится как: "1", "2", "5" если вам нужно будет вывести эти данные то вы при запросе используете комманду '".explode(",",$category_id)."' тут на сайте используйте поиск с этими ключевыми словами.
foreach ($_POST["cat"] as $val)
{
$query = "INSERT INTO 2cat_catalog (category_id, catalog_id) VALUES ('.implode(",",$val).', '$cat_id')";
$req = mysql_query($query) or die("<B>Error ".mysql_errno()." :</B> ".mysql_error()."");
}
|
плюс поле category_id в База mySQL должно быть исправлено как SET т.е не int, или varchar | |
|
|
|
|
|
|
|
для: ronin
(25.10.2007 в 16:59)
| | Массива три:
foreach ($_POST["cat"] as $val)
{
$query = "INSERT INTO 2cat_catalog (category_id, catalog_id) VALUES ('.implode(",",$val).', '$cat_id')";
$req = mysql_query($query) or die("<B>Error ".mysql_errno()." :</B> ".mysql_error()."");
}
foreach ($_POST["service"] as $val)
{
$query = "INSERT INTO 2cat_catalog (service_id, catalog_id) VALUES ('.implode(",",$val).', '$cat_id')";
$req = mysql_query($query) or die("<B>Error ".mysql_errno()." :</B> ".mysql_error()."");
}
foreach ($_POST["cuisine"] as $val)
{
$query = "INSERT INTO 2cat_catalog (cuisine_id, catalog_id) VALUES ('.implode(",",$val).', '$cat_id')";
$req = mysql_query($query) or die("<B>Error ".mysql_errno()." :</B> ".mysql_error()."");
}
|
А можно ли это объеденить в один запрос? | |
|
|
|
|
|
|
|
для: kis-kis
(25.10.2007 в 18:07)
| |
$_POST["cat"] =$cat;
$_POST["service"] =$service;
$_POST["cuisine"] =$cuisine;
{
$query = "INSERT INTO 2cat_catalog (category_id, service_id,cuisine_id,catalog_id) VALUES ('.implode(",",$cat).', '.implode(",",$service).','.implode(",",$cuisine).','$cat_id')";
$req = mysql_query($query) or die("<B>Error ".mysql_errno()." :</B> ".mysql_error()."");
}
|
Я бы так делал, но не пробовал:) возможно это, даже сработает:) | |
|
|
|
|
|
|
|
для: ronin
(25.10.2007 в 18:30)
| | Сейчас попробую )) | |
|
|
|
|
|
|
|
для: kis-kis
(25.10.2007 в 18:44)
| | блин невнимателен нужно { } поснимать | |
|
|
|
|
|
|
|
для: ronin
(25.10.2007 в 18:30)
| | Parse error: parse error, unexpected ',' в этой строке
$query = "INSERT INTO 2cat_catalog (category_id, service_id,cuisine_id,catalog_id)
VALUES ('.implode(",",$cat).', '.implode(",",$service).','.implode(",",$cuisine).','$cat_id')";
|
| |
|
|
|
|
|
|
|
для: kis-kis
(25.10.2007 в 19:07)
| | попробуй дабавить кавычки во все пункты, вместо:
сделать так:
я уже ухожу... | |
|
|
|
|
|
|
|
для: ronin
(25.10.2007 в 19:42)
| | Так тоже не работает (( | |
|
|
|
|
|
|
|
для: kis-kis
(25.10.2007 в 20:01)
| | так наверное
<?
$query = "INSERT INTO 2cat_catalog (category_id, service_id,cuisine_id,catalog_id)
VALUES ('" . implode(', ', $cat) . "', " .
$cat_id . "), ('" . implode(', ', $service)
. "', " . $cat_id . "), ('" . implode(',
', $cuisine) . "', " . $cat_id . ") ; ";
| если $cat_id это цифра и тип поля catalog_id (int) | |
|
|
|
|
|
|
|
для: EXP
(26.10.2007 в 00:17)
| |
foreach ($_POST["cat"] as $cat || $_POST["service"] as $service || $_POST["cuisine"] as $cuisine)
{
query...
}
|
если не прокатит ||, тогда попробовать AND. | |
|
|
|
|
|
|
|
для: EXP
(26.10.2007 в 00:17)
| | А вывести потом тогда как?
Допустим $categ = "22,23,10,9,5";
$resultc=mysql_query("SELECT * FROM cat_catalog where id = (explode('","', $categ))") or die("<B>Error ".mysql_errno()." :</B> ".mysql_error()."");
$cat = mysql_fetch_array($resultc);
echo $cat[name];
|
Так не работает... | |
|
|
|
|
|
|
|
для: kis-kis
(26.10.2007 в 11:03)
| | обычно такие данные выводят как массив или для чекбоксов(checkbox) или мультиселект, или радикнопок, это для мультиселекта? | |
|
|
|
|
|
|
|
для: ronin
(26.10.2007 в 11:29)
| | Нет нужно просто вывести название через запятую )) | |
|
|
|
|
|
|
|
для: kis-kis
(26.10.2007 в 11:53)
| | тогда делаете запрос без explode. Просто
$resultc=mysql_query("SELECT * FROM cat_catalog where id = $_POST[cat_id]') or die("<B>Error ".mysql_errno()." :</B> ".mysql_error()."");
$cat = mysql_fetch_array($resultc);
echo $cat[category_id]; //название полей в базе, к которых инфа
echo $cat[service_id];
echo $cat[cuisine_id];
|
$_POST[cat_id] - это, если я понял номер покоторому сортируются данные. | |
|
|
|
|
|
|
|
для: ronin
(26.10.2007 в 12:10)
| | Так выводится только первое, а не все.
Вот например, если $categ = "22,23,10,9,5"; (цифры это идентификаторы категорий), следовательно это массив, состоящий из 5 идентификаторов категорий. Есть таблица с названиями категорий.
Как вывести названия всех категорий через запятую?
Спасибо. | |
|
|
|
|
|
|
|
для: kis-kis
(26.10.2007 в 12:29)
| | если честно, то я не понял:)
1) $categ = "22,23,10,9,5 $categ - это поле в таблице?
2)echo $cat[name]; - это что?
в базе в поле типа SET, данные идут через запятые, если их вывести через запрос, они будут выведенны через запятую, если они хранятся в поле name то 2) и выведет то, что храниться в поле name.
если поле, где храниться инфа categ, тогда echo $cat[categ];
explode нужен для разделения и вывода как массива. | |
|
|
|
|
|
|
|
для: ronin
(26.10.2007 в 12:43)
| | >> 1) $categ = "22,23,10,9,5 $categ - это поле в таблице?
Да, это поле в таблице
>> echo $cat[name]; - это что?
Это название категории, соответсвующее идентификатору (следовательно 22 - это id категории, она имеет название - категория 1, 23 - это id категории, она имеет название - категория 2, ...)
Т.к. $categ состоит из 5 значений, след. нужно вывести 5 названий категорий. Теперь более менее понятно? | |
|
|
|
|
|
|
|
для: kis-kis
(26.10.2007 в 13:57)
| | опять я не понял. а если понял, то если имеется таблица категорий, то создается запись, куда входят поля: 1)номер категории, 2) имя категории.
соответственно если имеются пять номеров:"22,23,10,9,5" то и строчек будет пять. Это не массив!
resultc=mysql_query("SELECT * FROM cat_catalog ") or die("<B>Error ".mysql_errno()." :</B> ".mysql_error()."");
$cat = mysql_fetch_array($resultc);
echo $cat[name] ",";
|
если строчек у Вас пять, тогда все должно вывести.или
| |
|
|
|
|