[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: checkbox запись в БД
Liancourt
Вначале вывожу из таблицы данные напротив них чеки. Потом мне нужно записать в определенное поле таблицы единичку, чтение работает, запись нет, помогите народ ))
$result2 = mysql_query("SELECT * FROM Szap where numj='$buff22'");
$myrow2 = mysql_fetch_array($result2);
do
{
printf ("<p><input name='id' type ='checkbox' value='%s'><label> %s</label></p>",$myrow2["idD"],$myrow2["famzap"]);

}
while ($myrow2 = mysql_fetch_array($result2));


?>
-------------- Это чтение
<input name="add2" type="submit" value="Добавить" />

 
<? if (@$_REQUEST['add2']) {
$query55 = "UPDATE Szap SET BrakSotr = '1' WHERE idD ='".$myrow2['idD']."'";
$result55 = mysql_query($query55) or die("Query failed");
?>
------------ Это запись



Спустя 13 минут, 8 секунд (11.05.2012 - 22:07) rooor написал(а):
$result55 = mysql_query($query55) or die(mysql_error());

Спустя 4 минуты, 36 секунд (11.05.2012 - 22:11) Liancourt написал(а):
Посмотрел, исправил, мне надо было не idD поле брать idszap, но, к сожалению, все равно не записывает мою единичку..

Спустя 5 минут, 4 секунды (11.05.2012 - 22:16) rooor написал(а):
ошибку какую пишет?

Спустя 1 минута, 55 секунд (11.05.2012 - 22:18) Liancourt написал(а):
не пишет ошибок теперь, но единичку не записывает

Спустя 15 минут, 54 секунды (11.05.2012 - 22:34) bodja написал(а):
if (isset($_REQUEST['add2']))

Спустя 5 минут, 32 секунды (11.05.2012 - 22:40) Liancourt написал(а):
Не помогло...

Спустя 2 минуты, 24 секунды (11.05.2012 - 22:42) sergeiss написал(а):
Майн гот... Ну до каких пор будем с "поповщиной" бороться? Я это о том, что надо использовать цикл while(){} для чтения данных! Никаких do-while() тут не должно быть!!! С этого начни.

Спустя 2 минуты, 2 секунды (11.05.2012 - 22:44) Liancourt написал(а):
Да какая разница в принципе, блок мой с чтением работает, а с записью нет.

Спустя 3 минуты, 4 секунды (11.05.2012 - 22:47) bodja написал(а):
Liancourt

покажите ,что у вас в ХТМЛ вышло.

Спустя 9 секунд (11.05.2012 - 22:47) rooor написал(а):
sergeiss
да там всё переписывать надо))

Liancourt
а вот так?
if (isset($_REQUEST['add2'])) 
{
echo 1;
$query55 = "UPDATE `Szap` SET `BrakSotr` = 1 WHERE `idD` ='".$myrow2['idD']."'";
$result55 = mysql_query($query55) or die(mysql_error());
}

Спустя 16 секунд (11.05.2012 - 22:48) inpost написал(а):
if (@$_REQUEST['add2']) {
*facepalm* , и не ты виноват, а кто тебя учил такому.
Ты проверяешь, а точно ли переменная == TRUE, не существует (для существования есть isset, а именно true\false, при этом не доволен из-за того, что её может не быть и поэтому собаку влепил... Это ужасно! smile.gif Для этого есть иссет

Спустя 2 минуты, 29 секунд (11.05.2012 - 22:50) sergeiss написал(а):
Цитата (Liancourt @ 11.05.2012 - 22:44)
Да какая разница в принципе

Разница в том, что при виде такого кода у меня "состояние полного нестояния" wink.gif А именно, я даже думать не могу над какими-то проблемами, пока такие ляпы в коде.
И еще разница в том, что изначально надо привыкать к "правильному" кодированию. Чтобы потом не было мучительно больно за ошибки.

Плюс ко всему (это к вопросу "правильных привычек"), переменным лучше давать осмысленные имена, а не $query55, $query666 и им подобные.

Спустя 2 минуты, 44 секунды (11.05.2012 - 22:53) Liancourt написал(а):
sergeiss, Вывел единичку мне, а в табличку так и не записал

Спустя 2 минуты, 7 секунд (11.05.2012 - 22:55) Liancourt написал(а):
Сделал как roor сказал, вывел единичку, а в таблицу не записывает

Спустя 2 минуты, 45 секунд (11.05.2012 - 22:58) inpost написал(а):
А запись тут при чём? У тебя обновление записи.
И я уверен, что обновление прошло успешно, но так как у тебя записей с `idD` ='".$myrow2['idD']."', то и 0 записей обновилось успешно!

Спустя 57 секунд (11.05.2012 - 22:59) rooor написал(а):
да... а где $myrow2['idD'] ? откуда она должна появиться?

Спустя 6 минут, 41 секунда (11.05.2012 - 23:05) Liancourt написал(а):
ну в этом и дело, не знаю как записать данные в мою таблицу. мне нужно, чтобы в БД обновилась информация, а именно записалась единица напротив чека, который я поставил

Спустя 5 минут, 6 секунд (11.05.2012 - 23:11) rooor написал(а):
if (isset($_REQUEST['add2'])  && !empty($_REQUEST['id'])) 
{
$query55 = "UPDATE `Szap` SET `BrakSotr` = 1 WHERE `idD` ='".(int)$_REQUEST['id']."'";
$result55 = mysql_query($query55) or die(mysql_error());
}

Спустя 12 секунд (11.05.2012 - 23:11) inpost написал(а):
ты бы хоть сказал, что это за переменная, откуда она берётся.

Спустя 6 минут, 19 секунд (11.05.2012 - 23:17) Liancourt написал(а):
Roor, все равно не записывает

Спустя 2 минуты, 56 секунд (11.05.2012 - 23:20) Liancourt написал(а):
Переменная $myrow2['idD'] - это поля моей таблички цифровые, как раз по ним я и отбираю то, что мне нужно из всех записей

Спустя 3 минуты, 44 секунды (11.05.2012 - 23:24) rooor написал(а):
тогда поехали с самого начала))
чтобы отправить данные из формы обработчику, нужна сама форма smile.gif
у тебя я её не увидел.
При выводе данных из базы, каждую запись вставляй между тегами <form></form>, ну и ещё надо добавить в какой файл отправлять запрос и каким способом.
Вобщем, если учишься - читай про <form></form>, $_GET, $_POST

