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

Форум MySQL

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

 

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

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

тема: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in
 
 автор: Lelik   (16.07.2006 в 00:15)   письмо автору
 
 

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in
Чего это значит?

   
 
 автор: cheops   (16.07.2006 в 00:25)   письмо автору
 
   для: Lelik   (16.07.2006 в 00:15)
 

Скорее всего ошибка в SQL-запросе, сразу после выполенения функции mysql_error() выполняйте проверку на ошибки SQL-запроса
<?php
  $res 
mysql_query($query);
  if(!
$res) exit("Ошибка - ".mysql_error());
?>

   
 
 автор: Lelik   (16.07.2006 в 00:27)   письмо автору
 
   для: cheops   (16.07.2006 в 00:25)
 

у меня такой код -

<?php
 $query 
"SELECT * FROM vacansy WHERE cat_id=".$_GET['id']." ORDER BY pos";
 
$result mysql_query($query).mysql_error();
 if(
$result)
  {
     while(
$cat mysql_fetch_array($result))
        {...

Но я брал название таблицы копировал и мышью вставлял в запрос. и поля аналогично

   
 
 автор: cheops   (16.07.2006 в 00:31)   письмо автору
 
   для: Lelik   (16.07.2006 в 00:27)
 

Хм... не уверен, что это удачный способ
<?php
 $result 
mysql_query($query).mysql_error();
?>

лучше проверьте дескрипто явно и выведите содержимое mysql_error() в окно браузера.

   
 
 автор: Lelik   (16.07.2006 в 00:35)   письмо автору
 
   для: cheops   (16.07.2006 в 00:31)
 


<?php 
 
if(!$result) exit("Ошибка - ".mysql_error()); 
?>

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

   
 
 автор: Lelik   (16.07.2006 в 01:23)   письмо автору
 
   для: Lelik   (16.07.2006 в 00:35)
 


Ошибка - You have an error in your SQL syntax near 'ORDER BY 'pos'' at line 2

А это чего значит ?

   
 
 автор: RV   (16.07.2006 в 03:06)   письмо автору
 
   для: Lelik   (16.07.2006 в 01:23)
 

значит нет там такого поля как pos

   
 
 автор: Lelik   (16.07.2006 в 03:33)   письмо автору
 
   для: RV   (16.07.2006 в 03:06)
 

Как так нет, а если оно есть?

CREATE TABLE 'vacansy' (
  'id' int NOT NULL auto_increment,
  'emp' enum('nomatter','full','notfull','free','home') NOT NULL default 'nomatter',
  'speciality' text NOT NULL ,
  'from_age' text NOT NULL,
  'to_age' text NOT NULL,
  'zarplata' text NOT NULL,
  'comment' text not null,
  'sex' enum('man','wom', 'non') NOT NULL default 'non',
  'city' text NOT NULL,
  'contact_name' text NOT NULL,
  'contact_org' text NOT NULL,
  'contact_email' text NOT NULL,
  'phone' text NOT NULL ,
  'active' enum('yes','no') NOT NULL default 'yes', 
  'date' DATETIME not null,
  'pos' int not null,
  'cat_id' int not null,
  PRIMARY KEY  ('id'),
  KEY ('cat_id')
) TYPE=MyISAM; 

вот таблица из БД

   
 
 автор: cheops   (16.07.2006 в 09:48)   письмо автору
 
   для: Lelik   (16.07.2006 в 01:23)
 

Это означает, что у вас ошибка перед конструкцией ORDER BY, скорее всего $_GET['id'] - принимает пустое значение.

   
 
 автор: Lelik   (16.07.2006 в 16:30)   письмо автору
 
   для: cheops   (16.07.2006 в 09:48)
 

>скорее всего $_GET['id'] - принимает пустое значение.
А почему так?

   
 
 автор: cheops   (16.07.2006 в 16:33)   письмо автору
 
   для: Lelik   (16.07.2006 в 16:30)
 

Сложно сказать... кода на руках нет... Выведите его перед выполением запроса
<?php
  
echo "id - ".$_GET['id']."<br>";
?>

чтобы проверить так ли это.

   
 
 автор: Lelik   (16.07.2006 в 16:46)   письмо автору
 
   для: cheops   (16.07.2006 в 16:33)
 

вот скрипт

<?php
 
include "config.php";
 
?>
   <table border="1">
   <tr>
     <td colspan=17>
        <a href="<?php echo 'vacaddform.php?id='.$_GET['id']; ?>">Добавить вакансию</a><br>
        <a href="index.php">К управлению разделами</a><br>
        <a href="mail.php">Управление рассылкой</a>
     </td>
   </tr>
   <tr>
     <td>Вакансия</td>
     <td>Описание</td>
     <td>Зарплата</td>
     <td>Возраст</td>
     <td>Пол</td>
     <td>Город</td>
     <td>Занятость</td>
     <td>Имя работодателя</td>
     <td>Орг работодателя</td>
     <td>E-mail работодателя</td>
     <td>Тел работодателя</td>
     <td>Дата</td>
     <td>Статус</td>
     <td>Позиция</td>  
     <td colspan='3'>Действие</td>
   </tr>
 <?php  
 $query 
"SELECT * FROM vacansy WHERE cat_id=".$_GET['id'].
                                 ORDER BY 'pos'"
;
 
$result = @mysql_query($query);
 if(!
$result) exit("Ошибка - ".mysql_error());
 if(
$result)
  {
     while(
$cat = @mysql_fetch_array($result))
        {
          if(
$cat['active'] == 'no'
             { 
                
$showhide '<a href="vacactive.php?id='.$cat["id"].'&cat='.$cat["cat_id"].'">Сделать активной</a>';
                
$status "Раздел неактивен";
             }
          else
             { 
                
$showhide '<a href="vacdizactive.php?id='.$cat["id"].'&cat='.$cat["cat_id"].'">Сделать неактивной</a>';
                
$status "Раздел активен";
             }
          if(
$cat['sex']=='man'$sex 'Мужчина';
          elseif(
$cat['sex'] == 'wom'$sex 'Женщина';
          elseif(
$cat['sex'] == 'non'$sex 'Не имеет значения';
          if(
$cat['emp']=='nomatter'$emp 'Не имеет значения';
          elseif(
$cat['sex'] == 'full'$emp 'Полная';
          elseif(
$cat['sex'] == 'notfull'$emp 'Не полная';
          elseif(
$cat['sex'] == 'free'$emp 'Свободный график';
          elseif(
$cat['sex'] == 'home'$sex 'Работа на дому';   
          echo 
'<tr>';
          echo 
'<td>'.$cat["speciality"].'</td>';
          echo 
'<td>'.$cat["comment"].'</td>';
          echo 
'<td>'.$cat["zarplata"].'</td>';
          echo 
'<td>'.$cat["from_age"].' - '.$cat["to_age"].'</td>';
          echo 
'<td>'.$sex.'</td>';
          echo 
'<td>'.$cat["city"].'</td>';
          echo 
'<td>'.$emp.'</td>';
          echo 
'<td>'.$cat["contact_name"].'</td>';
          echo 
'<td>'.$cat["contact_org"].'</td>';
          echo 
'<td>'.$cat["contact_email"].'</td>';
          echo 
'<td>'.$cat["phone"].'</td>';
          echo 
'<td>'.$cat["date"].'</td>';
          echo 
'<td>'.$status.'</td>';
           echo 
'<td>'.$cat["pos"].'</td>';
          echo 
'<td><a href="vaceditform.php?id='.$cat["id"].'&cat='.$cat["cat_id"].'">Редактировать</a></td>';
          echo 
'<td>'.$showhide.'</td>';
          echo 
'<td><a href="vacdelete.php?id='.$cat["id"].'&cat='.$cat["cat_id"].'">Удалить</a></td>';
          echo 
'</tr>';          
       }
     }   
   
?>
 </table>

после выполнения вот этих глючит

<?php
  
include "config.php";
  
$query "SELECT * FROM vacansy WHERE cat_id=".$_GET['cat']." AND id=".$_GET['id'];
  
$result = @mysql_query($query);
  if(!
$result) exit("Ошибка - ".mysql_error());
  if(
$result)
     {
       
$pos = @mysql_fetch_array($result);
       
$numb $pos['pos'];
     }
  else 
$numb "0";   
  if(
$pos['active'] == 'yes'$active 'checked';
  else 
$active="";
?>
<form action="vacedit.php" method="post">
 Вакансия : <input name="vac" type="text" value="<?= $pos['speciality']?>"> <br>
 Описание : <textarea name="comment" rows=5 cols=20 ><?= $pos['comment']?></textarea><br>
 Зарплата : <input name="zarp" type="text" value="<?= $pos['zarplata']?>"> <br>
 Возраст от :<input name="min_age" type="text" value="<?= $pos['from_age']?>"> до <input name="max_age" type="text" value="<?= $pos['to_age']?>"><br>
 Пол <select size="1" name="sex">
         <option value="man">Мужской</option>
         <option value="wom">Женский</option>
         <option value="non">Не имеет значения</option>
     </select><br>             
 Город : <input name="city" type="text" value="<?= $pos['city']?>"> <br>
 Занятость <select size="1" name="emp">
         <option value="nomatter">Не имеет значения</option>
         <option value="full">Полная</option>
         <option value="notfull">Не полная</option>
         <option value="free">Свободный график</option>
         <option value="home">Работа на дому</option>
     </select><br>
 Имя рботодателя : <input name="name" type="text" value="<?= $pos['contact_name']?>"> <br>
 Орг работодателя :  <input name="org" type="text" value="<?= $pos['contact_org']?>"> <br>
 E-mail работодателя : <input name="email" type="text" value="<?= $pos['contact_email']?>"> <br>
 Тел работодателя :  <input name="phone" type="text" value="<?= $pos['phone']?>"> <br>    
 Позиция : <input name="pos" type="text" value="<?= $numb ?>"> <br>
 <input name="active" type="checkbox" <?= $active ?>> Отображать<br>

 <?php
 
if($pos['pos'] == ""$pos['pos'] = 0;
 
?>
 <input name="max" type="hidden" value="<?= $pos['pos']?>">
 <input name="cat" type="hidden" value="<?= $_GET['id']?>"> 
 <input type="submit" value="Добавить">
 
</form>

и его обработчик

<?php
  
include "config.php";
  
  
$_POST['vac'] = trim(htmlspecialchars(stripslashes($_POST['vac'])));
  
$_POST['comment'] = trim(htmlspecialchars(stripslashes($_POST['comment']))); 
  
$_POST['zarp'] = trim(htmlspecialchars(stripslashes($_POST['zarp'])));
  
$_POST['min_age'] = trim(htmlspecialchars(stripslashes($_POST['min_age'])));
  
$_POST['max_age'] = trim(htmlspecialchars(stripslashes($_POST['max_age'])));
  
$_POST['sex'] = trim(htmlspecialchars(stripslashes($_POST['sex'])));
  
$_POST['city'] = trim(htmlspecialchars(stripslashes($_POST['city'])));
  
$_POST['emp'] = trim(htmlspecialchars(stripslashes($_POST['emp'])));
  
$_POST['name'] = trim(htmlspecialchars(stripslashes($_POST['name'])));
  
$_POST['org'] = trim(htmlspecialchars(stripslashes($_POST['org'])));
  
$_POST['email'] = trim(htmlspecialchars(stripslashes($_POST['email'])));
  
$_POST['phone'] = trim(htmlspecialchars(stripslashes($_POST['phone'])));
  
$_POST['pos'] = trim(htmlspecialchars(stripslashes($_POST['pos'])));
  
$_POST['active'] = trim(htmlspecialchars(stripslashes($_POST['active'])));
  
$_POST['max'] = trim(htmlspecialchars(stripslashes($_POST['max'])));
  
$_POST['cat'] = trim(htmlspecialchars(stripslashes($_POST['cat'])));
  

  if(empty(
$_POST['pos']))
     {
        
$pos 1
     }
  else
    
$pos =  $_POST['pos'];  
  if(
$_POST['active'] == "on"$showhide 'yes';
  else 
$showhide 'no';
  
  
$query "UPDATE vacancy SET   emp = '".$_POST['emp']."',
                                 speciality = '"
.$_POST['vac']."',
                                 from_age = '"
.$_POST['min_age']."',
                                 to_age = '"
.$_POST['max_age']."',
                                 zarplata = '"
.$_POST['zarp']."',
                                 comment = '"
.$_POST['comment']."',
                                 sex = '"
.$_POST['sex']."',
                                 city = '"
.$_POST['city']."',
                                 contact_name = '"
.$_POST['name']."',
                                 contact_org = '"
.$_POST['org']."',
                                 contact_email = '"
.$_POST['email']."',
                                 phone = '"
.$_POST['phone']."',
                                 active = '"
.$showhide."',
                                 pos = '"
.$_POST['pos']."',   
                                 WHERE cat_id='"
.$_POST['cat']."' AND id=".$_POST['id'];
  
$result mysql_query($query);
  
$query "SELECT * FROM vacanc WHERE pos=".$_POST['pos']." AND cat_id=".$_POST['cat'];
  
$result = @mysql_query($query);
  if(
$result$s mysql_fetch_array($result);
  if(@
mysql_num_rows($result) > 1)
   
$result = @mysql_query("UPDATE category SET pos=pos+1 WHERE cat_id=".$_GET['cat']." AND id!=".$_POST['id']." AND pos>=".$s['pos']);
  else
     echo 
'<html><head><meta http-equiv="Refresh" content="0; url=vacancy.php?id='.$_GET['cat'].'"></head></html>';  
  if(
$result)
     echo 
'<html><head><meta http-equiv="Refresh" content="0; url=vacancy.php?id='.$_GET['cat'].'"></head></html>';
  else 
     echo 
'error';         
?>

   
Rambler's Top100
вверх

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