Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][SQL]Problem z wyszukiwarką - podana ilość wyników inna, ilość wyników wyświetlanych inna
Ivellios
post
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 2.03.2007

Ostrzeżenie: (0%)
-----


Mam problem z napisaną przez siebie wyszukiwarką. Otóż jej kod wygląda tak:

Kod
<?php

$string = "$_POST[tekst]";
$przeszukaj = "$_POST[przeszukaj]";


$sql = "SELECT * FROM nuke_pages WHERE page_header LIKE '%$_POST[tekst]%' ORDER BY pid DESC";
$query = mysql_query($sql) or die(mysql_error());
$row_sql = mysql_fetch_assoc($query);
$total = mysql_num_rows($query);

$sql2 = "SELECT * FROM nuke_stories WHERE bodytext LIKE '%$_POST[tekst]%' ORDER BY sid DESC";
$query2 = mysql_query($sql2) or die(mysql_error());
$row_sql2 = mysql_fetch_assoc($query2);
$total2 = mysql_num_rows($query2);

$sql3 = "SELECT * FROM download_files WHERE title LIKE '%$_POST[tekst]%' ORDER BY did DESC";
$query3 = mysql_query($sql3) or die(mysql_error());
$row_sql3 = mysql_fetch_assoc($query3);
$total3 = mysql_num_rows($query3);


if($total>0 && $przeszukaj=='artykuly') {
        echo 'Znaleziono '.$total.' pasuj±cych wyników<BR><BR>';
        while ($row_sql = mysql_fetch_assoc($query)) {//echo out the results
        echo '<a href="'.$row_sql['pid'].','.$row_sql['cid'].',artykul.html">'.$row_sql['title'].'</a><br><BR>';
        }
} else if($total>0 && $przeszukaj=='newsy') {
        echo 'Znaleziono '.$total2.' pasuj±cych wyników<BR><BR>';
        while ($row_sql2 = mysql_fetch_assoc($query2)) {//echo out the results
        echo '<a href="index.php?akcja=news&id='.$row_sql2['sid'].'">'.$row_sql2['title'].'</a><br><BR>';
        }
} else if($total>0 && $przeszukaj=='download') {
        echo 'Znaleziono '.$total3.' pasuj±cych wyników<BR><BR>';
        while ($row_sql3 = mysql_fetch_assoc($query3)) {//echo out the results
        echo '<a href="'.$row_sql3['did'].',download,plik.html">'.$row_sql3['title'].'</a><br><BR>';
        }        
} else
        {
        echo "<center>Przepraszamy, nie znaleziono żadnych wyników spełniaj±cych Twoje kryteria.<BR>Być może, wpisuj±c frazę do wyszukania, popełniłe¶ jak±¶ literówkę? SprawdĽ frazę i spróbuj ponownie.</center>";
}
?>


Problem jest tego typu, że wyszukiwarka pokazuje informację, że znalazła np 3 pasujące artykuły, ale wyświetla tylko 2. Przy komunikacie o 1 znalezionym artykule nie wyświetla żadnego.
W czym może tkwić błąd?

Ten post edytował Ivellios 6.09.2008, 21:58:01
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
rolling_stone
post
Post #2





Grupa: Zarejestrowani
Postów: 46
Pomógł: 2
Dołączył: 20.08.2004
Skąd: Warszawa Grochów

Ostrzeżenie: (0%)
-----


Coś jest chyba pomieszane z $totalami. Przyjrzyj się. Sprawdzasz w warunku if czy $total jest większy od zera, a potem wypisujesz np. $total3.

Nie wiem czy to to - taki pierwszy rzut oka. Spać się trochę chce (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
webdice
post
Post #3


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Proszę o zmianę tytułu tematu, tytuł ma opisywać problem.
Go to the top of the page
+Quote Post
Ivellios
post
Post #4





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 2.03.2007

Ostrzeżenie: (0%)
-----


To raczej nie total'e. Pozmieniałem co nieco, kod wygląda teraz tak:

Kod
<?php

$string = "$_POST[tekst]";
$przeszukaj = "$_POST[przeszukaj]";


$sql = "SELECT * FROM nuke_pages WHERE page_header LIKE '%$_POST[tekst]%' ORDER BY pid DESC";
$query = mysql_query($sql) or die(mysql_error());
$row_sql = mysql_fetch_assoc($query);
$total = mysql_num_rows($query);

$sql2 = "SELECT * FROM nuke_stories WHERE bodytext LIKE '%$_POST[tekst]%' ORDER BY sid DESC";
$query2 = mysql_query($sql2) or die(mysql_error());
$row_sql2 = mysql_fetch_assoc($query2);
$total2 = mysql_num_rows($query2);

$sql3 = "SELECT * FROM download_files WHERE title LIKE '%$_POST[tekst]%' ORDER BY did DESC";
$query3 = mysql_query($sql3) or die(mysql_error());
$row_sql3 = mysql_fetch_assoc($query3);
$total3 = mysql_num_rows($query3);


if($total>0 && $przeszukaj=='artykuly') {



        echo 'Znaleziono '.$total.' pasuj±cych wyników<BR><BR>';
        while ($row_sql = mysql_fetch_assoc($query)) {//echo out the results
        echo '<a href="'.$row_sql['pid'].','.$row_sql['cid'].',artykul.html">'.$row_sql['title'].'</a><br><BR>';
        }
} else if($total2>0 && $przeszukaj=='newsy') {



        echo 'Znaleziono '.$total2.' pasuj±cych wyników<BR><BR>';
        while ($row_sql2 = mysql_fetch_assoc($query2)) {//echo out the results
        echo '<a href="index.php?akcja=news&id='.$row_sql2['sid'].'">'.$row_sql2['title'].'</a><br><BR>';
        }
} else if($total3>0 && $przeszukaj=='download') {


      
        echo 'Znaleziono '.$total3.' pasuj±cych wyników<BR><BR>';
        while ($row_sql3 = mysql_fetch_assoc($query3)) {//echo out the results
        echo '<a href="'.$row_sql3['did'].',download,plik.html">'.$row_sql3['title'].'</a><br><BR>';
        }        
} else
        {
        echo "<center>Przepraszamy, nie znaleziono żadnych wyników spełniaj±cych Twoje kryteria.<BR>Być może, wpisuj±c frazę do wyszukania, popełniłe¶ jak±¶ literówkę? SprawdĽ frazę i spróbuj ponownie.</center>";
}
?>


...ale problem z wyświetlaną ilością wyników nadal występuje.
Go to the top of the page
+Quote Post
rolling_stone
post
Post #5





Grupa: Zarejestrowani
Postów: 46
Pomógł: 2
Dołączył: 20.08.2004
Skąd: Warszawa Grochów

Ostrzeżenie: (0%)
-----


Spróbuj wywalić te fragmenty (te nie w pętli while tylko przy wywoływaniu mysql_query() ):

CODE
$row_sql = mysql_fetch_assoc($query);


Nie wiem jak działa mysql_fetch_assoc() ale może usuwać pobrany wiersz z rezultatu w parametrze...
Go to the top of the page
+Quote Post
Ivellios
post
Post #6





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 2.03.2007

Ostrzeżenie: (0%)
-----


rolling_stone, jesteś wielki! Uratowałeś właśnie wyszukiwarkę serwisu Paranormalium (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Dzięki wielkie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 16:43