Спустя 3 минуты, 33 секунды (11.05.2012 - 23:27) Liancourt написал(а):
Это я вставил
<form name="form1" method="post" >
<input
name="add2" type="submit" value="Добавить" />
</form>
но ничего не выходит

Спустя 6 минут, 34 секунды (11.05.2012 - 23:34) rooor написал(а):
вот) начало есть.
всё, что есть в этой форме - отправляется обработчику. в данном случае отправляется только поле add2, т.е. обработчик получает данные в виде $_POST['add2'] и больше ничего, значит в эту форму надо ещё добавлять чекбокс с id

Спустя 10 минут, 35 секунд (11.05.2012 - 23:44) Liancourt написал(а):
Ну смотри что получилось
<form id="form111" name="form1111" method="post" >

<?
$result2 = mysql_query("SELECT * FROM Szap where numj='$buff22'");
$myrow2 = mysql_fetch_array($result2);
do
{
printf ("<p><input name='id' type ='checkbox' value='%s'><label> %s</label></p>",$myrow2["idszap"],$myrow2["famzap"]);
}
while ($myrow2 = mysql_fetch_array($result2));

?>

<input name="add2" type="submit" value="Добавить" />
</form>

<? if (isset($_REQUEST['add2'])) {
$bom=1;
$query55 = "UPDATE Szap SET BrakSotr = '$bom' WHERE idszap ='".$myrow2['idszap']."'";
$result55 = mysql_query($query55) or die(mysql_error());
echo $myrow2["idszap"];
}?>

Спустя 1 минута, 5 секунд (11.05.2012 - 23:46) Liancourt написал(а):
и все равно безрезультатно

Спустя 5 минут, 5 секунд (11.05.2012 - 23:51) rooor написал(а):
опять... вот где у тебя $myrow2['idszap']? откуда это должно появиться?
давай так...
пропиши этот код, и смотри что там есть, только внимательно смотри) если ничего не увидишь, напишу ответ)
<?php
if (isset($_REQUEST['add2'])) {
echo "<pre>";
print_r($_POST);
echo "</pre>";
$bom=1;
$query55 = "UPDATE Szap SET BrakSotr = '$bom' WHERE idszap ='".$myrow2['idszap']."'";
$result55 = mysql_query($query55) or die(mysql_error());
echo $myrow2["idszap"];
}?>

Спустя 3 минуты, 43 секунды (11.05.2012 - 23:54) Liancourt написал(а):
Вывел
Array
(
[id] => 5
[add2] => Добавить
)

Спустя 4 минуты, 45 секунд (11.05.2012 - 23:59) rooor написал(а):
это всё, что тебе из формы прилетело.
в форме ты указал метод POST, значит и данные у тебя лежат в массиве $_POST.
соответственно sql-запрос у тебя должен выглядеть так:
$query55 = "UPDATE `Szap` SET `BrakSotr` = 1  WHERE `idszap` =".(int)$_POST['id'];

Спустя 2 минуты, 51 секунда (12.05.2012 - 00:02) Liancourt написал(а):
Получается, но только последнюю мою отметку, тут цикл наверно нужен, поможешь с этим?

Спустя 8 минут, 14 секунд (12.05.2012 - 00:10) rooor написал(а):
ну так какой id, в такой записи и обновление проходит
Быстрый ответ:

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