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 :: Переменная в sql запросе на php

 PHP.SU

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


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

> Описание: Название
JoStalin
Отправлено: 23 Июля, 2013 - 12:47:17
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Июнь 2013  


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




Как правильно вставить переменную в конец sql запроса. Пробовал уже по разному.
Вот код в котором запрос:
$j=0;
$ret = array();
$r = mysql_query("SHOW TABLES");
while($row = mysql_fetch_array($r, MYSQL_NUM))
{
$ret[] = $row[0];
print_r($ret[$j]);
//$query = "SELECT * FROM `'$ret[$j]'`";
$result_1 = mysql_query("SELECT * FROM ".$ret[2]);

$j++;
Пробовал вот так:
"SELECT * FROM ".$ret[$j]
"SELECT * FROM ".$ret[$j]." "
"SELECT * FROM '.$ret[$j].' "
"SELECT * FROM `".$ret[$j]."` "
В общем по всякому, но работать не хочет.
 
 Top
quinlena
Отправлено: 26 Июля, 2013 - 13:17:16
Post Id


Частый гость


Покинул форум
Сообщений всего: 157
Дата рег-ции: Апр. 2012  
Откуда: Казахстан


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




PHP:
скопировать код в буфер обмена
  1. "select * from '".$ret[$j]."' "
  2.  
  3.  

Соединение с базой есть? Лучше всего добавить после запроса $link или как у вас называется подключение
 
 Top
DelphinPRO
Отправлено: 26 Июля, 2013 - 13:22:26
Post Id



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


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


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




PHP:
скопировать код в буфер обмена
  1. $query = "SELECT * FROM `{$ret[$j]}`";


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
soffrick
Отправлено: 26 Июля, 2013 - 13:25:38
Post Id



Посетитель


Покинул форум
Сообщений всего: 379
Дата рег-ции: Май 2012  
Откуда: Россия, Москва


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





CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM `$tableName`


-----
Правильный вопрос - уже половина правильного ответа!

p.s. индусы повсюду, будьте осторожны!
 
 Top
JoStalin
Отправлено: 26 Июля, 2013 - 13:26:41
Post Id


Новичок


Покинул форум
Сообщений всего: 11
Дата рег-ции: Июнь 2013  


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




quinlena пишет:
PHP:
скопировать код в буфер обмена
  1. "select * from '".$ret[$j]."' "
  2.  
  3.  

Соединение с базой есть? Лучше всего добавить после запроса $link или как у вас называется подключение

Соединение устанавливается, mysql_connect("localhost", "user", "password");
mysql_select_db("otvet");
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");.
Имена таблиц выводятся через print_r($ret[$j]);
Все работает, кроме запроса к базе с использованием имен таьлиц полученных ранее, может тип данных не подходит?

(Отредактировано автором: 26 Июля, 2013 - 13:28:51)

 
 Top
soffrick
Отправлено: 26 Июля, 2013 - 13:33:02
Post Id



Посетитель


Покинул форум
Сообщений всего: 379
Дата рег-ции: Май 2012  
Откуда: Россия, Москва


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




JoStalin
DEBUG IS HARDCORE AND IMPOSSIBLE!!!!
PHP:
скопировать код в буфер обмена
  1. $tables = mysql_query("SHOW TABLES");
  2. $data = array();
  3. while($table = mysql_fetch_row($tables))
  4. {
  5.         $res = mysql_query("SELECT * FROM {$table[0]}");
  6.         while($row = mysql_fetch_assoc($res))
  7.         {
  8.                 $data[$table[0]][] = $row;
  9.         }
  10. }
  11. printr($data);

PHP:
скопировать код в буфер обмена
  1. (
  2.     [poll] => Array
  3.         (
  4.             [0] => Array
  5.                 (
  6.                     [id] => 1
  7.                     [question] => Сколько будет 2х2?
  8.                     [answer] => 4
  9.                 )
  10.  
  11.         )
  12.  
  13.     [posts] => Array
  14.         (
  15.             [0] => Array
  16.                 (
  17.                     [id] => 1
  18.                     [topic_id] => 1
  19.                     [author_id] => 1
  20.                     [message] => Ура, сайт заработал!
  21.                     [date] => 1369889250
  22.                 )
  23.  
  24.             [1] => Array
  25.                 (
  26.                     [id] => 2
  27.                     [topic_id] => 1
  28.                     [author_id] => 3
  29.                     [message] => Ура!
  30.                     [date] => 1369889330
  31.                 )
  32.  
  33.         )
  34.  
  35.     [topics] => Array
  36.         (
  37.             [0] => Array
  38.                 (
  39.                     [id] => 1
  40.                     [forum_id] => 1
  41.                     [author_id] => 1
  42.                     [title] => maintopic
  43.                     [date] => 1369811080
  44.                     [visits] => 0
  45.                 )
  46.  
  47.             [1] => Array
  48.                 (
  49.                     [id] => 2
  50.                     [forum_id] => 3
  51.                     [author_id] => 1
  52.                     [title] => offtop
  53.                     [date] => 1369811160
  54.                     [visits] => 10
  55.                 )
  56.  
  57.         )
  58.  
  59. )

(Добавление)
Цитата:
может тип данных не подходит?

нет, прослойка между монитором и креслом не подходит


-----
Правильный вопрос - уже половина правильного ответа!

p.s. индусы повсюду, будьте осторожны!
 
 Top
quinlena
Отправлено: 26 Июля, 2013 - 13:34:54
Post Id


Частый гость


Покинул форум
Сообщений всего: 157
Дата рег-ции: Апр. 2012  
Откуда: Казахстан


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




JoStalin пишет:
quinlena пишет:
PHP:
скопировать код в буфер обмена
  1. "select * from '".$ret[$j]."' "
  2.  
  3.  

Соединение с базой есть? Лучше всего добавить после запроса $link или как у вас называется подключение

Соединение устанавливается, mysql_connect("localhost", "user", "password");
mysql_select_db("otvet");
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");.
Имена таблиц выводятся через print_r($ret[$j]);
Все работает, кроме запроса к базе с использованием имен таьлиц полученных ранее, может тип данных не подходит?



А вот так `".$ret[$j]."`
 
 Top
soffrick
Отправлено: 26 Июля, 2013 - 13:39:32
Post Id



Посетитель


Покинул форум
Сообщений всего: 379
Дата рег-ции: Май 2012  
Откуда: Россия, Москва


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




PHP:
скопировать код в буфер обмена
  1. $r = mysql_query("SHOW TABLES");
  2. while($row = mysql_fetch_row($r))
  3. {
  4.         $ret = $row[0];
  5.         $result_1 = mysql_query("SELECT * FROM $ret");
  6.         while($qmnc = mysql_fetch_row($result_1))
  7.         {
  8.                 printr($qmnc);
  9.         }
  10. }

(Добавление)
JoStalin
PHP:
скопировать код в буфер обмена
  1. $j=0;
  2. $ret = array();
  3. $ret[] = $row[0];
  4. $j++;

ну что ты делаешь???????
(Добавление)
PHP:
скопировать код в буфер обмена
  1. $r = mysql_query("SHOW TABLES");
  2. $j = array();
  3. while($row = mysql_fetch_row($r))
  4. {
  5.         $ret = $row[0];
  6.         $result_1 = mysql_query("SELECT * FROM $ret");
  7.         while($qmnc = mysql_fetch_row($result_1))
  8.         {
  9.                 $j[] = $qmnc;
  10.         }
  11. }
  12. printr($j);

(Отредактировано автором: 26 Июля, 2013 - 13:42:00)



-----
Правильный вопрос - уже половина правильного ответа!

p.s. индусы повсюду, будьте осторожны!
 
 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