anton000

anton000
Рейтинг
32
Регистрация
10.05.2013
setka_gs:
мой notepad говорит что вы жестоко ошибаетесь. там идут одинарные кавычки.



мой notepad врет? вы поправили сценарий и у вас не получилось? мне открывать ваш архив?

Там перед titile ещё идёт строка "UPDATE menu SET и здесь есть " и её нужно чем то закрыть. Она в начале, и что-то должно быть в конце.

---------- Добавлено 27.06.2013 в 18:56 ----------

Цвет, после этой строчки другой, значит, как я понимаю, что-то в этой строке не того.

setka_gs:
предполагаю что да... это ошибка синтаксического хар-ра.

у вас

нужно


---------- Добавлено 27.06.2013 в 18:36 ----------



честно, ничего не понял... WHERE... ну где id равен 1 к примеру... и каким образом это нельзя использовать ?

p/s могу жестоко ошибаться... но по дебагу mysql ошибка именно в ситаксисе.

Там в конце хоть как но нужно "'" так как последний " закрывает первый " ( в начале строки ).

А если в конце " то получается тоже самое.

------

Сделал так

mysql_query("UPDATE menu SET title= '" . $_POST[title] . "', title_url= '" . $_POST[title_url] . "', parent= '" . $_POST[parent] . "' WHERE id='" . $res . "'");

Не работает!

setka_gs:
Ну по сути это палкой в небо, уж простите за каламбур... нужно понять от чего это случилось. Понять где ошибка, а она тут в двух местах может только быть. Ваш эмперический метод тоже имеет место быть... но КПД его, сомнения вызывают.



Ну значит вы выше этого, уникум, таких как вы мало, радуйтесь. Мне вот в радость помочь ближнему если душа лежит, а вам поворчать? ;)

---------- Добавлено 27.06.2013 в 18:21 ----------



ну друг мой вы на верном пути... как я и был уверен mysql_error всему виной... давайте я пока не буду открывать ваш архив... самому то интереснее... не правда ли ? Там какая-то ошибка... не сложная...

Вы знаете как эту ошибку исправить?

UNIT-IS:
Предлагаю попробовать такой вариант (из опыта с подобной проблемой):
$a = "

INSERT INTO menu SET title= '" . $_POST[title] . "', title_url= '" . $_POST[title_url] . "', parent= '" . $_POST[parent] . "'
ON DUPLICATE KEY UPDATE
title= '" . $_POST[title] . "', title_url= '" . $_POST[title_url] . "', parent= '" . $_POST[parent] . "'
WHERE id='" . $res . "'";

Пишет - Категории не обновились.

Так же написал - 1064: 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 'WHERE id=''' at line 4

setka_gs:
кмх, а ты уверен что id это у тебя строка ? обычно id это число. Это мне если честно парится особенно на форуме не охота, тем более я счас отдыхаю... кхм культурно. Если уж так хочешь собери мне архив с дампом и сценариями, я поправлю.

а вообще я уже указал что скорее всего у тебя ошибка в последнем запросе к mysql.

в update.php после запроса добавь echo mysql_errno() . ": " . mysql_error() . "\n"; и посмотри на результат.

з.ы практика лучшее средство обучения, бывало что и пару ночей не спишь пока какую ошибку ищещь, это забавно и познавательно...

Результат: 0: Категории обновились

Сейчас, соберу сборку. Я тебе отправлю весь сайт в целиком, так как может где-то в других файлах есть ошибка. Отправлю личкой.

setka_gs:
ну вот тут ты тупо присваиваешь переменной значение из глобального массива.


$res = $_POST["id"];

это не правильно в плане безопасности. Ты должен четко указать php какую переменную ты ждешь... int() - привести к числовому значению, это значит что ты укажешь php что ты ждешь ТОЛЬКО число. там еще есть string() строка. ну и так далее. http://www.php.su/learnphp/vars/?types

суть в том что в эту переменную можно засунуть что угодно ну и взломать сценарий... если ты будешь четко указывать какие типы переменных ты ждешь, безопасность будет в безопасности :) а насчет 5 строк, твой сценарий маленький... да и больше на тренировочный смахивает.

---------- Добавлено 27.06.2013 в 17:16 ----------

TF-Studio, мир, одуванчики, негатив портит жизнь, писс одним словом :)

Я так понял мне нужно

$res = (string) $_POST[id];

Я string() не нашёл)))

Да, и проверил echo mysql_error выдаёт 0. Да и переменная хорошо проходит во второй и третий файл. Сейчас что можно сделать?

---------- Добавлено 27.06.2013 в 17:39 ----------

TF-Studio:
К тому что подобные деятели, что-то поковыряют, где-то почитают, а потом начинают услуги оказывать.
И у многих заказчиков негативное отношение к разработчикам, потому что работает все через раз.
Начиная с таких http://yandex.ru/yandsearch?lr=2&text=mysql_error+expects+parameter+1+to+be+resource+boolean+given+in
и дальше по тексту
тут не привели типы, там проверку не сделали, тут с нагрузкой не рассчитали...

Если вы мне не верите, могу вам предоставить архив файлов моих разработок. И там чётко будет видно, что это не коммерческий скрипт.

Сейчас я пришёл просто в замещательство, в конечном файле сделал:

echo $res;

И пустота! Не понимаю, почему переменная не передалась в конечный файл?

setka_gs:
к чему это? может он для себя на localhost кодит... там ошибка привести к int переменную, 5 строк кода... хорош.

---------- Добавлено 27.06.2013 в 17:05 ----------



у тебя два сценария. алгоритм такой. 1 убедится что переменная передается через ОБА сценария. 2 Сделать дебаг ошибок mysql. В твоем случае... может быть ВСЕГО две ошибки либо не передается одна из переменных в сценарий update.php. либо mysql возвращает error. Все...

Как, понять - "привести к int переменную, 5 строк кода" ? Разъясните пожалуйста, как это сделать?

setka_gs:
Какие параметры он тебе передает ? :)

print_r($_POST); //в u_c.php для начала.

а потом echo $res; //в update.php

в общем убедится что действительно id передается, потом убедится что mysql не возвращает error. дебаж запросы к mysql для верности http://www.php.su/mysql_error

если все ок то update 100% будет ;)

Сделал, выводит --- Array ( [id] => 3 ). Значит всё ОК. Ему id категории успешно передаётся.

Начало, файла стало такое:


include "bd.php";

print_r($_POST);

$res = $_POST["id"];

echo $res;

$result = mysql_query("SELECT * FROM menu WHERE id='" . $res . "'");


$sort = mysql_fetch_array($result);

Но, это не решает, данную проблему.

TF-Studio:
u_c.php?id=oh'oh

У меня параметры из файла в файл передаются же методом post а не get. Или как применить ваш ответ?

Помогите с тегами