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 :: Поиск по MySql

 PHP.SU

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


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

> Без описания
mellem
Отправлено: 19 Сентября, 2006 - 14:36:40
Post Id



Новичок


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


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




Помогите кто уже делал чтото подобное

из файла find.php

CODE (text):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. include 'c.php';
  4. echo head("&#207;&#238;&#232;&#241;&#234;");
  5. echo lpanel();
  6.  
  7. $findit=$_POST['find'];
  8. $in=$_POST['in'];
  9. if($find) {
  10.  if($in=='catalog') {
  11.    $q="select id, name, text, pic from catalog";
  12.    $q=mysql_query($q) or die(me(mysql_error()));
  13.    while($r=mysql_fetch_assoc($q)) if(stristr($r['name'], $find) or stristr($r['title'], $find)) catalog($r['id'], $r['name'], $r['text'], $r['pic'], $find);
  14.  
  15.  } elseif($in=='site') {
  16.    $q="select id, title, text from content";
  17.    $q=mysql_query($q) or die(me(mysql_error()));
  18.    while($r=mysql_fetch_assoc($q)) if(stristr($r['text'], $find)) echo "<a href='pages.php?page={$r['id']}'>{$r['title']}</a>
  19.           ";
  20.  
  21. }
  22. } else {
  23. echo "
  24.  
  25. <form action='find.php' method='post'>
  26. &#207;&#238;&#232;&#241;&#234; &#239;&#238;:
  27. <input type='radio' name='in' value='site' /> &#241;&#224;&#233;&#242;
  28. <input type='radio' name='in' value='catalog' /> &#234;&#224;&#242;&#224;&#235;&#238;&#227;
  29. <input style='width: 100%;' type='text' name='find' value='' />
  30. <input type='submit' name='find' value='&#200;&#241;&#234;&#224;&#242;&#252;' />
  31. </form>
  32. ";
  33. }
  34. echo fin();
  35. ?>
  36.  


Суть такая форма с возможностью поиска по сайту и по коталогу

вот чтото не пашет тока Огорчение

 
 Top
evgenijj
Отправлено: 19 Сентября, 2006 - 14:55:11
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


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




А что за странная переменная $find в качестве условия для if. Я так понимаю, никакого поиска и не будет, потому что условие всегда FALSE (если register_globals=Off).
 
 Top
UserID
Отправлено: 19 Сентября, 2006 - 22:28:59
Post Id



Магистр JavaScript


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


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




mellem пишет:
Помогите кто уже делал чтото подобное...


$q=mysql_query($q) - не используй в качестве идентификатора запроса переменную запроса.

для получения содержимого ячеек записи в таблице я бы воспользовался mysql_fetch_array(), т.е.:

CODE (text):
скопировать код в буфер обмена
  1.  
  2.  
  3. $query = mysql_query($zapros);
  4. if(!$query) { die("Fuck..."); }
  5.  
  6. $count = mysql_fetch_array($query);
  7. if(!$count) { die("Fuck..."); }
  8.  
  9. echo $count[id]."<br />";
  10. echo $count[name]."<br />";
  11. echo $count[city]."<br />";
  12.  
  13.  


для поиска полезно получить кол-во записей в таблице через:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. $rows = mysql_num_rows($query);
  3. for($i = 0; $i<=$rows; $i++)
  4. {
  5.        // TODO
  6. }
  7.  


ну дальше сам.

(Добавление)
evgenijj пишет:
А что за странная переменная $find в качестве условия для if. Я так понимаю, никакого поиска и не будет, потому что условие всегда FALSE (если register_globals=Off).


этим он хотел сказать, что $find - имя его сабмита. Поиск будет в принципе и при отключённом register_globals.
 
 Top
evgenijj
Отправлено: 20 Сентября, 2006 - 12:47:44
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


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




Цитата:

(Добавление)
evgenijj пишет:
А что за странная переменная $find в качестве условия для if. Я так понимаю, никакого поиска и не будет, потому что условие всегда FALSE (если register_globals=Off).


этим он хотел сказать, что $find - имя его сабмита. Поиск будет в принципе и при отключённом register_globals.[/quote]

Позвольте небольшой кусок кода:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. $findit=$_POST['find'];
  4. $in=$_POST['in'];
  5. echo "Переменная find=".$find."<br>";
  6. if($find)
  7. {
  8.         echo "Поиск";
  9. }
  10. else
  11. {
  12.         echo "<form action='find.php' method='post'>
  13.         <input type='radio' name='in' value='site' />Site
  14.         <input type='radio' name='in' value='catalog' />Catalog
  15.                 <input type='text' name='find' value='' />
  16.         <input type='submit' name='find' value='Search' />
  17.         </form>";
  18. }
  19. ?>
  20.  


По мысли автора проверка if($find) должна защитить скрипт от поиска пустой строки. Это я так думаю. Но при register_globals=Off эта переменная Undefined, что трактуется PHP как FALSE. Вот результат работы этого скрипта:

CODE (text):
скопировать код в буфер обмена
  1.  
  2. Notice: Undefined index: find in C:worklocalhostwwwfind.php on line 2
  3. Notice: Undefined index: in in C:worklocalhostwwwfind.php on line 3
  4. Notice: Undefined variable: find in C:worklocalhostwwwfind.php on line 4
  5. Переменная find=
  6. Notice: Undefined variable: find in C:worklocalhostwwwfind.php on line 6
  7. // Здесь выводится форма
  8.  


Откровенно говоря, я и не заметил, что автор присвоил двум переменным в форме одинаковые имена - find. В этом случае при register_globals=On скрипт всегда будет искать одну и ту же строку "Search"
 
 Top
UserID
Отправлено: 20 Сентября, 2006 - 14:15:17
Post Id



Магистр JavaScript


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


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




evgenijj пишет:

Позвольте небольшой кусок кода:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. <?php
  3. $findit=$_POST['find'];
  4. $in=$_POST['in'];
  5. echo "Переменная find=".$find."<br>";
  6. if($find)
  7. {
  8.         echo "Поиск";
  9. }
  10. else
  11. {
  12.         echo "<form action='find.php' method='post'>
  13.         <input type='radio' name='in' value='site' />Site
  14.         <input type='radio' name='in' value='catalog' />Catalog
  15.                 <input type='text' name='find' value='' />
  16.         <input type='submit' name='find' value='Search' />
  17.         </form>";
  18. }
  19. ?>
  20.  

Откровенно говоря, я и не заметил, что автор присвоил двум переменным в форме одинаковые имена - find. В этом случае при register_globals=On скрипт всегда будет искать одну и ту же строку "Search"


мда, действительно...\n\n(Добавление)
Хотя я не думаю что register_globals = on - будет приемлемым вариантом решения. глобальные переменные можно и без этого получать.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB