[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: PHP+Mysql+checkbox
Maxxis
привет phpforum !
Вопрос состоит вот в чем :
К примеру у меня есть чекбоксы с определенными значениями,которые нужно добавить в базу.


<html>

<head>
<title></title>
</head>

<body>
<form
method="POST" action="testq.php" >
<table
width="100%" border="0" cellspacing="0" cellpadding="2">
<tbody>
<tr><td
align="center" width="100%" >
<table
align="center" border="0" cellspacing="0" cellpadding="1">
<tbody><tr>
<td><input
type="checkbox" name="CB[1]" id="addcar_k1" value="ABS"></td>
<td><label
for="addcar_k1">ABS</label></td>
<td
width="20%"> </td>
<td><input
type="checkbox" name="CB[2]" id="aib" value="Airbag"></td>
<td><label
for="addcar_k16">Airbag</label></td>
</tr>
<tr>
<td><input
type="checkbox" name="CB[3]" id="addcar_k3" value="ESP"></td>
<td><label
for="addcar_k3">ESP</label></td>
<td>
 </td>
<td><input
type="checkbox" name="CB[4]" id="addcar_k4" value="Парктроник"></td>
<td><label
for="addcar_k4">Парктроник</label></td>
</tr>
<tr>
<td><input
type="checkbox" name="CB[5]" id="addcar_k3" value="Электропакет"></td>
<td><label
for="addcar_k3">Электропакет</label></td>
<td>
 </td>
<td><input
type="checkbox" name="CB[6]" id="addcar_k4" value="Иммобилайзер"></td>
<td><label
for="addcar_k4">Иммобилайзер</label></td>
</tr>
<tr>
<td><input
type="checkbox" name="CB[7]" id="addcar_k6" value="Круиз-контроль"></td>
<td><label
for="addcar_k6">Круиз-контроль</label></td>
<td>
 </td>
<td><input
type="checkbox" name="CB[8]" id="addcar_k6" value="Кондиционер"></td>
<td><label
for="addcar_k6">Кондиционер</label></td>
</tr>
<tr>
<td><input
type="checkbox" name="CB[9]" id="addcar_k7" value="Климат-контроль"></td>
<td><label
for="addcar_k7">Климат-контроль</label></td>
<td>
 </td>
<td><input
type="checkbox" onclick="check_one('addcar_k8','addcar_k10')" name="CB[]" id="addcar_k8" value="Тюнинг"></td>
<td><label
for="addcar_k8">Тюнинг</label></td>
</tr>
<tr>
<td><input
type="checkbox" name="CB[10]" id="addcar_k9" value="Электропривод зеркал"></td>
<td><label
for="addcar_k9">Электропривод зеркал</label></td>
<td>
 </td>
<td><input
type="checkbox" onclick="check_one('addcar_k10','addcar_k8')" name="CB[11]" id="addcar_k10" value="Люк"></td>
<td><label
for="addcar_k10">Люк</label></td>
</tr>
<tr>
<td><input
type="checkbox" name="CB[12]" id="addcar_k11" value="Усилитель руля"></td>
<td><label
for="addcar_k11">Усилитель руля</label></td>
<td>
 </td>
<td><input
type="checkbox" onclick="check_one('addcar_k12','addcar_k14')" name="CB[13]" id="addcar_k12" value="Магнитола"></td>
<td><label
for="addcar_k12">Магнитола</label></td>
</tr>
<tr>
<td><input
type="checkbox" name="CB[14]" id="addcar_k13" value="Кожаный салон"></td>
<td><label
for="addcar_k13">Кожаный салон</label></td>
<td>
 </td>
<td><input
type="checkbox" name="CB[15]" id="addcar_k15" value="Центральный замок"></td>
<td><label
for="addcar_k15">Центральный замок</label></td>
</tr>
<tr>
<td><input
type="checkbox" name="CB[16]" id="addcar_k13" value="Ксенон"></td>
<td><label
for="addcar_k13">Ксенон</label></td>
<td>
 </td>
<td><input
type="checkbox" name="CB[17]" id="addcar_k15" value="Биксенон"></td>
<td><label
for="addcar_k15">Биксенон</label></td>
</tr>

</tbody></table>
<input
type="submit" value="Send">
</td></tr>
</tbody></table>
</form>
</body>

</html>



Когда добавляю в Mysql ,в столбце появляются не данные,а просто Array .
Делал дамп ,кроме этого { [0]=> string(100) "Array" } ничего не показывает
Что не правильно делаю ? :blink:
Заранее спасибо !


if (is_array($_POST['CB'])){

implode(",",$_POST['CB']);

$advert_query="INSERT INTO `test` (`cb`) VALUES ('".$_POST['CB']."')";
}
$sql=@mysql_query($advert_query);
var_dump(implode(",",$_POST['CB']));





$advert_query="SELECT * FROM `test`";
$sql=@mysql_query($advert_query);
while($build_res = mysql_fetch_array($sql)) {

var_dump(explode(",",$build_res['cb']));
}




Спустя 11 минут, 13 секунд (17.09.2011 - 14:10) caballero написал(а):
Цитата
Что не правильно делаю

Вставляешь туда array вместо строки

Спустя 44 секунды (17.09.2011 - 14:10) m4a1fox написал(а):
Maxxis
Ой! А можно не совсем по теме вопрос. А вот ето тебе зачема нужна
Цитата
$sql=@mysql_query($advert_query);

Я про собаку в данном случае!

Спустя 1 минута, 25 секунд (17.09.2011 - 14:12) m4a1fox написал(а):
И еще! Как то вы товарищ принимаете хитро все! Не проверку через нажатую кнопку, а проверку на сущ. массива! ИМХО - this is wrong!

Спустя 45 секунд (17.09.2011 - 14:13) caballero написал(а):
Цитата
А вот ето тебе зачема нужна

Как зачем?
А вдруг Mysql ошибку выдаст. А так мы ее удавим и сделаем вид что никаких ошибок нет

Спустя 1 минута, 30 секунд (17.09.2011 - 14:14) m4a1fox написал(а):
caballero
Ага! А потом с выпученными глазами и перерыванием сотней строк кода - будем ее искать! Не легче предупреждение выдать?

Ну это так ИМХО! Кому как сподручнее! Просто глаз режет это собака smile.gif

Спустя 3 минуты, 49 секунд (17.09.2011 - 14:18) caballero написал(а):
Цитата
Ага! А потом с выпученными глазами и перерыванием сотней строк кода - будем ее искать! Не легче предупреждение выдать?


К тому времени сайт уже будет у заказчика - главное чтобы заказчик не увидел на екране mysql_error и резонно рассудил что он просто лох, не умеющий работать с сайтом

Спустя 58 секунд (17.09.2011 - 14:19) Maxxis написал(а):
Цитата (caballero @ 17.09.2011 - 11:10)
Цитата
Что не правильно делаю

Вставляешь туда array вместо строки

Туда,это куда,можно по-подробнее ?

Спустя 3 минуты, 28 секунд (17.09.2011 - 14:22) caballero написал(а):
Цитата
Туда,это куда ?


в запрос вестимо.

$advert_query="INSERT INTO `test` (`cb`) VALUES ('".$_POST['CB']."')";


может поделишся с аудиторией что ты туда хотел бы вставить

Спустя 2 минуты, 13 секунд (17.09.2011 - 14:25) Maxxis написал(а):
Цитата (caballero @ 17.09.2011 - 11:22)


в запрос вестимо.

$advert_query="INSERT INTO `test` (`cb`) VALUES ('".$_POST['CB']."')";


может поделишся с аудиторией что ты туда хотел бы вставить

Хотел бы вставить значения чекбоксов и передать их в базу,но не могу понять что не правильно делаю !?

Спустя 8 минут, 17 секунд (17.09.2011 - 14:33) caballero написал(а):
Цитата
Хотел бы вставить значения чекбоксов и передать их в базу

КАК ты хотел бы их вставить? Какая структура данных у тебя там?
каждый элемента массива в свою строку таблицы, через запятую перечислить в string а потом вставить или еще как
у тебя есть массив - выбери из него данные по индексу или строку склей или еще как
вытащи сначала данные в том виде в котором ты в базу хочешь ставить

Спустя 5 минут, 18 секунд (17.09.2011 - 14:38) Maxxis написал(а):
Цитата (caballero @ 17.09.2011 - 11:33)
Цитата
Хотел бы вставить значения чекбоксов и передать их в базу

КАК ты хотел бы их вставить? Какая структура данных у тебя там?
каждый элемента массива в свою строку таблицы, через запятую перечислить в string а потом вставить или еще как
у тебя есть массив - выбери из него данные по индексу или строку склей или еще как
вытащи сначала данные в том виде в котором ты в базу хочешь ставить

Можно пример?
Я только начал изучать рнр

Спустя 6 минут, 56 секунд (17.09.2011 - 14:45) caballero написал(а):
Пример чего?

Как можно написать пример КАК сделать есчли ты не знаешь ЧТО сделать.

Нельзя просто воткнуть что то в БД. У тебя есть некие данные ты тем или иным образом создашь под эти данные структуру таблиц и т.д.
Затем ты принимаешь данные откудато
ты их должен вынуть и вставить в определенные места в БД



у тебя за каждым черером стоит сущность - товар


он должен быть в базе
ты получаешь массив череров каждый элемент массива - идентификатор товара
по этому идентификатору лезешь в базу и что то там с ним делаешь
например в цикле

foreach($_POST['CB'] as $index =>$value)
{
......
}

Спустя 9 минут, 57 секунд (17.09.2011 - 14:55) Maxxis написал(а):
Цитата (caballero @ 17.09.2011 - 11:45)
Пример чего?

Как можно написать пример КАК сделать есчли ты не знаешь ЧТО сделать.

Мне нужно все выбранные чекбоксы(ихние значения) 'cb' вставить одну строку базы Mysql .
Вот что я имею в виду

Спустя 3 минуты, 59 секунд (17.09.2011 - 14:59) caballero написал(а):
Цитата
Мне нужно все выбранные чекбоксы(ихние значения) 'cb' вставить одну строку базы Mysql .
Вот что я имею в виду


этого написать было достаточно вместо простыни кода

implode(",",$_POST['CB'] )

если получашь индексы вместо значений

замени name="CB[1]"
на name="CB[]"

Спустя 20 минут, 2 секунды (17.09.2011 - 15:19) Maxxis написал(а):
Цитата (caballero @ 17.09.2011 - 11:59)
Цитата
Мне нужно все выбранные чекбоксы(ихние значения) 'cb' вставить одну строку базы Mysql .
Вот что я имею в виду


этого написать было достаточно вместо простыни кода

implode(",",$_POST['CB'] )

если получашь индексы вместо значений

замени name="CB[1]"
на name="CB[]"

Поменял СВ[] !
$CB=$_POST['CB'];
implode(",",$CB);

$advert_query="INSERT INTO `test` (`cb`) VALUES ('$CB')";

$sql=mysql_query($advert_query);
var_dump(implode(",",$CB)); <----------Показывает правильно -string(28) "ABS,ESP,Электропривод зеркал"



$advert_query="SELECT * FROM `test`";
$sql=@mysql_query($advert_query);
while($build_res = mysql_fetch_array($sql)) {

var_dump(explode(",",$build_res['cb'])); // выводит в результате вот так -- array(1) { [0]=> string(5) "Array" }
}



Спустя 28 минут, 10 секунд (17.09.2011 - 15:47) inpost написал(а):
implode(",",$CB); // что это значит? Ты результат никуда не записал, значит его не существует.
$new = implode(",",$CB); // вот теперь результат идёт в переменную!!!

Спустя 7 минут, 59 секунд (17.09.2011 - 15:55) Maxxis написал(а):
Цитата (inpost @ 17.09.2011 - 12:47)
implode(",",$CB); // что это значит? Ты результат никуда не записал, значит его не существует.
$new = implode(",",$CB); // вот теперь результат идёт в переменную!!!

ОГРОМНЕЙШЕЕ СПАСИБО ТЕБЕ,INPOST!
Надо же,вот это затупил )))
ЕщЕ раз ,спасибо тебе ! )))))))))))) biggrin.gif biggrin.gif biggrin.gif biggrin.gif biggrin.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.