Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: 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
 
 автор: DreadfulS   (24.10.2006 в 19:06)   письмо автору
 
 

Ошибка при добавлении данных - 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 '' at line 8

помогите плиз найти ошибку, попробывал сделать скрипт правки данных в БД на основе системы регистрации из книги MySQL 5
сам скрипт:

<?
  
require_once("../config.php"); 
  
$query "SELECT * FROM client 
            WHERE id_client="
.$_GET['id_client'];
  
$clt mysql_query($query);
  if (!
$cltputerror("Ошибка при исправлении продукции");
  
$client mysql_fetch_array($clt);
  
$name $client['name'];
  
$rek $client['rek'];
  
$tel $client['tel'];
  
$manager $client['manager'];
  
$email $client['email'];
  
$url $client['url'];
  
?>
<table>
<form method=post>
<tr><td>Контора:</td><td><input type=text name=name value='<?php echo $name?>'></td></tr>
<tr><td>Реквизиты:</td><td><input type=text name=rek value='<?php echo $rek?>'></td></tr>
<tr><td>Телефон:</td><td><input type=text name=tel value='<?php echo $tel?>'></td></tr>
<tr><td>Ведущий менеджер:</td><td><input type=text name=manager value='<?php echo $manager?>'></td></tr>
<tr><td>e-mail:</td><td><input type=text name=email value='<?php echo $email?>'></td></tr>
<tr><td>URL:</td><td><input type=text name=url value='<?php echo $url?>'></td></tr>
<tr><td></td><td><input type=submit value='Изменить'></td></tr>
</form>
</table>
<?php
  
/////////////////////////////////////////////////
  // Формируем и выполняем SQL-запрос на 
  // изменение клиента
  
$query "UPDATE client SET 
    name='"
.$_POST['name']."',
    rek='"
.$_POST['rek']."',
    tel='"
.$_POST['tel']."',
    manager='"
.$_POST['manager']."',
    email='"
.$_POST['email']."',
    url='"
.$_POST['url']."'
    WHERE id_client="
.$_POST['id_client'];
  if(
mysql_query($query))
  {
    
// Осуществляем перезагрузку страницы,
    // чтобы сбросить POST-данные
    
echo "<HTML><HEAD>
          <META HTTP-EQUIV='Refresh' CONTENT='0; URL=
$_SERVER[PHP_SELF]'>
          </HEAD></HTML>"
;
  } else exit(
"Ошибка при добавлении данных - ".mysql_error());
?>

   
 
 автор: DreadfulS   (24.10.2006 в 19:07)   письмо автору
 
   для: DreadfulS   (24.10.2006 в 19:06)
 

сори не в тот форум написал

   
 
 автор: cheops   (24.10.2006 в 20:08)   письмо автору
 
   для: DreadfulS   (24.10.2006 в 19:06)
 

Выведите сам запрос, т.е. вместо
<?php
  
} else exit("Ошибка при добавлении данных - ".mysql_error());
?>

напишите
<?php
  
} else exit("Ошибка при добавлении данных - ".mysql_error()."<br>".$query);
?>

   
 
 автор: DreadfulS   (24.10.2006 в 20:12)   письмо автору
 
   для: cheops   (24.10.2006 в 20:08)
 

Ошибка при добавлении данных - 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 '' at line 8
UPDATE client SET name='', rek='', tel='', manager='', email='', url='' WHERE id_client=

   
 
 автор: cheops   (24.10.2006 в 20:18)   письмо автору
 
   для: DreadfulS   (24.10.2006 в 20:12)
 

У вас не передаются POST-данные и это нормально, так как если обработчик помещают в том же файле, что и HTML-форму, то схема построения скрипта применяется обычно следующая.
<? 
  
require_once("../config.php");  
if(!empty(
$_POST))
{
  
///////////////////////////////////////////////// 
  // Формируем и выполняем SQL-запрос на  
  // изменение клиента 
  
$query "UPDATE client SET  
    name='"
.$_POST['name']."', 
    rek='"
.$_POST['rek']."', 
    tel='"
.$_POST['tel']."', 
    manager='"
.$_POST['manager']."', 
    email='"
.$_POST['email']."', 
    url='"
.$_POST['url']."' 
    WHERE id_client="
.$_POST['id_client']; 
  if(
mysql_query($query)) 
  { 
    
// Осуществляем перезагрузку страницы, 
    // чтобы сбросить POST-данные 
    
echo "<HTML><HEAD> 
          <META HTTP-EQUIV='Refresh' CONTENT='0; URL=
$_SERVER[PHP_SELF]'> 
          </HEAD></HTML>"

    exit();
  } else exit(
"Ошибка при добавлении данных - ".mysql_error()); 
}
  
$query "SELECT * FROM client  
            WHERE id_client="
