Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Велоси-поиск

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Поиск по бд
maragon
Отправлено: 03 Июня, 2011 - 15:30:24
Post Id



Посетитель


Покинул форум
Сообщений всего: 340
Дата рег-ции: Февр. 2011  


Помог: 2 раз(а)




Мой первый поиск.
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <div class="box">
  3.                                         <blockquote>
  4.                                         <h2>Что ищем? а? </h2>
  5.                                         <?PHP
  6.                                         $words = mysql_real_escape_string($_GET['keywords']); ?>
  7.                                         <a href="?keywords=<?PHP echo $words; ?>&search=people"><font size="6">Люди</font></a>
  8.                                         &nbsp;&#8594;&nbsp;
  9.                                         <a href="?keywords=<?PHP echo $words; ?>&search=blog"><font size="5">Блоги</font></a>
  10.                                         &nbsp;&#8594;&nbsp;
  11.                                         <a href="?keywords=<?PHP echo $words; ?>&search=history"><font size="4">Истории</font></a>
  12.                                         &nbsp;&#8594;&nbsp;
  13.                                         <a href="?keywords=<?PHP echo $words; ?>&search=music"><font size="3">Музыка</font></a>
  14.                                         &nbsp;&#8594;&nbsp;
  15.                                         <a href="?keywords=<?PHP echo $words; ?>&search=club"><font size="2">Сообщества</font></a>
  16.                                         <br>
  17.                                         <?PHP
  18.                                         $search = mysql_real_escape_string($_GET['search']);
  19.                                         $sort = mysql_real_escape_string($_GET['sort']);
  20.                                         //Что ищем (где)
  21.                                         switch($search){
  22.                                         case "people" :
  23.                                         $sql = "SELECT * from `mir_users` WHERE `login` LIKE '%$words%'";
  24.                                         $query = "SELECT COUNT(*) as num FROM `mir_users` WHERE `login` LIKE '%$words%'";
  25.                                         break;
  26.                                         case "blog" :
  27.                                         $sql = "SELECT * from `mir_blogs` WHERE `name` LIKE '%$words%'";
  28.                                         $query = "SELECT COUNT(*) as num FROM `mir_blogs` WHERE `name` LIKE '%$words%'";
  29.                                         break;
  30.                                         case "history" :
  31.                                         $sql = "SELECT * from `mir_historys` WHERE `name` LIKE '%$words%'";
  32.                                         $query = "SELECT COUNT(*) as num FROM `mir_historys` WHERE `name` LIKE '%$words%'";
  33.                                         break;
  34.                                         case "music" : $sql = "SELECT * from `mir_musics` WHERE `name` LIKE '%$words%'";
  35.                                         $query = "SELECT COUNT(*) as num FROM `mir_musics` WHERE `name` LIKE '%$words%'";
  36.                                         break;
  37.                                         case "club" : $sql = "SELECT * from `mir_clubs` WHERE `name` LIKE '%$words%'";
  38.                                         $query = "SELECT COUNT(*) as num FROM `mir_clubs` WHERE `name` LIKE '%$words%'";
  39.                                         break;
  40.                                         default : $sql = "
  41.                                         (SELECT `login` FROM `mir_users` WHERE `login` LIKE '%$words')
  42.                                                 UNION
  43.                                         (SELECT `name` FROM `mir_musics` WHERE `name` LIKE '%$words')
  44.                                                 UNION
  45.                                         (SELECT `name` FROM `mir_blogs` WHERE `name` LIKE '%$words')
  46.                                                 UNION
  47.                                         (SELECT `name` FROM `mir_historys` WHERE `name` LIKE '%$words')
  48.                                                 UNION
  49.                                         (SELECT `name` FROM `mir_clubs` WHERE `name` LIKE '%$words')";
  50.                                         break; //получается, что выводит все данные
  51.                                         }
  52.                                         //Как сортируем SQL
  53.                                         if($search == "people"){
  54.                                         switch($sort){
  55.                                         case "1" : $sort = " ORDER by `n` ASC"; break;
  56.                                         case "2" : $sort = " ORDER by `n` DESC"; break;
  57.                                         case "3" : $sort = " ORDER by `login` ASC"; break;
  58.                                         case "4" : $sort = " ORDER by `login` DESC"; break;
  59.                                         default : $sort = ""; //выведет все
  60.                                         }
  61.                                         }
  62.                                         if($search == "blog"){
  63.                                         switch($sort){
  64.                                         case "1" : $sort = " ORDER by `id` ASC"; break;
  65.                                         case "2" : $sort = " ORDER by `id` DESC"; break;
  66.                                         case "3" : $sort = " ORDER by `name` ASC"; break;
  67.                                         case "4" : $sort = " ORDER by `name` DESC"; break;
  68.                                         default : $sort = ""; //выведет все
  69.                                         }
  70.                                         }
  71.                                         if($search == "music"){
  72.                                         switch($sort){
  73.                                         case "1" : $sort = " ORDER by `id` ASC"; break;
  74.                                         case "2" : $sort = " ORDER by `id` DESC"; break;
  75.                                         case "3" : $sort = " ORDER by `name` ASC"; break;
  76.                                         case "4" : $sort = " ORDER by `name` DESC"; break;
  77.                                         default : $sort = ""; //выведет все
  78.                                         }
  79.                                         }
  80.                                         if($search == "history"){
  81.                                         switch($sort){
  82.                                         case "1" : $sort = " ORDER by `id` ASC"; break;
  83.                                         case "2" : $sort = " ORDER by `id` DESC"; break;
  84.                                         case "3" : $sort = " ORDER by `name` ASC"; break;
  85.                                         case "4" : $sort = " ORDER by `name` DESC"; break;
  86.                                         default : $sort = ""; //выведет все
  87.                                         }
  88.                                         }
  89.                                         echo ("Сортировать:&nbsp;");
  90.                                         //Выод линков HTML
  91.                                         if($search == "people"){
  92.                                         echo ("<a href='?keywords=".$words."&search=people&sort=1'>по номеру ^</a>");
  93.                                         echo("&nbsp;|&nbsp;");
  94.                                         echo ("<a href='?keywords=".$words."&search=people&sort=2'>по номеру .</a>");
  95.                                         echo("&nbsp;|&nbsp;");
  96.                                         echo ("<a href='?keywords=".$words."&search=people&sort=3'>по логину ^</a>");
  97.                                         echo("&nbsp;|&nbsp;");
  98.                                         echo ("<a href='?keywords=".$words."&search=people&sort=4'>по логину .</a>");
  99.                                         echo("&nbsp;");
  100.                                         }
  101.                                         if($search == "blog"){
  102.                                         echo ("<a href='?keywords=".$words."&search=blog&sort=1'>по номеру ^</a>");
  103.                                         echo("&nbsp;|&nbsp;");
  104.                                         echo ("<a href='?keywords=".$words."&search=blog&sort=2'>по номеру .</a>");
  105.                                         echo("&nbsp;|&nbsp;");
  106.                                         echo ("<a href='?keywords=".$words."&search=blog&sort=3'>по названию ^</a>");
  107.                                         echo("&nbsp;|&nbsp;");
  108.                                         echo ("<a href='?keywords=".$words."&search=blog&sort=4'>по названию .</a>");
  109.                                         echo("&nbsp;");
  110.                                         }
  111.                                         if($search == "music"){
  112.                                         echo ("<a href='?keywords=".$words."&search=music&sort=1'>по номеру ^</a>");
  113.                                         echo("&nbsp;|&nbsp;");
  114.                                         echo ("<a href='?keywords=".$words."&search=music&sort=2'>по номеру .</a>");
  115.                                         echo("&nbsp;|&nbsp;");
  116.                                         echo ("<a href='?keywords=".$words."&search=music&sort=3'>по названию ^</a>");
  117.                                         echo("&nbsp;|&nbsp;");
  118.                                         echo ("<a href='?keywords=".$words."&search=music&sort=4'>по названию .</a>");
  119.                                         echo("&nbsp;");
  120.                                         }
  121.                                         if($search == "history"){
  122.                                         echo ("<a href='?keywords=".$words."&search=history&sort=1'>по номеру ^</a>");
  123.                                         echo("&nbsp;|&nbsp;");
  124.                                         echo ("<a href='?keywords=".$words."&search=history&sort=2'>по номеру .</a>");
  125.                                         echo("&nbsp;|&nbsp;");
  126.                                         echo ("<a href='?keywords=".$words."&search=history&sort=3'>по названию ^</a>");
  127.                                         echo("&nbsp;|&nbsp;");
  128.                                         echo ("<a href='?keywords=".$words."&search=history&sort=4'>по названию .</a>");
  129.                                         echo("&nbsp;");
  130.                                         }
  131.                                         ?>
  132.                                         </blockquote>
  133.                                         <div class="boxContent">
  134.                                         <form action="" method="get">
  135.                                         <input type="text" name="keywords" value="<?PHP echo $words; ?>" size="65">
  136.                                         <input type="submit" class="button" value="Искать!">
  137.                                         </form>
  138.                                         <?PHP
  139.                                         echo ("".$sql." ".$sort."");
  140.                                         $targetpage = "XZ"; //Как вывести сюда GET?  
  141.                                         $limit = 3;
  142.                                         $total_pages = mysql_fetch_array(mysql_query($query));
  143.                                         $total_pages = $total_pages["num"];
  144.                                         $stages = 3;
  145.                                         $page = mysql_escape_string($_GET['page']);
  146.                                         if(!is_numeric($page)){$page = 1;}
  147.                                         if($page){
  148.                                                         $start = ($page - 1) * $limit;
  149.                                         }else{
  150.                                                         $start = 0;    
  151.                                                         }      
  152.                                         $query1 = "".$sql." ".$sort." LIMIT $start, $limit"; //общий
  153.                                         $result = mysql_query($query1);
  154.                                         $num = mysql_numrows($result);
  155.                                         if ($page == 0){$page = 1;}
  156.                                         $prev = $page - 1;      
  157.                                         $next = $page + 1;                                                      
  158.                                         $lastpage = ceil($total_pages/$limit);          
  159.                                         $LastPagem1 = $lastpage - 1;                                    
  160.                                         $paginate = '';
  161.                                         if($lastpage > 1)
  162.                                         {      
  163.                                                         $paginate .= "<div class='paginate'>";
  164.                                                         if ($page > 1){
  165.                                                                         $paginate.= "<a href='$targetpage&page=$prev'  style='text-decoration:none;font-size:14px;font-size:14px;'>&nbsp;сюда &#8592; &nbsp;&nbsp;</a>";
  166.                                                         }else{
  167.                                                                         $paginate.= "<span class='disabled'  style='text-decoration:none;font-size:14px;'>&nbsp;сюда &#8592;&nbsp;&nbsp;</span>";   }      
  168.                                                         if ($lastpage < 7 + ($stages * 2))
  169.                                                         {      
  170.                                                                         for ($counter = 1; $counter <= $lastpage; $counter++)
  171.                                                                         {
  172.                                                                                         if ($counter == $page){
  173.                                                                                                         $paginate.= "<span class='current'>$counter</span>";
  174.                                                                                         }else{
  175.                                                                                                         $paginate.= "<a href='$targetpage&page=$counter'style='text-decoration:none;'><b>$counter</b></a>";}                                        
  176.                                                                         }
  177.                                                         }
  178.                                                         elseif($lastpage > 5 + ($stages * 2))
  179.                                                         {
  180.                                                                         if($page < 1 + ($stages * 2))          
  181.                                                                         {
  182.                                                                                         for ($counter = 1; $counter < 4 + ($stages * 2); $counter++)
  183.                                                                                         {
  184.                                                                                                         if ($counter == $page){
  185.                                                                                                                         $paginate.= "<span class='current'>$counter</span>";
  186.                                                                                                         }else{
  187.                                                                                                                         $paginate.= "<a href='$targetpage&page=$counter'>$counter</a>";}                                        
  188.                                                                                         }
  189.                                                                                         $paginate.= "...";
  190.                                                                                         $paginate.= "<a href='$targetpage&page=$LastPagem1'>$LastPagem1</a>";
  191.                                                                                         $paginate.= "<a href='$targetpage&page=$lastpage'>$lastpage</a>";              
  192.                                                                         }
  193.                                                                         elseif($lastpage - ($stages * 2) > $page && $page > ($stages * 2))
  194.                                                                         {
  195.                                                                                         $paginate.= "<a href='$targetpage&page=1'>1</a>";
  196.                                                                                         $paginate.= "<a href='$targetpage&page=2'>2</a>";
  197.                                                                                         $paginate.= "...";
  198.                                                                                         for ($counter = $page - $stages; $counter <= $page + $stages; $counter++)
  199.                                                                                         {
  200.                                                                                                         if ($counter == $page){
  201.                                                                                                                         $paginate.= "<span class='current'>$counter</span>";
  202.                                                                                                         }else{
  203.                                                                                                                         $paginate.= "<a href='$targetpage&page=$counter'>$counter</a>";}                                        
  204.                                                                                         }
  205.                                                                                         $paginate.= "...";
  206.                                                                                         $paginate.= "<a href='$targetpage&page=$LastPagem1'>$LastPagem1</a>";
  207.                                                                                         $paginate.= "<a href='$targetpage&page=$lastpage'>$lastpage</a>";              
  208.                                                                         }
  209.                                                                         else
  210.                                                                         {
  211.                                                                                         $paginate.= "<a href='$targetpage&page=1' style='text-decoration:none;'>1</a>";
  212.                                                                                         $paginate.= "<a href='$targetpage&page=2' style='text-decoration:none;'>2</a>";
  213.                                                                                         $paginate.= "...";
  214.                                                                                         for ($counter = $lastpage - (2 + ($stages * 2)); $counter <= $lastpage; $counter++)
  215.                                                                                         {
  216.                                                                                                         if ($counter == $page){
  217.                                                                                                                         $paginate.= "<span class='current'>$counter</span>";
  218.                                                                                                         }else{
  219.                                                                                                                         $paginate.= "<a href='$targetpage&page=$counter' style='text-decoration:none;'>$counter</a>";}                                        
  220.                                                                                         }
  221.                                                                         }
  222.                                                         }                        
  223.                                                         if ($page < $counter - 1){
  224.                                                                         $paginate.= "<a href='$targetpage&page=$next' style='text-decoration:none;font-size:14px;'>&nbsp;&nbsp;&#8594; туда&nbsp;</a>";
  225.                                                         }else{
  226.                                                                         $paginate.= "<span class='disabled' style='text-decoration:none;font-size:14px;'>&nbsp;&nbsp;&#8594; туда&nbsp;</span>";
  227.                                                                         }
  228.                                                                        
  229.                                                         $paginate.= "</div>";
  230.                                                         }                                                      
  231.                                                         echo "<center>";
  232.                                                         echo "<h3>На этой странице показано: ".$num." элемента</h3><br>";
  233.                                                         echo "</center>";
  234.  
  235.                                                         while($row = mysql_fetch_array($result))
  236.                                                         {
  237.                                                         echo $row['name'];
  238.                                                         echo ("<br>");
  239.                                                         echo $row['login'];
  240.                                                         }
  241.                                                         echo $paginate;
  242.                                                        
  243.                                                 ?>
  244.                                         </div>

