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
----- Правильный вопрос - уже половина правильного ответа!
p.s. индусы повсюду, будьте осторожны!
JoStalin
Отправлено: 23 Июля, 2013 - 16:24:04
Новичок
Покинул форум
Сообщений всего: 11
Дата рег-ции: Июнь 2013
Помог: 0 раз(а)
В переменной названия таблиц, если выводить их на экран, то будут по порядку названия всех таблиц данной бд (Добавление)
var_dump выводит вот такой результат, user название таблицы, userstring(20) "SELECT * FROM `user`" (Добавление)
сразу уточняю имена таблиц выводятся правильно, цикл тоже работает как надо, проблема лишь в синтаксисе sql запроса, а именно в переменной в этом запросе (Добавление)
На всякий случай дублирую вопрос, Как правильно вставить переменную в конец 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]."` "
В общем по всякому, но работать не хочет.
imya
Отправлено: 23 Июля, 2013 - 16:38:52
Участник
Покинул форум
Сообщений всего: 1472
Дата рег-ции: Сент. 2012 Откуда: Запорожье, Украина
Помог: 19 раз(а)
Если не хочет работать, то какие ошибки пишет?
В вашем массиве должны быть названия таблиц, как вам уже сказали. Вы сделали var_dump($ret) ?
Когда нормальный человек, уезжая из дома одевает на жену пояс верности, веб-дизайнер ставит на нее счетчик...
JoStalin
Отправлено: 24 Июля, 2013 - 09:26:03
Новичок
Покинул форум
Сообщений всего: 11
Дата рег-ции: Июнь 2013
Помог: 0 раз(а)
повторяюсь var_dump выводит вот такой результат, user название таблицы, userstring(20) "SELECT * FROM `user`", ошибки выводит такие Warning: Illegal string offset 'answer_1' in C:\xampp\htdocs\Interface_777\shtuka_2.php on line 53, Notice: Undefined index: answer_1 in C:\xampp\htdocs\Interface_777\shtuka_2.php on line 53, но они связаны с отсутсвием данных в массиве который должен содержать данные из бд, а так как имя таблицы(она же злополучная переменная) в запросе на эти данные я не могу указать правильно то и данные в массив не попадают. Если прописать в запросе просто имя таблицы, не в переменной а текстом, то все работает как надо.
imya
Отправлено: 24 Июля, 2013 - 09:43:25
Участник
Покинул форум
Сообщений всего: 1472
Дата рег-ции: Сент. 2012 Откуда: Запорожье, Украина
Помог: 19 раз(а)
А зачем вообще такие извращения, пользвольте поинтересоваться?
выводит имена необходимых мне таблиц user user2 user3.
Что вы имеете ввиду под извращениями? Я просто с помощью циклов последовательно вывожу в таблицу на страничке браузера все данные из всех таблиц в указанной бд, если есть вариант проще и лучше предложите пожалуйста, я новичок в этом деле.
imya
Отправлено: 24 Июля, 2013 - 10:07:26
Участник
Покинул форум
Сообщений всего: 1472
Дата рег-ции: Сент. 2012 Откуда: Запорожье, Украина
Помог: 19 раз(а)
Есть вариант попроще: одним запросом выбирайте данные из всех таблиц.
этот вариант сейчас попробую, хотя от моего он принципиально не особо отличается, понимаю что это оффтопик, но повторюсь проблем со списком таблиц у меня нет, при выводе массива с именами получается то что нужно, проблема только во вставке элементов этого массива в sql запрос.
soffrick
Отправлено: 24 Июля, 2013 - 10:21:37
Посетитель
Покинул форум
Сообщений всего: 379
Дата рег-ции: Май 2012 Откуда: Россия, Москва
Помог: 17 раз(а)
JoStalin пишет:
этот вариант сейчас попробую, хотя от моего он принципиально не особо отличается, понимаю что это оффтопик, но повторюсь проблем со списком таблиц у меня нет, при выводе массива с именами получается то что нужно, проблема только во вставке элементов этого массива в sql запрос.
----- Правильный вопрос - уже половина правильного ответа!
p.s. индусы повсюду, будьте осторожны!
JoStalin
Отправлено: 24 Июля, 2013 - 11:02:10
Новичок
Покинул форум
Сообщений всего: 11
Дата рег-ции: Июнь 2013
Помог: 0 раз(а)
Дебажить не пробовал, так как каких то конкретных ошибок именно по sql запросу не выдает. пока не могу обьеденить твой код со своим, хотя я думаю это ничего не поменяет. (Добавление)
soffrick пишет:
JoStalin пишет:
этот вариант сейчас попробую, хотя от моего он принципиально не особо отличается, понимаю что это оффтопик, но повторюсь проблем со списком таблиц у меня нет, при выводе массива с именами получается то что нужно, проблема только во вставке элементов этого массива в sql запрос.
по поводу обращения к элементам массива, то в цикле выборки имен таблиц у меня указано что нужно составлять именно нумерованный массив, соответственно обращаться к элементам массивов нужно именно по номерам while($row = mysql_fetch_array($r, MYSQL_NUM))
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.