[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите найти ошибку...
KamSocial.ru
Приветь! Помогите найти ошибку пожалуйста...Вот:
PHP
elseif($action == 'add'){
echo(
"<center><h3>Добавить новый товар</h3><br>");
echo(
"<form action='?action=add_ok' method='POST'>");
echo(
"<table width='70%' border='0' class='admblock' align='CENTER'><tr><td width='30%'>Название товара:</td><td width='50%'><input type='text' name='title' size='50%'></td></tr>
<tr><td width='30%'>Категория товара:</td><td width='50%'>"
);
echo(
"<select name='categorys' size='1'>");
while (
$categ mysql_fetch_array($sql2)) {
echo(
"<option value='".$categ['id']."'>".$categ['title']."</option>");
}
echo(
"</select>");
echo(
"</td></tr>
<tr><td>Изображение: (полный URL)</td><td><input type='text' name='image' size='50%'></td></tr>
<tr><td>Цена: (без валюты, только число)</td><td><input type='text' name='price' size='50%'></td></tr>
<tr><td>Подробное описание: </td><td><textarea name='description' rows='5' cols='48'></textarea></table>"
);
echo(
"<br><input type='submit' value=' Добавить товар '></form></center>");
}
elseif(
$action == 'add_ok') {
$title $_POST['title'];
$description $_POST['description'];
$categorys $_POST['categorys'];
$price $_POST['price'];
$image $_POST['image'];
$ids mt_srand(time()*1); //генерируем новое число
$wr "INSERT INTO `shop_item` SET id='".$ids."' title='".$title."' description='".$description."' pid='".$categorys."' image='".$image."' price='".$price."';";
$qwe mysql_query($wr,$link);
if(
$qwe==true) {echo("Новый товар успешно добавлен!");} else {echo("Ощибка при добавлении нового товара в базу данных.");}}

Для надёжности вывел весь код...но вообще-то проблема в исполнении запроса...т.е. получаю ответ:
Ошибка при добавлении нового товара в базу данных.
Немогу найти ошибку...



Спустя 1 час, 48 минут, 13 секунд (1.05.2009 - 06:25) modobaks написал(а):
проверь так
PHP
$qwe = mysql_query($wr,$link) or die( mysql_error() );

Он тебе скажет, где ошибка.

Спустя 1 минута, 39 секунд (1.05.2009 - 06:27) Sylex написал(а):
echo mysql_error(); // выведет ошибку запроса на экран

Также, в зависимости от "включенности"/"выключенности" "магических кавычек" надо удалять слэши через stripslashes() данных, пришедших от пользователя. А перед помещением в базу использовать функцию mysql_real_escape_string():

http://phpfaq.ru/slashes
http://ru.php.net/stripslashes
http://ru.php.net/manual/ru/function.mysql-error.php
http://ru.php.net/manual/ru/function.mysql...cape-string.php

Спустя 2 часа, 55 минут, 37 секунд (1.05.2009 - 09:22) Sylex написал(а):
Цитата ("KamSocial.ru")
но не все, ведь адрес картинки должен быть со слешами...


как это не все? ВСЕ И ОБЯЗАТЕЛЬНО!!!


Цитата ("KamSocial.ru")
Я вот такую получил ошибку:
SQL
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 'title='Карты' description='Новые, современные и точные карты для дома и офиса. П' at line 1

Что это может значить?


а это значит что у тебя синтаксическая ошибка, и ты пренебрегаешь моему совету!

Слэши стираются те, что АВТОМАТИЧЕСКИ добавляются (если задана такая настройка), а не которые ты ставишь! И ОБЯЗАТЕЛЬНО ДЛЯ КАЖДОГО ПАРАМЕТРА НАДО ЮЗАТЬ mysql_real_escape_string()

Ты ссылки смотрел что я дал тебе? Читал? Внимательно? Повтори!

Спустя 1 минута, 58 секунд (1.05.2009 - 09:24) Sylex написал(а):
Сорри, стер твое предыдущее сообщение случайно smile.gif

Спустя 57 минут, 32 секунды (1.05.2009 - 10:22) KamSocial.ru написал(а):
Цитата
Слэши стираются те, что АВТОМАТИЧЕСКИ добавляются (если задана такая настройка), а не которые ты ставишь!

Аааа...ясно...спс... smile.gif
Цитата
Ты ссылки смотрел что я дал тебе? Читал? Внимательно? Повтори!

Читал, ща ещё раз прочту и попробую...
А возможно такая конструкция:
PHP
$image mysql_real_escape_string(stripslashes($_POST['image']));

???

Спустя 2 часа, 51 минута, 44 секунды (1.05.2009 - 13:13) Sylex написал(а):
KamSocial.ru
да возможна, но нужно еще лучше сделать

Спустя 2 минуты, 12 секунд (1.05.2009 - 13:16) Sylex написал(а):
PHP
if (get_magic_quotes_gpc()) {
    
$value stripslashes($value);
}


так будет правильней, а потом уже $value = mysql_real_escape_string($value)

Спустя 22 минуты, 30 секунд (1.05.2009 - 13:38) KamSocial.ru написал(а):
Цитата
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 'title='Карты' description='Хороший набор карт для дома и офиса!' pid='8' image='' at line 1

Это когда сделал по первой конструкции...
Цитата
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 'title='Карты' description='Отличный набор физических карт, для дома и офиса!' pi' at line 1

А это когда использовал ваш совет:
PHP
if (get_magic_quotes_gpc()) {
    
$value stripslashes($value);
}

Что ему ещё не нравится в запросе?

Спустя 6 минут, 45 секунд (1.05.2009 - 13:45) KamSocial.ru написал(а):
Вот я Д... huh.gif
Мдя....а кто же за меня запятые будет ставить в запросе?!
Ох всё спасибо за ответы и советы... smile.gif

Спустя 8 минут, 24 секунды (1.05.2009 - 13:53) Sylex написал(а):
PHP
//...
$title $_POST['title'];
$description $_POST['description'];
$categorys $_POST['categorys'];
$price $_POST['price'];
$image $_POST['image'];
if (
get_magic_quotes_gpc()) {
    
$title stripslashes($title);
    
$description stripslashes($description);
    
$price stripslashes($price);
    
$image stripslashes($image);
    
$categorys stripslashes($categorys);
}
$title mysql_real_escape_string($title);
$description mysql_real_escape_string($description);
$price mysql_real_escape_string($price);
$image mysql_real_escape_string($image);
$categorys mysql_real_escape_string($categorys);

$ids mt_srand(time()*1); //генерируем новое число
$wr "INSERT INTO `shop_item` SET id='{$ids}', title='{$title}', description='{$description}', pid='{$categorys}', image='{$image}', price='{$price}'";
$qwe mysql_query($wr,$link) or die( mysql_error() );
if(
$qwe==true) {echo("Новый товар успешно добавлен!");} else {echo("Ощибка при добавлении нового товара в базу данных.");}}


параметры при вставке нужно было разделить запятыми
Быстрый ответ:

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