|
|
|
| У меня в базе имеется десяток таблиц.
В зависимости по какой ссылке переходит пользователь происходит пердача методом гет Названия таблицы.
Загвоздка в том что название таблицы у меня в переменной и я не знаю как её поставить
в строчку $st_select = mysql_query(“SELECT * FROM Здесь переменная”,$db);
Ниже скрипт как я делаю, но всегда выходит надпись таблица не надена
<?
if (isset($_GET['st'])) {$st=$_GET['st'];}
if (!isset($st)) {$st=eror;}
?>
<?
$podrazdelfotoalbomurl = '/'.$st.'';
echo "$podrazdelfotoalbomurl";
$sttable="gallery$st"; //Это нужно чтобы выбрать только таблицы с началом gallery
$st_select = mysql_query(“SELECT * FROM $sttable”,$db);
if ($st_select=='true') { echo 'захватил таблицу'.$sttable;}
else {echo 'Ошибка таблица'.$sttable.'не найдена';}
?> | |
|
|
|
|
|
|
|
для: BlueWolf
(24.05.2010 в 13:18)
| | 1. иногда вызов mysql_query полезно менять на вызов echo . Просто чтобы видеть, что же Вы пытаетесь истребовать от SQL-сервера.
2. У Вас заблокирован вывод диагностик. Ошибок в скрипте Вы не видите.
3. подобного рода методика составления запроса открывает замечательную дыру для уязвимости SQL-injection. | |
|
|
|
|
|
|
|
для: Trianon
(24.05.2010 в 13:27)
| | При помощи echo проверрил
echo "SELECT * FROM $sttable"
Вывел на экран вместо $sttable название таблицы которая мне нужна.
Мне кажется в $st_select = mysql_query("SELECT * FROM $sttable",$db);
переменная $sttable воспринимается как текст $sttable
2 про какие заблокированные ошибки вы говорили.
насколько я знаю ошибки блокируют вот так : $st_select = @mysql_query("SELECT * FROM $sttable",$db);
Ставя собачку. | |
|
|
|
|
|
|
|
для: BlueWolf
(24.05.2010 в 14:07)
| | 1.
$sql = "SELECT * FROM $sttable";
echo $sql;
$st_select = mysql_query($sql, $db);
if(!$st_select) exit("<br>".mysql_error());
|
2. мало знаете.
error_reporting должен быть E_ALL | |
|
|
|