задание в SELECT имени таблицы переменной
Здравствуйте!
есть код: if (!$_POST["submitted"]) { echo "<form action='' method='POST'> <hЗ>Выберите тип изделия:</h3> <select name='cat'> <option value='vaza'>Вазы</option> <option value='vazon'>Вазоны</option> </select> <input type='submit' name='submitted' value='ok'> </form>"; } /*-------------------------*/ else { echo "Вы выбрали: <br>"; echo $_POST["cat"]; } $categ=$_POST["cat"]; include("blocks/bd.php");/*Соединяемся с базой данных*/ $result = mysql_query("SELECT * FROM $categ"); $myrow = mysql_fetch_array($result); do { echo "<br>"; echo ($myrow['title']); } while ($myrow = mysql_fetch_array($result)); в первой части формируется выпадающий список и ожидаем клика на "ОК". После "Выберите тип изделия:" появляется 2 сообщения: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in K:\home\localhost\www\lemberg\admin\add_item_glina .php on line 25 Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in K:\home\localhost\www\lemberg\admin\add_item_glina .php on line 31 Во второй части пытаюсь из таблицы, которой присваиваю имя переменной $categ, выбрать все элементы 'title'.Выбираю из списка и кликаю "ОК". Все сообщения об ошибках пропадают, происходит выбор из базы всех значений таблицы. Вопрос: что приводит к ошибкам? первое сообщение уходит еслиудалить 25-ую строку. второе: если явно задать имя таблицы в SELECT. Заранее благодарю за отклик. |
Закрывающая скобка else должна быть в конце _всего_ блока обработки запроса.
|
Заменить:
$result = mysql_query("SELECT * FROM $categ"); на: $result = mysql_query("SELECT * FROM `$categ`"); |
Не, надо сразу
$categ='`'.$_POST["cat"].'`'; или function tk() { return '`' . join('`.`', func_get_args()) . '`'; } $categ=tk($_POST["cat"]); |
Цитата:
mysql_real_escape_string($_POST['cat']); |
Ни разу не попали профессор. Курите ману по real_escape_string()
|
Часовой пояс GMT +3, время: 20:45. |