Paging in search results using php,mysql

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
kwnos
Δημοσιεύσεις: 30
Εγγραφή: 21 Αύγ 2007 11:45
Τοποθεσία: ΠΑΤΡΑ

Paging in search results using php,mysql

Δημοσίευση από kwnos » 20 Δεκ 2007 12:16

Παιδια βοηθήστε με στο paginating της αναζήτησης με χρήση λέξης κλειδί keyword.

Εχω λοιπό την εξής σελίδα paging.php

Αρχικά το field ώστε να εισάγει κάποιος τον όρο αναζήτησης.

Κώδικας: Επιλογή όλων

<?php

   /* If no keyword is defined, present the search page instead&#58; */
      print "<tr>\n";
	    print "<td>\n";
            
        print "<form  method='get' ACTION=paging.php> Λέξεις Κλειδιά&#58; 
               <input type='text' size='20' name='keyword'>\n";
        
        print "<input type='submit' value='Αναζήτηση'></form>\n";
	      print "</td>\n";
        print "</tr>\n";
		
?>
Στην συνέχεια ο κώδικας για το paging

Κώδικας: Επιλογή όλων

<?
//connect to database
include&#40;'db.php'&#41;;

//get the keword from search field
$keyword = $_GET&#91;'keyword'&#93; ;


// how many rows to show per page
$rowsPerPage = 2;

// by default we show first page
$pageNum = 1;

// if $_GET&#91;'page'&#93; defined, use it as page number
if&#40;isset&#40;$_GET&#91;'page'&#93;&#41;&#41;
&#123;
    $pageNum = $_GET&#91;'page'&#93;;
&#125;

// counting the offset
$offset = &#40;$pageNum - 1&#41; * $rowsPerPage;

//get results from db in greek language

mysql_query&#40;"SET NAMES 'greek'"&#41;;
$query = "SELECT  oc.col_title_el AS title
          FROM    oa_collections oc
          WHERE   oc.col_title_el LIKE \"%$keyword%\" 
          LIMIT $offset, $rowsPerPage";
$result = mysql_query&#40;$query&#41; or die&#40;'Error, query failed'&#41;;

// print the random numbers
while&#40;$row = mysql_fetch_array&#40;$result&#41;&#41;
&#123;
   echo $row&#91;'title'&#93; . '<br>';
&#125;



// how many rows we have in database
mysql_query&#40;"SET NAMES 'greek'"&#41;;
$query   = "SELECT COUNT&#40;col_title_el&#41; AS numrows FROM oa_collections WHERE col_title_el LIKE \"%$keyword%\" ";
$result  = mysql_query&#40;$query&#41; or die&#40;'Error, query failed'&#41;;
$row     = mysql_fetch_array&#40;$result, MYSQL_ASSOC&#41;;
$numrows = $row&#91;'numrows'&#93;;

// how many pages we have when using paging?
$maxPage = ceil&#40;$numrows/$rowsPerPage&#41;;

// print the link to access each page
$self = $_SERVER&#91;'PHP_SELF'&#93;;

$nav  = '';

for&#40;$page = 1; $page <= $maxPage; $page++&#41;
&#123;
   if &#40;$page == $pageNum&#41;
  &#123;
      $nav .= " $page "; // no need to create a link to current page
   &#125;
   else
   &#123;
      $nav .= " <a href=\"$self?page=$page\">$page</a> ";
  &#125;
&#125;


if &#40;$pageNum > 1&#41;
&#123;
   $page  = $pageNum - 1;
   $prev  = " <a href=\"$self?page=$page\">&#91;Prev&#93;</a> ";

   $first = " <a href=\"$self?page=1\">&#91;First Page&#93;</a> ";
&#125;
else
&#123;
   $prev  = '&nbsp;'; // we're on page one, don't print previous link
   $first = '&nbsp;'; // nor the first page link
&#125;

if &#40;$pageNum < $maxPage&#41;
&#123;
   $page = $pageNum + 1;
   $next = " <a href=\"$self?page=$page\">&#91;Next&#93;</a> ";

   $last = " <a href=\"$self?page=$maxPage\">&#91;Last Page&#93;</a> ";
&#125;
else
&#123;
   $next = '&nbsp;'; // we're on the last page, don't print next link
   $last = '&nbsp;'; // nor the last page link
&#125;

// print the navigation link
echo $first . $prev . $nav . $next . $last;

//close db connection
mysql_close &#40;$db_m&#41;;

// ... and we're done!

?>
To script δουλεύει κανονικά και υπολογίζει σωστα τις σελίδες ανάλογα με τα rows που βρίσκει. Το πρόβλημα είναι ότι όταν πατάω στην επόμενη σελίδα χάνει τα αποτελέσματα και κάνει σελιδοποίηση με το σύνολο των rows όλων των εγγραφών και όχι με την λέξη αναζήτησης.

HELP ME

Άβαταρ μέλους
Alice_Cooper
Δημοσιεύσεις: 1947
Εγγραφή: 11 Μάιος 2007 00:33
Τοποθεσία: Ioannina
Επικοινωνία:

Paging in search results using php,mysql

Δημοσίευση από Alice_Cooper » 20 Δεκ 2007 12:36

alakse to

Κώδικας: Επιλογή όλων

$first = " <a href=\"$self?page=1\">&#91;First Page&#93;</a> "
se

Κώδικας: Επιλογή όλων

$first = " <a href=\"$self?page=1&keyword=".$keyword."\">&#91;First Page&#93;</a> "
kathos kai opou allou xriazetai

Άβαταρ μέλους
gaucho
Honorary Member
Δημοσιεύσεις: 2408
Εγγραφή: 22 Δεκ 2002 13:18

Paging in search results using php,mysql

Δημοσίευση από gaucho » 20 Δεκ 2007 12:42

Κάνε πάσα και τη μεταβλητή που περιέχει τη λέξη αναζήτησης

kwnos
Δημοσιεύσεις: 30
Εγγραφή: 21 Αύγ 2007 11:45
Τοποθεσία: ΠΑΤΡΑ

Paging in search results using php,mysql

Δημοσίευση από kwnos » 20 Δεκ 2007 14:02

Alice_Cooper έγραψε:alakse to

Κώδικας: Επιλογή όλων

$first = " <a href="$self?page=1">&#91;First Page&#93;</a> "
se

Κώδικας: Επιλογή όλων

$first = " <a href="$self?page=1&keyword=".$keyword."">&#91;First Page&#93;</a> "
kathos kai opou allou xriazetai
δεν επαίξε. Γιατι δεν μπορώ να καταλάβω.
gaucho έγραψε: Κάνε πάσα και τη μεταβλητή που περιέχει τη λέξη αναζήτησης
Δεν σε κατάλαβα. Τι εννοείς.

Παιδιά help me.

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6230
Εγγραφή: 30 Νοέμ 2004 03:09

Paging in search results using php,mysql

Δημοσίευση από fafos » 20 Δεκ 2007 16:07

To &keyword=".$keyword." (pou poly sosta sou eipe o alice) prepei na to valeis se ola ta link pou exeis mesa sto script... an h selida den pairnei to get den metaferetai kai tha sou vgazei ola ta apotelesmata ths vashs sou..

Άβαταρ μέλους
gaucho
Honorary Member
Δημοσιεύσεις: 2408
Εγγραφή: 22 Δεκ 2002 13:18

Paging in search results using php,mysql

Δημοσίευση από gaucho » 20 Δεκ 2007 16:14

To keyword πάσα παντού α λά Roberto Carlos

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6230
Εγγραφή: 30 Νοέμ 2004 03:09

Paging in search results using php,mysql

Δημοσίευση από fafos » 20 Δεκ 2007 16:24

a nai.. vale kai ena value="" sto input tou keyword sthn forma sou :)
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

kwnos
Δημοσιεύσεις: 30
Εγγραφή: 21 Αύγ 2007 11:45
Τοποθεσία: ΠΑΤΡΑ

Paging in search results using php,mysql

Δημοσίευση από kwnos » 20 Δεκ 2007 23:34

Παιδιά σας ευχαριστώ πολυ. Αύριο θα το δοκιμάσς και θα σας πς νεότερα. Ελπίζω να παίξει.

kwnos
Δημοσιεύσεις: 30
Εγγραφή: 21 Αύγ 2007 11:45
Τοποθεσία: ΠΑΤΡΑ

Paging in search results using php,mysql

Δημοσίευση από kwnos » 21 Δεκ 2007 09:06

Δυστυχώς παιδιά δεν δούλεψε.Πάλι τα ίδια κάνει.

Δηλαδή την πρώτη φορά που πατάω υποβολή μου φέρνει για παράδειγμα 6 σελίδεσ των δύο αποτελεσμάτων.Οταν αφήνω τον κέρσορα πάνω στην επόμενη σελίδα σώστα στο κάτω μέρος του Browser τυπώνεται πχ http://mysite/paging.php?page=2$keyword=xxx αλλα όταν πατήσω πάνω με πάει σωστά στην 2 σελίδα αλλαχάνει το keyword.

Άβαταρ μέλους
Risk
Δημοσιεύσεις: 319
Εγγραφή: 02 Μάιος 2006 01:16
Τοποθεσία: Κάπου εδώ γύρω...
Επικοινωνία:

Paging in search results using php,mysql

Δημοσίευση από Risk » 21 Δεκ 2007 09:48

Καλημέρα!

Δεν έχω δει τον κώδικά σου για να σου απαντήσω επι του θέματος. Και επειδή φαντάζομαι και εσύ βιάζεσαι για την υλοποίησή του θα σου δώσω ένα πολύ καλό tutorial το "panosru" το οποίο χρησιμοποίησα και εγώ πρόσφατα, δουλεύει μια χαρά και αφορά pagination.

Σελιδοποίηση Αποτελεσμάτων
Εικόνα

kwnos
Δημοσιεύσεις: 30
Εγγραφή: 21 Αύγ 2007 11:45
Τοποθεσία: ΠΑΤΡΑ

Paging in search results using php,mysql

Δημοσίευση από kwnos » 21 Δεκ 2007 10:02

Risk έγραψε:Καλημέρα!

Δεν έχω δει τον κώδικά σου για να σου απαντήσω επι του θέματος. Και επειδή φαντάζομαι και εσύ βιάζεσαι για την υλοποίησή του θα σου δώσω ένα πολύ καλό tutorial το "panosru" το οποίο χρησιμοποίησα και εγώ πρόσφατα, δουλεύει μια χαρά και αφορά pagination.

Σελιδοποίηση Αποτελεσμάτων

Σε ευχαριστώ για την άμεση βοήθεια. Το άρθρο σου το έχω δει. Σελιδοποιήση έχω κάνει. Το πρόβλημα με την σελιδοποίηση είναι όταν χρησιμοποιώ χρήση λέξης κλειδί απο πεδίο αναζήτησης.

kwnos
Δημοσιεύσεις: 30
Εγγραφή: 21 Αύγ 2007 11:45
Τοποθεσία: ΠΑΤΡΑ

Paging in search results using php,mysql

Δημοσίευση από kwnos » 21 Δεκ 2007 10:47

kwnos έγραψε:Δυστυχώς παιδιά δεν δούλεψε.Πάλι τα ίδια κάνει.

Δηλαδή την πρώτη φορά που πατάω υποβολή μου φέρνει για παράδειγμα 6 σελίδεσ των δύο αποτελεσμάτων.Οταν αφήνω τον κέρσορα πάνω στην επόμενη σελίδα σώστα στο κάτω μέρος του Browser τυπώνεται πχ http://mysite/paging.php?page=2$keyword=xxx αλλα όταν πατήσω πάνω με πάει σωστά στην 2 σελίδα αλλαχάνει το keyword.
ξέρει κανείς γιατι μπορεί να χάνει το keyword οταν πατάω στην επόμενη σελιδα. Μήπως πρέπει να αποθηκεύσω την $row σε session μεταβλητη?

Άβαταρ μέλους
Alice_Cooper
Δημοσιεύσεις: 1947
Εγγραφή: 11 Μάιος 2007 00:33
Τοποθεσία: Ioannina
Επικοινωνία:

Paging in search results using php,mysql

Δημοσίευση από Alice_Cooper » 21 Δεκ 2007 10:48

kwnos έγραψε:Δυστυχώς παιδιά δεν δούλεψε.Πάλι τα ίδια κάνει.

Δηλαδή την πρώτη φορά που πατάω υποβολή μου φέρνει για παράδειγμα 6 σελίδεσ των δύο αποτελεσμάτων.Οταν αφήνω τον κέρσορα πάνω στην επόμενη σελίδα σώστα στο κάτω μέρος του Browser τυπώνεται πχ http://mysite/paging.php?page=2$keyword=xxx αλλα όταν πατήσω πάνω με πάει σωστά στην 2 σελίδα αλλαχάνει το keyword.
to lathos einai to bold... vgale to dollar apo ekei kai kane to &

$ => &

to link prepei na einai etc ... http://mysite/paging.php?page=2&keyword=xxx

kwnos
Δημοσιεύσεις: 30
Εγγραφή: 21 Αύγ 2007 11:45
Τοποθεσία: ΠΑΤΡΑ

Paging in search results using php,mysql

Δημοσίευση από kwnos » 21 Δεκ 2007 11:15

tτυπογραφικο ήταν. Ετσι όπως το λες το έχω.

kwnos
Δημοσιεύσεις: 30
Εγγραφή: 21 Αύγ 2007 11:45
Τοποθεσία: ΠΑΤΡΑ

Paging in search results using php,mysql

Δημοσίευση από kwnos » 21 Δεκ 2007 12:17

κανείς?

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες