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

Форум MySQL

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

 

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

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

тема: не обрабатывается запрос
 
 автор: sny_san   (20.11.2006 в 19:47)   письмо автору
 
 

написала запрос для обновления данных

$tab_name= "license";
$sql="UPDATE $tab_name SET series='".$_POST['series']."',number='".$_POST['number']."',
lic_name='".$_POST['lic_name']."',lic_desc='".$_POST['lic_desc']."'
WHERE lic_id=".$POST_['lic_id'];
// echo $sql;
//connect
$link= mysql_connect("localhost","root","");
mysql_select_db("basev1",$link);
mysql_query($sql, $link);
if (mysql_query($sql,$link))

print "ай-яй-яй";
он почему-то не обрабатывается, выодится то самое сообщение.
очень прошу помочь

   
 
 автор: Trianon   (20.11.2006 в 19:51)   письмо автору
 
   для: sny_san   (20.11.2006 в 19:47)
 

Попробуйте сперва написать так:

   if (mysql_query($sql,$link))
        print ("Всё ОК");
   else
        print ("ай-яй-яй: В запросе <br>$sql<br> ошибка:" . mysql_error());

   
 
 автор: sny_san   (20.11.2006 в 20:01)   письмо автору
 
   для: Trianon   (20.11.2006 в 19:51)
 

ай-яй-яй: В запросе
UPDATE license SET series='2',number='2', lic_name='2',lic_desc='221' WHERE lic_id=
ошибка: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 3

   
 
 автор: Trianon   (20.11.2006 в 20:03)   письмо автору
 
   для: sny_san   (20.11.2006 в 20:01)
 

Ошика в написании имени _POST
вместо
$POST_['lic_id'];
надо написать
$_POST['lic_id'];

   
 
 автор: sny_san   (20.11.2006 в 20:06)   письмо автору
 
   для: Trianon   (20.11.2006 в 20:03)
 