.$_GET['id_client']; 
  
$clt mysql_query($query); 
  if (!
$cltputerror("Ошибка при исправлении продукции"); 
  
$client mysql_fetch_array($clt); 
  
$name $client['name']; 
  
$rek $client['rek']; 
  
$tel $client['tel']; 
  
$manager $client['manager']; 
  
$email $client['email']; 
  
$url $client['url']; 
  
?> 
<table> 
<form method=post> 
<tr><td>Контора:</td><td><input type=text name=name value='<?php echo $name?>'></td></tr> 
<tr><td>Реквизиты:</td><td><input type=text name=rek value='<?php echo $rek?>'></td></tr> 
<tr><td>Телефон:</td><td><input type=text name=tel value='<?php echo $tel?>'></td></tr> 
<tr><td>Ведущий менеджер:</td><td><input type=text name=manager value='<?php echo $manager?>'></td></tr> 
<tr><td>e-mail:</td><td><input type=text name=email value='<?php echo $email?>'></td></tr> 
<tr><td>URL:</td><td><input type=text name=url value='<?php echo $url?>'></td></tr> 
<tr><td></td><td><input type=submit value='Изменить'></td></tr> 
</form> 
</table> 

   
 
 автор: DreadfulS   (24.10.2006 в 20:47)   письмо автору
 
   для: cheops   (24.10.2006 в 20:18)
 

хм... теперь совсем запутался, выдаёт чистый лист без ошибок
кстати вопрос синтаксиса при правке БД в связке с PHP в книге MySQL5 не освещён:(
где об этом можно почитать, желательно в нете? есть все Ваши книги кроме последней, но нет возможности сейчас их полистать.

   
 
 автор: cheops   (24.10.2006 в 21:50)   письмо автору
 
   для: DreadfulS   (24.10.2006 в 20:47)
 

Я забыл открывающую фигурную скобку в третей строке (поправил пост - возьмите скрипт по новой).

   
 
 автор: cheops   (24.10.2006 в 21:52)   письмо автору
 
   для: DreadfulS   (24.10.2006 в 20:47)
 

В книгах посвящённых MySQL мы сосредотачивались в основном на SQL-синтаксисе, вопросы взаимодействия MySQL и PHP подробно освещаются в наших предыдущих книгах, например, в "PHP 5. Практика создания Web-сайтов".

   
 
 автор: DreadfulS   (24.10.2006 в 22:14)   письмо автору
 
   для: cheops   (24.10.2006 в 21:52)
 

угу, есть такая, спасибо:)

   
 
 автор: DreadfulS   (24.10.2006 в 22:16)   письмо автору
 
   для: DreadfulS   (24.10.2006 в 22:14)
 

Ошибка при добавлении данных - 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 '' at line 8

   
 
 автор: cheops   (24.10.2006 в 22:30)   письмо автору
 
   для: DreadfulS   (24.10.2006 в 22:16)
 

Вывод SQL-запроса опять показывает что поля пустые?

   
 
 автор: DreadfulS   (24.10.2006 в 22:46)   письмо автору
 
   для: cheops   (24.10.2006 в 22:30)
 

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

   
 
 автор: cheops   (25.10.2006 в 00:27)   письмо автору
 
   для: DreadfulS   (24.10.2006 в 22:46)
 

Выключите бразуер и загрузите скрипт по-новой, возможно у вас остались не сброшенные POST-данные. Если не помогает посмотрите что находится в массиве $_POST
<?php
  
echo "<pre>";
  
print_r($_POST);
  echo 
"</pre>";
?>

   
 
 автор: DreadfulS   (25.10.2006 в 01:00)   письмо автору
 
   для: cheops   (25.10.2006 в 00:27)
 

выдаёт

Array
(
)


теперь данные меняет, но выдаёт :
Ошибка при исправлении продукции

   
 
 автор: DreadfulS   (25.10.2006 в 01:18)   письмо автору
 
   для: DreadfulS   (25.10.2006 в 01:00)
 

заработало, Всем спасибо:)
достаточно было поменять рефреш с

<META HTTP-EQUIV='Refresh' CONTENT='0; URL=$_SERVER[PHP_SELF]'>  

на

<META HTTP-EQUIV='Refresh' CONTENT='0; URL=editclient.php?id_client=".$_POST['id_client']."'>  

   
 
 автор: Trianon   (25.10.2006 в 00:05)   письмо автору
 
   для: DreadfulS   (24.10.2006 в 22:16)
 

напрашивается

<input type=hidden name=id_client value="<?= $_GET['id_client'?>" />

где-то среди формы.

   
 
 автор: DreadfulS   (25.10.2006 в 00:17)   письмо автору
 
   для: Trianon   (25.10.2006 в 00:05)
 

и это к сожалению тоже не помогло

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования