Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: не могу понять как составить запрос.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
notamn
Отправлено: 18 Февраля, 2012 - 14:36:08
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)




я написал вотт это для получения из БД списка таблиц, а затем для вывода состава этих таблиц с заголовками колонок:
PHP:
скопировать код в буфер обмена
  1.  
  2.         if ($_GET['cat']) //если значение cat существует то...
  3.         {
  4.                 $page = $_GET['cat']; // имя таблицы
  5.                                 // выбираем имена поей из таблицы cat
  6.                 $fields = mysql_list_fields("DB_name", "$page");
  7.                 $columns = mysql_num_fields($fields);
  8.                 $select = mysql_query("select * from $page");
  9.                
  10.                 echo'<table class=tablet colspan=0><tr class=tabletr>';
  11.                 for ($i=0; $i<$columns; $i++) // выводим шапку таблицы(список имен полей)
  12.                         {
  13.                                 $col1 = mysql_field_name($fields,$i);
  14.                                 echo'
  15.                                         <td class=tabletd>'.$col1.'</td>
  16.                                 ';
  17.                         }
  18.                         echo'</tr>';
  19.                
  20.                 while ($row = mysql_fetch_array($select)) // выводим данные из таблицы
  21.                 {
  22.                         echo'<tr>';
  23.                                 for($i=0; $i<$columns; $i++)
  24.                                 {
  25.                                         $col = mysql_field_name($fields,$i);
  26.                                         $rownl2br = nl2br($row[$col]);
  27.                                         echo
  28.                                         '<td>
  29.                                             <td class=tabletd><a href="index.php?hfield='.$rownl2br.'&tab='.$page.'&col1='.$col.'">'.$rownl2br.'</a></td>
  30.                                         ';
  31.                                 }
  32.                         echo'</tr>';
  33.                 }
  34.                 echo'</table>';
  35.         }
  36. if ($_GET['hfield'])
  37.         {
  38.                 $tab = $_GET['tab'];//название таблицы
  39.                
  40.                 $cell = $_GET['hfield'];// имя колонки
  41.                
  42.                 $col1 = $_GET['col1'];//содержание ячейки
  43.                
  44.                 echo '<br>'.$col1.'  - colname';//эти переменные
  45.                
  46.                 echo '<br>'.$cell.'  - cell';//нормально
  47.                
  48.                 echo '<br>'.$tab.'   - table';//отображаются
  49.                
  50.                
  51.                 $search = "select * FROM '$tab' WHERE '$col1' = '$cell'";
  52.  
  53.                 $res = mysql_query($search);
  54.                 while ($row = mysql_fetch_array($res)) //здесь ошибка
  55.                 {
  56.                         $id = $row[$col1];
  57.                         echo $id.'<br>';
  58.                 }
  59.         }
  60.  
  61.  
  62.  


мне постоянно выдается ошибка в этой строке
ошибка такая:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /yorsite.ru/edit.php on line 59
Подскажите пожалста если кто знает в чем беда? Спасибо.
 
 Top
DelphinPRO
Отправлено: 18 Февраля, 2012 - 15:18:53
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




после Посмотреть какую ошибку выдает БД. Разобраться самому, или написать текст ошибки сюда.
(Добавление)
Возможно ошибка в прямых кавычках в названиях тадлицы и поля. Следует писать обратные апострофы.
PHP:
скопировать код в буфер обмена
  1. $search = "select * FROM `$tab` WHERE `$col1` = '$cell'";

(Отредактировано автором: 18 Февраля, 2012 - 15:19:27)



-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Symby
Отправлено: 18 Февраля, 2012 - 16:43:27
Post Id



Гость


Покинул форум
Сообщений всего: 70
Дата рег-ции: Февр. 2012  
Откуда: Пермь


Помог: 1 раз(а)





хм, вроде же надо так

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

(Отредактировано автором: 18 Февраля, 2012 - 16:45:28)



-----
Пишу немного о электронной музыке > http://techno-arena[dot]ru
 
 Top
notamn
Отправлено: 18 Февраля, 2012 - 18:09:38
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)




Цитата:

Возможно ошибка в прямых кавычках в названиях тадлицы и поля. Следует писать обратные апострофы.
PHP:
скопировать код в буфер обмена
  1. $search = "select * FROM `$tab` WHERE `$col1` = '$cell'";


Да спасибо. Помогло.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB