|
|
|
| Помогите, как сделать вывод инфы из базы?
посетитель выбирает рубрику("com", "pro", "mon") , через select/option и три окошка с водимыми ключевыми словами.
первое название('name), второе - цена('para'), третье - инфа, телефон ("firma").
Как сделать запрос
"select * from ".$_POST['searchtype']. а как связать , что если цена <=цена("para") или если телефон, или название такое, то
$result ? | |
|
|
|
|
|
|
|
для: Vadim777
(18.08.2005 в 13:15)
| |
"select * from ".$_POST['searchtype']." WHERE цена <= $_POST[para] AND phone = '$_POST[phone]'"
|
Вообще хорошо если бы вы привели структуру таблицы, полученную при помощи оператора SHOW CREATE TABLE и написали более чётко параметры поиска. | |
|
|
|
|
|
|
|
для: cheops
(18.08.2005 в 13:49)
| | customerid int(10) UNSIGNED Нет auto_increment
name char(30) Нет //название, параметры
para char(40) Нет //цена
firma char(20) Нет //данные
такие поля имеют все таблицы
Т.е. посетитель вводит рубрику/ таблицу через выпадающее окно, и в трех полях формы вводит параметры(которые соответствуют полям таблицы) : название, цена до, или телефон. Обязательным является только выбор рубрики. Т.е. 'para' <= $_POST[para]? | |
|
|
|
|
|
|
|
для: Vadim777
(18.08.2005 в 13:58)
| | Это достигается постепенным прибавление к запросу уточняющих конструкций
вида and namefield=value в зависимости от того пустое ли соответствующее поле в форме
<?
$sql="select * from ".$_POST['searchtype']." where para<= ".$_POST[para];
if(!empty($_POST[name]))
$sql.=" and name='".$_POST['name']."'";
if(!empty($_POST[firma]))
$sql.=" and firma='".$_POST['firma']."'";
$query=mysql_query($sql);
// и т.д.
?>
|
| |
|
|
|
|
|
|
|
для: Axxil
(18.08.2005 в 15:32)
| | Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in z:\home\localhost\www\site\result.comp.lviv.php on line 52
Я где-то ошибся. Денвер выдает ошибку.
mysql_select_db('comp');
$sql="select * from ".$_POST['searchtype']." where 'para'<= ".$_POST['para'];
if(!empty($_POST['name']))
$sql.=" and 'name'='".$_POST['name']."'";
if(!empty($_POST['firma']))
$sql.=" and 'firma'='".$_POST['firma']."'";
$query=mysql_query($sql);
$result = mysql_query($query);
$num_results = mysql_num_rows($result);
echo '<p>Результат: '.$num_results.'</p>';
for ($i=0; $i <$num_results; $i++)
{
$row = mysql_fetch_array($result);
echo '<p><strong>'.($i+1).'. Название: ';
echo htmlspecialchars(stripslashes($row['name']));
echo '</strong><br />цена: ';
echo stripslashes($row['para']);
echo '<br />Информация: ';
echo stripslashes($row['firma']);
echo '</p>';
}
?> | |
|
|
|
|
|
|
|
для: Vadim777
(18.08.2005 в 17:25)
| | кавычки в именах полей не надо ставить
<?
.."'para'<= ".$_POST['para']; //- не правильно
.." para <= '".$_POST['para']."'"; // -правильно
?>
|
А вот значения строкового типа как раз надо обрамлять кавычками
PS Да, если пишите здесь код, обрамляйте его плиз тегами |code| |/code|.
Намного легче разбираться | |
|
|
|
|
|
|
|
для: Axxil
(18.08.2005 в 17:37)
| | Я исправил но не работает, где то у меня ошибка в общем, не состыковки запроса с выводом. | |
|
|
|
|
|
|
|
для: Vadim777
(18.08.2005 в 17:45)
| | Нет, такая ошибка появляется когда не правильный запрос. сделайте echo $sql
и выложите здесь что получилось | |
|
|
|
|
|
|
|
для: Axxil
(18.08.2005 в 17:53)
| | БД comp на localhost
Ошибка
SQL-запрос :
echo$sql
Ответ MySQL:
You have an error in your SQL syntax near 'echo $sql' at line 1
Назад | |
|
|
|
|
|
|
|
для: Vadim777
(18.08.2005 в 18:31)
| | Кха... Он имел в виду в РНР... | |
|
|
|
|
|
|
|
для: Киналь
(18.08.2005 в 19:53)
| | Какой стыд!! | |
|
|
|
|
|
|
|
для: Vadim777
(18.08.2005 в 20:09)
| | :) | |
|
|
|
|
|
|
|
для: Axxil
(19.08.2005 в 09:49)
| | Люди!!! может кто-то увидит ошибку, заранее благодарю.
$searchtype = addslashes($searchtype);
@ $db = mysql_pconnect('localhost', 'root', '');
if (!$db)
{
echo ошибка, невозможно установить соединение с базой';
exit;
}
mysql_select_db('comp');
$sql="SELECT * FROM ".$_POST['searchtype']." WHERE para<= '".$_POST['para']."'";
if(!empty($_POST['name']))
$sql.=" and name='".$_POST['name']."'";
if(!empty($_POST['firma']))
$sql.=" and firma='".$_POST['firma']."'";
$query=mysql_query($sql);
$result = mysql_query($query);
$num_results = mysql_num_rows($result);
echo '<p>Результат: '.$num_results.'</p>';
for ($i=0; $i <$num_results; $i++)
{
$row = mysql_fetch_array($result);
echo '<p><strong>'.($i+1).'. ÍНазвание: ';
echo htmlspecialchars(stripslashes($row['name']));
echo '</strong><br />цена: ';
echo stripslashes($row['para']);
echo '<br />информация: ';
echo stripslashes($row['firma']);
echo '</p>';
}
?>
И совсем глупые вопросы: где ставить <code> , echo $sql? | |
|
|
|
|
|
|
|
для: Vadim777
(19.08.2005 в 11:03)
| | У вас в коде перед строчкой $query=mysql_query($sql); поставьте echo $sql;
запустите, посмотрите что выведет и этот текст скопируйте сюда.
насчёт code. Вы когда пишите сообщение посмотрите чуть выше поля ввода там есть "используйте теги для выделения текста: код: ... "
Выделите в поле ввода код обрамлённый <? ?> и нажмите на ссылку |code||/code| | |
|
|
|
|
|
|
|
для: Axxil
(19.08.2005 в 12:21)
| | SELECT * FROM pro WHERE para<= ''
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in
указываеться строчка -
$num_results = mysql_num_rows($result); | |
|
|
|
|
|
|
|
для: Axxil
(19.08.2005 в 12:21)
| |
<?SELECT * FROM pro WHERE para<= '' and name=''
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in ?>
|
| |
|
|
|
|
|
|
|
для: Vadim777
(19.08.2005 в 13:30)
| | Вот!!! А где значения para и name? Форма их не передаёт почему-то.
Приатачьте плиз всю страницу с формой и обработчиком | |
|
|
|