Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2009.02.15;
Скачать: [xml.tar.bz2];

Вниз

Помогите исправить багу в скрипте поисковика   Найти похожие ветки 

 
xayam ©   (2008-08-30 11:10) [0]

http://xayam.900megs.com/
проблема такая. Короче если я ввожу в поле Пользователь значение "xayam" то все нормально - http://xayam.900megs.com/index.php?s=&pnumber=30&forum=&user=xayam . Заметьте что выводится две ветки из форума Базы. Так вот если добавить ограничение где искать "Базы", то отобразиться одна ветка - http://xayam.900megs.com/index.php?s=&pnumber=30&forum=%D0%91%D0%B0%D0%B7%D1%8B&user=xayam
В чем может быть проблема?

примерно такой код

     if (isset($_GET["pnumber"]) and $_GET["pnumber"] != "") $pnumber = $_GET["pnumber"]; else $pnumber = 30;
     if (isset($_GET["s"])) $s = $_GET["s"]; else $s = "";
     if (isset($_GET["user"])) $user = $_GET["user"]; else $user = "";
     if (isset($_GET["forum"])) $forum = $_GET["forum"]; else $forum = "";
     if (isset($_GET["page"])) $page = $_GET["page"]; else $page = 1;
     if (isset($_GET["order"])) $order = $_GET["order"]; else $order = "";

  $start = ($page - 1) * $pnumber + 1;
     if ($user == "") $myuser = 1; else $myuser = "LGN ="".$user.""";
  if ($forum == "") $myforum = 1; else $myforum = "DSC = "".$forum.""";
  if ($s == "") $against = 1; else $against = "match(TITLE) against("$s" IN BOOLEAN MODE)";

     $where = "where ($myuser) and ($myforum) and ($against)";
           $query = "select * from trd $where LIMIT $start, $pnumber";
  $query2= "select COUNT(ID_TRD) from trd $where";
  $tot   = mysql_query($query2);
 
          echo $query;  
          echo "<br />";
          echo $query2;
   
    if (!$tot) exit(mysql_error());
  $total = mysql_result($tot, 0);
  $number = (int)($total/$pnumber);
    if ((float)($total/$pnumber) - $number != 0) $number++;
    if ($total > 1)
    {  
           echo "<div>Найдено:  ".($total - 1);
  if ($forum != "") echo " на форуме ".""$forum"";
  echo "</div><div>Страницы:  ";
  //
  for ($i = 1; $i <= $number; $i++)
  {
             if ( fmod($i, 10) == 0.0 ) echo "<br />";
    if ($i != $number)
    {
      if ($page == $i) echo "[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."] ";
   else echo "<a href="index.php?page=".$i."&s=".urlencode($s)."&pnumber=".$pnumber."&forum=".url encode($forum)."&user=".urlencode($user)."">[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."]</a> ";
    } else
    {
      if ($page == $i) echo "[".(($i - 1)*$pnumber + 1)."-".($total - 1)."] ";
   else echo "<a href="index.php?page=".$i."&s=".urlencode($s)."&pnumber=".$pnumber."&forum=".url encode($forum)."&user=".urlencode($user)."">[".(($i - 1)*$pnumber + 1)."-".($total - 1)."]</a> ";
    }
  }
?>
</div>
<hr />

<?php

 // echo $count."<br/>";

     $result = mysql_query($query);
  //echo $query;
    $i = $start;
    echo "<table width="100%" border="0"><tr><th align="center" width="5%">Номер</th><th align="center" width="*">Вопрос</th><th align="center" width="5%">Ответов</th><th align="center" width="15%">Ник</th><th align="center" width="5%">Форум</th><th align="center" width="20%">Дата</th></tr>";
    if (!$result) exit(mysql_error());
    if (mysql_num_rows($result) > 0)
    while ($row = mysql_fetch_assoc($result))
    {
    echo "<tr><td width="5%" align="center">".$i.".</td>".
                      "<td width="*"><a target="_blank" href="html/html".$row["FOLDER"]."/".substr($row["FILENAME"], 0, strlen($row["FILENAME"]) - 3)."html">".$row["TITLE"]."</a></td>".
                      "<td width="5%" align="center"><font size="-2">".$row["CNT"]."</font></td>".
                      "<td width="15%" align="center">".$row["LGN"]."</td>".
                      "<td width="5%" align="center">".$row["DSC"]."</td>".
                      "<td width="20%" align="center"><font class="date">".$row["DT"]."</font></td>".
                   "</tr>";  
      $i++;
    }
    echo "</table>";
   
?>

<hr />
<div>Страницы:  
<?php
 
  for ($i = 1; $i <= $number; $i++)
  {
             if ( fmod($i, 10) == 0.0 ) echo "<br />";
    if ($i != $number)
    {
      if ($page == $i) echo "[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."] ";
   else echo "<a href="index.php?page=".$i."&s=".urlencode($s)."&pnumber=".$pnumber."&forum=".url encode($forum)."&user=".urlencode($user)."">[".(($i - 1)*$pnumber + 1)."-".$i*$pnumber."]</a> ";
    } else
    {
      if ($page == $i) echo "[".(($i - 1)*$pnumber + 1)."-".($total - 1)."] ";
   else echo "<a href="index.php?page=".$i."&s=".urlencode($s)."&pnumber=".$pnumber."&forum=".url encode($forum)."&user=".urlencode($user)."">[".(($i - 1)*$pnumber + 1)."-".($total - 1)."]</a> ";
    }
  }
  echo "</div>";
  } else
 if (isset($_GET["s"])) echo "<div align="center"><font color="red">Ничего не найдено!</font></div>";
?>



Страницы: 1 2 3 4 5 вся ветка

Форум: "Прочее";
Текущий архив: 2009.02.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.006 c
3-1214849398
arturich
2008-06-30 22:09
2009.02.15
Соединение с Oracle через Database Explorer


2-1230652389
ProgRAMmer Dimonych
2008-12-30 18:53
2009.02.15
Облом с созданием окна


2-1209619132
FoxikM
2008-05-01 09:18
2009.02.15
Как копировать файлы с "неправильным" именем


15-1229637458
Kostafey
2008-12-19 00:57
2009.02.15
Восстановление Windows


15-1229754617
SPeller
2008-12-20 09:30
2009.02.15
Когда омона и милиции столько же, сколько митингующих





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский