Надо сделать поиск. Все есть, вот только не знаю как сделать так что бы можно было выбрать все (в даном случае разделы). Вот форма: PHP: <form id="form1" name="form1" method="post" action="search.php"> <table width="1011" border="0" cellspacing="0" cellpadding="0"> <tr> <th width="472" scope="col"><?php include ("mysql.php"); $query = mysql_query ("SELECT id, title FROM sections ORDER BY title"); echo "<select name='section' id='section'>"; while (list ($section_id, $title) = mysql_fetch_array ($query)) echo "<option value=$section_id>$title</option>"; echo "</select>"; ?> </th> <th width="140" scope="col"> <select name="type" id="type"> <option>Предложение</option> <option>Спрос</option> <option>Обмен</option> <option>Сдам</option> <option>Сниму</option> <option>Разное</option> </select></th> <th width="332" scope="col"><label> <input name="search" type="text" id="search" size="50" /> </label></th> <th width="67" scope="col"><label> <input type="submit" name="Submit" value="Искать" /> </label></th> </tr> </table> </form> Вот скрипт который обрабатывает форму: PHP: <?php include ("mysql.php"); $search = $_POST ['search']; $query = mysql_query ("SELECT id, section, type, text, name, email, date FROM announcements WHERE section = '$section', type = '$type' text LIKE '%$search%'"); while (list ($id, $section, $type, $text, $name, $email, $date) = mysql_fetch_array ($query)) { echo "<table width='300' border ='1' >"; echo "<tr>"; echo "<td width='150'>$type</td><td><div align='right'>$date</div></td>"; echo "</tr>"; echo "</table>"; echo "<table width='300' border ='1'>"; echo "<tr>"; echo "<td>$text</td>"; echo "</tr>"; echo "</table>"; echo "<table width='300' border ='1'>"; echo "<tr>"; echo "<td width='150'>$name</td><td><div align='right'><a href='mailto:$email'>$email</div></td>"; echo "</table>"; echo "<br>"; } ?> Нужно что бы можно было выбрать все разделы (типы). Заранее спасибо. Надеюсь на скорую помощь.
Именно "все" или "несколько"? Если все, то просто добавь в селект на форме опцию "все" и переводи ее в * если несколько - используй "select multiply" Или я не понял вопроса?
Ну поставь опцию "все" и при ее появлении в $_POST формируй запрос без лишнего выражения в WHERE Что-то типа PHP: $use_sections = $section == "all"?"section = ' $section,'":""; $use_types= $type == "all"?"type = ' $type,'":""; $query_str = "SELECT id, section, type, text, name, email, date FROM announcements WHERE".$use_sections.$use_types."text LIKE '%$search%'" $query = mysql_query ("$query_str");
Вот появилась еще одна проблема. При поиске мне надо разбить результаты на страницы. Вот весь скрипт: PHP: PHP: <?php include ("mysql.php"); $search = $_POST ['search']; $s_section = $_POST ['section']; $s_type = $_POST ['type']; $query1 = mysql_query ("SELECT section, type, text, name, email, date FROM announcements WHERE section = '$s_section' and type = '$s_type' and text LIKE '%$search%'"); $allnum = mysql_num_rows ($query1); if(!isset($_GET['page'])) $page = 1; else $page = ($_GET['page']); $on_page = 1; $begin = ($page - 1) * $on_page; $num_pages = ceil ($allnum / $on_page); $query = mysql_query ("SELECT section, type, text, name, email, date FROM announcements WHERE section = '$s_section' and type = '$s_type' and text LIKE '%$search%' LIMIT $begin, $on_page"); while (list ($section, $type, $text, $name, $email, $date) = mysql_fetch_array ($query)) { echo "<table width='300' border ='1' >"; echo "<tr>"; echo "<td width='150'>$type</td><td><div align='right'>$date</div></td>"; echo "</tr>"; echo "</table>"; echo "<table width='300' border ='1'>"; echo "<tr>"; echo "<td>$text</td>"; echo "</tr>"; echo "</table>"; echo "<table width='300' border ='1'>"; echo "<tr>"; echo "<td width='150'>$name</td><td><div align='right'><a href='mailto:$email'>$email</div></td>"; echo "</tr>"; echo "</table>"; echo "<br>"; } for($i=0;$i<$num_pages;$i++) { $pages = $i+1; echo "<a href=?page=$pages>$pages</a> "; } ?> Ссылки на страницы выводит. Но при перехлде на любую страницу результат уже не отображаеться. В чем проблема и что мне делать? Спасибо. // следующий раз будьте добры сами обрамлять код соответствующими bb-тэгами. Luge
есть запрос COUNT(*) для подсчёта количества элементов страницу передаёшь, а условия поиска откуда скрипт узнает?
5 wmz или попробуй посмотреть что из себя ссылки страниц представляют на других поисковиках и подумай
Да ну у меня все деньги требуют . Вот на гугле http://www.google.com/search?client=ope ... 8&oe=utf-8 ток я в этом ничего не шарю. Помоги пожалуйста.
вот этот во все навигационные ссылки и пихает тебе тоже надо PHP: <?php echo '<a href=?page='.$pages.'&search='.urlencode($search).'>'.$pages.'</a>'; ?> и на следующей странице брать из GET то, что надо искать, предварительно обработав urldecode()
dark-demon, она не маленькая, она далеко просто (в тупичёк загнал, от чужих рук подальше ) Можешь себе ведёрко нацедить
А можно оюьяснить что к чему, ведь мне не надо просто код, я хочу разобраться. Вот моя ася 499 147 889. Luge если тебе не сложно то свяжись по асе. Так я больше пойму. Доставать не буду, обещаю)
Обьясните что это такое? А то я ниче не понимаю. И что мне надо изменить в моем скрипте. Вдруг это второй Гугл))
Это URL. К нему методом get добавлено значение q="что искал-то?". q на секретном языке гуглов означает query. Это у окошка, в которое ты вбиваешь запрос, имя такое - q. Яндексы вместо этого используют слово text. На секретном языке яндексов это значит "текст". Происходит это слово от имени окошка куда ты вбиваешь запрос в Яндексе Тогда используй секрентый язык гуглов и не лезь к яндексам...