не помогает(( $_POST['lic_id']

   
 
 автор: Trianon   (20.11.2006 в 20:07)   письмо автору
 
   для: sny_san   (20.11.2006 в 20:06)
 

как выглядит форма?
И как выглядит запрос перед выполнением?
echo "<br>$sql<br>"; 

   
 
 автор: sny_san   (20.11.2006 в 20:04)   письмо автору
 
   для: Trianon   (20.11.2006 в 19:51)
 


... WHERE lic_id='".$POST_['lic_id']."' ";

все ОК
но, обновления данных не происходит

   
 
 автор: Trianon   (20.11.2006 в 20:06)   письмо автору
 
   для: sny_san   (20.11.2006 в 20:04)
 

А вот апострофы Вы зря добавили. Если идентификатор записи - число, делать этого совсем не надо.

   
 
 автор: sny_san   (20.11.2006 в 20:07)   письмо автору
 
   для: Trianon   (20.11.2006 в 20:06)
 

тогда запрос проглатывает

   
 
 автор: sny_san   (20.11.2006 в 20:09)   письмо автору
 
   для: sny_san   (20.11.2006 в 20:07)
 

вот полный текст страницы

<html>

<head>
  <title>Лицензии</title>
</head>

<body>
<h1> Таблица Лицензии.<br>Правка </h1>

<?php
if (!$_POST['sedit'])
{
$lic_id=$_POST['lic_id'];
$start=$_POST['start'];
$quedit="SELECT * FROM license WHERE lic_id=$lic_id;
 
$linkmysql_connect("localhost","root","");
     
mysql_select_db("basev1",$link);


$qed=mysql_query($quedit,$link);
  if (
$qed)
   {
   
$arrque=mysql_fetch_array($qed);
   }
  else echo 
"BIG ERROR MHAHAHA!!!";
}
?>
<a href="index.php">Главная</a><br>
  <?php
  
if ($_POST['sedit'])
  {
    
$_POST ['series']= trim($_POST ['series']);
    
$_POST ['number']= trim($_POST ['number']);
    
$_POST ['lic_name']= trim($_POST ['lic_name']);
    
$_POST ['lic_desc']= trim($_POST ['lic_desc']);

    
$_POST ['series']= strip_tags($_POST ['series']);
    
$_POST ['number']= strip_tags($_POST ['number']);
    
$_POST ['lic_name']= strip_tags($_POST ['lic_name']);
    
$_POST ['lic_desc']= strip_tags($_POST ['lic_desc']);
    if (!
$_POST ['series'])
    {  
$fehler"Введите серия лицензии<br>";
    }
    if (!
$_POST ['number'])
    {  
$fehler .= "Введите номер лицензии<br>";
    }
    if (!
$_POST ['lic_name'])
    {  
$fehler .= "Введите название лицензии<br>";
    }
    if (!
$_POST ['lic_desc'])
    {  
$fehler .= "Введите описание лицензии<br>";
    }

    if (
$fehler)
    {  
$meldung="<h2><font color=red>".$fehler."</font></h2>";
     unset (
$_POST['flag']);
    }
    else
    {  
$tab_name"license";
       
$sql="UPDATE $tab_name SET series='".$_POST['series']."',number='".$_POST['number']."',
       lic_name='"
.$_POST['lic_name']."',lic_desc='".$_POST['lic_desc']."'
       WHERE lic_id='"
.$_POST['lic_id']."' ";
       echo 
$sql;
     
//connect
       
$linkmysql_connect("localhost","root","");
       
mysql_select_db("basev1",$link);
       if (
mysql_query($sql,$link))
        print (
"Всё ОК");
        else
        print (
"ай-яй-яй: В запросе <br>$sql<br> ошибка:" mysql_error());
       
mysql_query($sql$link);
       
$meldung="<h2><font color=red>  </font></h2>" ;
       if (
mysql_query($sql,$link))
          {
          print 
"<html><head>\n";
          print 
"meta http-equiv='refresh'
          content='0; url=lic_view.php?start="
.$_POST["start"]."'>\n";
          print 
"</head></html>\n";
          }
      
//unset ($_POST);
  
}
  echo 
$meldung;
}
if(!
$_POST['sedit'])
 {
 
?>
 <table border="0" cellspacing="0" width="100%" cellpadding="0">
    <tr align="right">
      <td >
        <a class=link href="lic_view.php" title ="BackDep">
        Вернуться к просмотру</a>&nbsp;
        <a class=link href="index.php" title ="BackMain">
        Главная</a>
      </td>
      <td width = "10%">&nbsp
      </td>
    </tr>
</table>

<form action= "?" method="POST">
  <input type="hidden" name= "flag" value="1">
  <table border=1>
  <tr>
    <td>серия лицензии: &nbsp </td>
    <td><input type="text"  name= "series" value="<?php echo $arrque['series']; ?>"> </td>
  </tr>
  <tr>
    <td>номер лицензии: &nbsp </td>
    <td><input type="text"  name= "number" value="<?php echo $arrque['number']; ?>"> </td>
  </tr>
  <tr>
    <td>название лицензии: &nbsp </td>
    <td><input type="text"  name= "lic_name" value="<?php echo $arrque['lic_name']; ?>"></td>
  </tr>
  <tr>
    <td>описание лицензии: &nbsp </td>
    <td><input type="text"  name= "lic_desc" value="<?php echo $arrque['lic_desc']; ?>"></td>
  </tr>
  <tr align="right">
    <td colspan=2>
    <input type="submit" name="sedit" value="Сохранить изменения">
    </td></tr>
  </table>
</form>
<?php
  
}
?>

</body>

</html>

   
 
 автор: Trianon   (20.11.2006 в 20:14)   письмо автору
 
   для: sny_san   (20.11.2006 в 20:09)
 

А откуда идет обращение к этой странице?
параметр lic_id среди POST-параметров не задан. Может быть он передается как GET?

   
 
 автор: sny_san   (20.11.2006 в 20:19)   письмо автору
 
   для: Trianon   (20.11.2006 в 20:14)
 

нет, он передается как POST , т.к. в открывающейся форме присутствуют данные для изменения, а они получаются в самом начале скрипта по запросу с $_POST['lic_id']
$lic_id=$_POST['lic_id']

   
 
 автор: sny_san   (20.11.2006 в 20:22)   письмо автору
 
   для: Trianon   (20.11.2006 в 20:14)
 

при нажатии кнопки мне пишут
Таблица Лицензии.
Правка
Главная
UPDATE license SET series='2',number='2', lic_name='2',lic_desc='2fhsdkh' WHERE lic_id='' Всё ОК meta http-equiv='refresh' content='0; url=lic_view.php?start='>

(у меня стоит echo $sql;)

   
 
 автор: Trianon   (20.11.2006 в 20:35)   письмо автору
 
   для: sny_san   (20.11.2006 в 20:22)
 

Что ж. очень похоже. Попробуйте добавить скрытый параметр, как я показал.

   
 
 автор: Trianon   (20.11.2006 в 20:26)   письмо автору
 
   для: Trianon   (20.11.2006 в 20:14)
 

Он не передается далее в форму.
Чтобы передавался, нужно добавить скрытое поле с этим параметром:

<form action= "?" method="POST"> 
  <input type="hidden" name= "lic_id" value="<?php echo $lic_id?>
  <input type="hidden" name= "flag" value="1"> 

   
 
 автор: sny_san   (20.11.2006 в 20:42)   письмо автору
 
   для: Trianon   (20.11.2006 в 20:26)
 

поставила, не помогло
вроде пишет
Всё ОК meta http-equiv='refresh' content='0; url=lic_view.php?start='>
тока не обновляются данные

   
 
 автор: sny_san   (20.11.2006 в 20:43)   письмо автору
 
   для: Trianon   (20.11.2006 в 20:26)
 

<input type="hidden" name= "lic_id" value="<?php echo $lic_id; ?>">
и кавычку доставила даже

   
 
 автор: Trianon   (20.11.2006 в 20:49)   письмо автору
 
   для: sny_san   (20.11.2006 в 20:43)
 

Строку
$lic_id=$_POST['lic_id'];
нужно вынести выше if

<?php 
$lic_id
=$_POST['lic_id']; 
if (!
$_POST['sedit']) 

$start=$_POST['start']; 

   
 
 автор: sny_san   (20.11.2006 в 20:49)   письмо автору
 
   для: sny_san   (20.11.2006 в 20:43)
 

ОГРОМНОЕ СПАСТИБО ВАМ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!
в конце была глупейшая ошибка lis_id вместо lic_id
только не понимаю почему пишет Всё ОК meta http-equiv='refresh' content='0; url=lic_view.php?start='> откуда это meta http-.... вылазит
еще раз СПАСИБО!

   
 
 автор: Trianon   (20.11.2006 в 20:59)   письмо автору
 
   для: sny_san   (20.11.2006 в 20:49)
 


   if (mysql_query($sql,$link)) 
        print ("Всё ОК"); 
        else 
        print ("ай-яй-яй: В запросе <br>$sql<br> ошибка:" . mysql_error()); 
       mysql_query($sql, $link); 
       $meldung="<h2><font color=red>  </font></h2>" ; 
       if (mysql_query($sql,$link)) 

Из этого фрагмента видно, что один и тот же запрос Вы исполняете 3 раза. По-моему, это чересчур.
А парой строк ниже видно, откуда выходит мета. ТАм просто угловая скобка тега пропущена.

   
Rambler's Top100
вверх

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