Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: PHP выполнение sql запроса при определенном POST  (Прочитано 2040 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Xts

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1677
  • Arch Linux, Kernel 4.20
    • Просмотр профиля
есть update запрос в бд, хочу сделать еще INSERT запрос если при редактировании был установлен нужный параметр.
есть такой код
if(isset($_POST['id']) and $_POST['id']!=""){

        $id= $_POST['id'];

        $nick = $_POST['nick'];

        $pwd = $_POST['pwd'];

        $name = $_POST['name'];

              $age = $_POST['age'];

$query = mysql_query("UPDATE ".$config->db_prefix."_info SET nick = '".$nick."', pwd = '".$pwd."', name = '".$name."' , age = '".$age."' WHERE id = '".$id."'")or die (mysql_error());

 

if ($_POST['age']=="18"){

        $nick = $_POST['nick'];

        $pwd = $_POST['pwd'];

        $name = $_POST['name'];

       

$query = mysql_query("INSERT INTO `".$config->db_prefix."_list` (`nick`,`pwd`,`name`) VALUES ('".$nick."', '".$pwd."', '".$name."')") or die (mysql_error());

}}
с первым запросом все хорошо, а вот второй не хочет работать :-\
скорее всего просто я дурак и чего то не понимаю :-\
подскажите куда копать
ASUS Sabertooth 990FX R2.0
AMD FX-8350 x8@5Ггц, AMD Memory 16Гб
AMD Radeon R9 290X

Оффлайн Vitsliputsli

  • Старожил
  • *
  • Сообщений: 1293
    • Просмотр профиля
А зачем кавычки ` ? В первом запросе нет, а во второй зачем вписали?
Сформируйте предварительно запрос с помощью echo и проверьте правильность.

Оффлайн Xts

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1677
  • Arch Linux, Kernel 4.20
    • Просмотр профиля
Vitsliputsli,
эмм, где именно кавычки?
с самими запросами вроде тож все нормально, я их готовые брал

эти чтоль?
`".$config->db_prefix."_list`незнаю даже откуда взялись
в самом файле их нет
ASUS Sabertooth 990FX R2.0
AMD FX-8350 x8@5Ггц, AMD Memory 16Гб
AMD Radeon R9 290X

Оффлайн Vitsliputsli

  • Старожил
  • *
  • Сообщений: 1293
    • Просмотр профиля
Как бы то ни было, к чему гадать, проверяйте как выглядит окончательный запрос.

Оффлайн Xts

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1677
  • Arch Linux, Kernel 4.20
    • Просмотр профиля
Vitsliputsli,
да дело не в запросе, он 100% рабочий. проблема в самом условии или еще в чем.
ASUS Sabertooth 990FX R2.0
AMD FX-8350 x8@5Ггц, AMD Memory 16Гб
AMD Radeon R9 290X

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Xts,
Ага, только ты в белом. твое первое предположение не далеко от истины.
Включи вывод сообщений об ошибках
проанализируй что возвращают функции
Будь мужиком!

P.S. ввобще вставлять пользовательский ввод в запрос канакатенацией строк - это ! Только плейсхолдеры и биндинг.

Оффлайн Xts

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1677
  • Arch Linux, Kernel 4.20
    • Просмотр профиля
Yurror,
а можно по русски?
дело то как раз в том, что ошибок не пишет, а просто не выполняет второй запрос и все
ASUS Sabertooth 990FX R2.0
AMD FX-8350 x8@5Ггц, AMD Memory 16Гб
AMD Radeon R9 290X

Оффлайн Vitsliputsli

  • Старожил
  • *
  • Сообщений: 1293
    • Просмотр профиля
Так покажите этот запрос. Не строчки php, а конечный сформированный запрос, который отправляется на сервер.

Как минимум уберите лишние кавычки, зачем они?
$query = mysql_query("INSERT INTO ".$config->db_prefix."_list (nick,pwd,name) VALUES ('".$nick."', '".$pwd."', '".$name."')") or die (mysql_error());
Пользователь решил продолжить мысль 05 Июня 2013, 17:15:30:
Кто не пишет ошибок? PHP? MySQL? Вряд ли так бывает, что никто не пишет об ошибках, но ничего не работает.

Оффлайн Xts

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1677
  • Arch Linux, Kernel 4.20
    • Просмотр профиля
Vitsliputsli,
да запрос работает еще раз повторяю, с ним нет проблем если выполнять его первым, он не работает именно в такой последовательности, а именно после условия
ASUS Sabertooth 990FX R2.0
AMD FX-8350 x8@5Ггц, AMD Memory 16Гб
AMD Radeon R9 290X

Оффлайн Vitsliputsli

  • Старожил
  • *
  • Сообщений: 1293
    • Просмотр профиля
"100% рабочий" - это мнение, а выполняется он или нет, это уже факт.
По синтаксису php все верно, при передаче в POST id!="" и age=18 будет выполняться еще и INSERT.

А зачем проверять одновременно существование и неравенство для $_POST['id']?

Оффлайн Xts

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1677
  • Arch Linux, Kernel 4.20
    • Просмотр профиля
Vitsliputsli,
не хочет выполнятся он и все.
после update запроса почему то вообще ничего не работает.
зачем проверяется неравенсво id уже и не помню, может чего то хотел сделать. просто скрипт написан давно, а тут решил его дополнить.

собственно тему можно закрыть, сделал подругому, не так как хотелось, ну да ладно
ASUS Sabertooth 990FX R2.0
AMD FX-8350 x8@5Ггц, AMD Memory 16Гб
AMD Radeon R9 290X

Оффлайн martini

  • Участник
  • *
  • Сообщений: 179
    • Просмотр профиля
А вы не думали, что просто $_POST['age'] не бывает равен 18? Например в форме поле называется не так из-за опечатки, или еще что-то?

Вставьте в начало скрипта var_dump($_POST); посмотрите, что там.

Оффлайн Xts

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1677
  • Arch Linux, Kernel 4.20
    • Просмотр профиля
martini,
с этим норм
ASUS Sabertooth 990FX R2.0
AMD FX-8350 x8@5Ггц, AMD Memory 16Гб
AMD Radeon R9 290X

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Yurror,
а можно по русски?
...
Можно, но затруднительно и нужно ли?
Почитай документацию на интерфейс с MySQL
Если он не умеет биндинг то я тебе сильно сочувствую =)

Оффлайн Xts

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1677
  • Arch Linux, Kernel 4.20
    • Просмотр профиля
Yurror,
собвственно причем тут mysql? запрос то верный и работает.
ASUS Sabertooth 990FX R2.0
AMD FX-8350 x8@5Ггц, AMD Memory 16Гб
AMD Radeon R9 290X

 

Страница сгенерирована за 0.093 секунд. Запросов: 25.