Ды не могу подключить кнопки <- сюда \\ туда -> кто поможет..
может укажите на ошибки.
Буду очень благодарен! Однако
(Добавление)
хм..вроде разобрался.
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $targetpage = $_SERVER['REQUEST_URI']; //Как вывести сюда GET?
  3.  

сделал так.
(Добавление)
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. (SELECT `login` FROM `mir_users` WHERE `login` LIKE '%$words')
  3.                                                 UNION
  4.                                         (SELECT `name` FROM `mir_musics` WHERE `name` LIKE '%$words')
  5.                                                 UNION
  6.                                         (SELECT `name` FROM `mir_blogs` WHERE `name` LIKE '%$words')
  7.                                                 UNION
  8.                                         (SELECT `name` FROM `mir_historys` WHERE `name` LIKE '%$words')
  9.                                                 UNION
  10.                                         (SELECT `name` FROM `mir_clubs` WHERE `name` LIKE '%$words')
  11.  

-- В этом моенте он меня стопорит..
errors : mysql_numrows(), fetch_array...
(Добавление)
up! help!


-----
https://vk[dot]com/tvoycase_ru - Твой чехол со своим дизайном
 
 Top
EuGen Администратор
Отправлено: 03 Июня, 2011 - 16:44:19
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




0. Скобки не нужны.
1. Используйте UNION ALL


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
maragon
Отправлено: 03 Июня, 2011 - 17:08:51
Post Id



Посетитель


Покинул форум
Сообщений всего: 340
Дата рег-ции: Февр. 2011  


Помог: 2 раз(а)




Спойлер (Отобразить)


Чутку подкорректировал код - но все же.. по 2 раза запросы (не хорошо думаю)
помогите кто силен, есть же тут такие! Хорошо

(Отредактировано автором: 03 Июня, 2011 - 17:46:52)



-----
https://vk[dot]com/tvoycase_ru - Твой чехол со своим дизайном
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB