Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Условный оператор SELECT
 
 автор: Vadim777   (18.08.2005 в 13:15)   письмо автору
 
 

Помогите, как сделать вывод инфы из базы?
посетитель выбирает рубрику("com", "pro", "mon") , через select/option и три окошка с водимыми ключевыми словами.
первое название('name), второе - цена('para'), третье - инфа, телефон ("firma").
Как сделать запрос
"select * from ".$_POST['searchtype']. а как связать , что если цена <=цена("para") или если телефон, или название такое, то
$result ?

   
 
 автор: cheops   (18.08.2005 в 13:49)   письмо автору
 
   для: Vadim777   (18.08.2005 в 13:15)
 

"select * from ".$_POST['searchtype']." WHERE цена <= $_POST[para] AND phone = '$_POST[phone]'"

Вообще хорошо если бы вы привели структуру таблицы, полученную при помощи оператора SHOW CREATE TABLE и написали более чётко параметры поиска.

   
 
 автор: Vadim777   (18.08.2005 в 13:58)   письмо автору
 
   для: cheops   (18.08.2005 в 13:49)
 

customerid int(10) UNSIGNED Нет auto_increment
name char(30) Нет //название, параметры
para char(40) Нет //цена
firma char(20) Нет //данные
такие поля имеют все таблицы
Т.е. посетитель вводит рубрику/ таблицу через выпадающее окно, и в трех полях формы вводит параметры(которые соответствуют полям таблицы) : название, цена до, или телефон. Обязательным является только выбор рубрики. Т.е. 'para' <= $_POST[para]?

   
 
 автор: Axxil   (18.08.2005 в 15:32)   письмо автору
 
   для: 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);
// и т.д.
?>

   
 
 автор: Vadim777   (18.08.2005 в 17:25)   письмо автору
 
   для: 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>';
}
?>

   
 
 автор: Axxil   (18.08.2005 в 17:37)   письмо автору
 
   для: Vadim777   (18.08.2005 в 17:25)
 

кавычки в именах полей не надо ставить
<?
.."'para'<= ".$_POST['para']; //- не правильно
.." para <= '".$_POST['para']."'"// -правильно
?>


А вот значения строкового типа как раз надо обрамлять кавычками

PS Да, если пишите здесь код, обрамляйте его плиз тегами |code| |/code|.
Намного легче разбираться

   
 
 автор: Vadim777   (18.08.2005 в 17:45)   письмо автору
 
   для: Axxil   (18.08.2005 в 17:37)
 

Я исправил но не работает, где то у меня ошибка в общем, не состыковки запроса с выводом.

   
 
 автор: Axxil   (18.08.2005 в 17:53)   письмо автору
 
   для: Vadim777   (18.08.2005 в 17:45)
 

Нет, такая ошибка появляется когда не правильный запрос. сделайте echo $sql
и выложите здесь что получилось

   
 
 автор: Vadim777   (18.08.2005 в 18:31)   письмо автору
 
   для: 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
Назад

   
 
 автор: Киналь   (18.08.2005 в 19:53)   письмо автору
 
   для: Vadim777   (18.08.2005 в 18:31)
 

Кха... Он имел в виду в РНР...

   
 
 автор: Vadim777   (18.08.2005 в 20:09)   письмо автору
 
   для: Киналь   (18.08.2005 в 19:53)
 

Какой стыд!!

   
 
 автор: Axxil   (19.08.2005 в 09:49)   письмо автору
 
   для: Vadim777   (18.08.2005 в 20:09)
 

:)

   
 
 автор: Vadim777   (19.08.2005 в 11:03)   письмо автору
 
   для: 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).'. &#205;Название: ';
echo htmlspecialchars(stripslashes($row['name']));
echo '</strong><br />цена: ';
echo stripslashes($row['para']);
echo '<br />информация: ';
echo stripslashes($row['firma']);
echo '</p>';
}
?>

И совсем глупые вопросы: где ставить <code> , echo $sql?

   
 
 автор: Axxil   (19.08.2005 в 12:21)   письмо автору
 
   для: Vadim777   (19.08.2005 в 11:03)
 

У вас в коде перед строчкой $query=mysql_query($sql); поставьте echo $sql;
запустите, посмотрите что выведет и этот текст скопируйте сюда.
насчёт code. Вы когда пишите сообщение посмотрите чуть выше поля ввода там есть "используйте теги для выделения текста: код: ... "
Выделите в поле ввода код обрамлённый <? ?> и нажмите на ссылку |code||/code|

   
 
 автор: Vadim777   (19.08.2005 в 13:27)   письмо автору
 
   для: 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);

   
 
 автор: Vadim777   (19.08.2005 в 13:30)   письмо автору
 
   для: Axxil   (19.08.2005 в 12:21)
 


<?SELECT FROM pro WHERE para<= '' and name=''
Warningmysql_num_rows(): supplied argument is not a valid MySQL result resource in ?>

   
 
 автор: Axxil   (19.08.2005 в 14:49)   письмо автору
 
   для: Vadim777   (19.08.2005 в 13:30)
 

Вот!!! А где значения para и name? Форма их не передаёт почему-то.
Приатачьте плиз всю страницу с формой и обработчиком

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования