Php search script -> Paging bug

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jelle Sturm

Jelle Sturm

29/01/2009 12:46:00
Quote Anchor link
Hallo,

Ik heb een script om in mijn database te zoeken. De search werkt perfect alleen de paging niet. Ik heb maximium 6 results per page en dan een link me Show next results.

Als ik op deze link klik echter blijf ik op de 1e pagina...

Script:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<?php

ini_set('display_errors', 1);
error_reporting(E_ALL | E_STRICT);

  // Get the search variable from URL

  $var = ucwords($_GET['q']) ;
  $trimmed = trim($var); //trim whitespace from the stored variable

// rows to return

$limit=6;

// check for an empty string and display a message.
if ($trimmed == "")
  {

  echo "<p>Please enter a search...</p>";
  
  }


// check for a search parameter
if (!isset($var))
  {

  echo "<p>We dont seem to have a search parameter!</p>";
  exit;
  }


// Build SQL Query  
$query = "select * from template where title like \"%$trimmed%\"  
  order by id ASC"
; // EDIT HERE and specify your table and field names for the SQL query

 $numresults=mysql_query($query);
 $numrows=mysql_num_rows($numresults);

// If we have no results, offer a google search as an alternative

if ($numrows == 0)
  {

  echo "<h4>Results</h4>";
  echo "<p>Sorry, your search: &quot;" . $trimmed . "&quot; returned zero results</p>";

// google
 echo "<p><a href=\"http://www.google.com/search?q="
  . $trimmed . "\" target=\"_blank\" title=\"Look up
  "
. $trimmed . " on Google\">Click here</a> to try the
  search on google</p>"
;
  }


// next determine if s has been passed to script, if not use 0
  if (empty($s)) {
  $s=0;
  }


// get results
  $query .= " limit $s,$limit";
  $result = mysql_query($query) or die("Couldn't execute query");

// display what the person searched for
echo "<p>You searched for: &quot;" . $var . "&quot;</p>";

// begin to show results set
echo "Results";
$count = 1 + $s ;

// now you can display the results returned
  while ($row= @mysql_fetch_object($result)) {
?>

            <div class="template_wrapper_index">

            <div class="template_top"></div>    

            <div class="template_middle">

            <strong>Title:</strong> <?=$row->title;?><br />

            <strong class="float_template">Preview: </strong><a href="viewtemplate.php?id=<?=$row->id;?>"><img src="<?=$row->previewe;?>" alt="Preview" width="185" height="126" border="0" /></a>

            <br />

            <strong>Demo: </strong><a href="frame.php?url=<?=$row->demo;?>" target="_blank">Click Here</a>

            <br />

            * Click on the preview image for more info
            </div>        
            <div class="template_bottom"></div>            

            </div>    
<?php
  $count
++ ;
  }


$currPage = (($s/$limit) + 1);

//break before paging
  echo "<br />";

  // next we need to do the links to other results
  if ($s>=1) { // bypass PREV link if s is 0
  $prevs=($s-$limit);
  print "&nbsp;<a href=\"$PHP_SELF?s=$prevs&q=$var\">&lt;&lt;
  Prev 10</a>&nbsp&nbsp;"
;
  }


// calculate number of pages needing links
  $pages=intval($numrows/$limit);

// $pages now contains int of pages needed unless there is a remainder from division

  if ($numrows%$limit) {
  // has remainder so add one page
  $pages++;
  }


// check to see if last page
  if (!((($s+$limit)/$limit)==$pages) && $pages!=1) {

  // not last page so give NEXT link
  $news=$s+$limit;

  echo "&nbsp;<a href=\"search.php?s=$news&q=$var\">Next 10 &gt;&gt;</a>";
  }


$a = $s + ($limit) ;
  if ($a > $numrows) { $a = $numrows ; }
  $b = $s + 1 ;
  echo "<div style=\"clear:both\"></div>";
  echo "<p>Showing results $b to $a of $numrows</p>";
  
?>


Ik krijg geen PHP foutmeldingen.

Alvast bedank,
Jelle
Gewijzigd op 01/01/1970 01:00:00 door Jelle Sturm
 
PHP hulp

PHP hulp

25/11/2024 09:27:14
 
Han eev

Han eev

29/01/2009 13:53:00
Quote Anchor link
Je roept $s aan, en daarvoor doe je dit

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
// next determine if s has been passed to script, if not use 0
  if (empty($s)) {
  $s=0;
  }
// get results
  $query .= " limit $s,$limit";


Alleen boven de functie if(empty($s)) { staat $s helemaal niet.
PS: ruim je quotes en alles even op, je gebruikt alles door elkaar echo "<a href=\"$PHP_SELF enz... $var\""; niet bepaald netjes ;-)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.