βοηθεια σχετικα με navigation bar σε σελιδα

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

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

Απάντηση
Άβαταρ μέλους
dimos_mitel
Δημοσιεύσεις: 279
Εγγραφή: 07 Αύγ 2009 21:06
Επικοινωνία:

βοηθεια σχετικα με navigation bar σε σελιδα

Δημοσίευση από dimos_mitel » 23 Νοέμ 2009 13:36

καλησπερα σε ολους. λοιπον. εχω την παρακατω σελιδα στην οποια εμφανιζονται 8 προιοντα μου(βιβλια).

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

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>
<table align="center" width="100%" height="100%">
    <tr>
    <td align="center">

<?php
// Επιθυμητές στήλες
$kolones = 4;
$limit = 8;

mysql_connect&#40;'localhost', 'root', ''&#41;or die&#40;"Δεν είναι δυνατή η σύνδεση με την Βάση Δεδομένων"&#41;;
mysql_select_db&#40;'eshop'&#41;;

$last_table_row = $limit - $kolones;

$query = "SELECT pd_id, onoma_proiontos, timi, fotografia FROM proionta WHERE kwdikos_katigorias='3' LIMIT ".$limit ;
$getdata = mysql_query&#40; $query &#41;;
?>
<table border="0" cellspacing="16" cellpadding="20">
<tr>
<?
$n = 1; // Βοηθητικός μετρητής
$m = 0; // Βοηθητικός μετρητής 2
while &#40;$rows = mysql_fetch_array&#40;$getdata&#41;&#41;
&#123;
?>
   <td align="center">
   <a href="pd_page.php?pd_id=<?=$rows&#91;'pd_id'&#93;?>"><img width="90" height="100" border="0" src="product/images/<?=$rows&#91;"fotografia"&#93;?>"></a><br>
   <? echo $rows&#91;'onoma_proiontos'&#93; ;?><br>
   <? echo Τιμη." ". $rows&#91;'timi'&#93;." ".Ευρω ;?><br>
   <a href="pd_page.php?pd_id=<?=$rows&#91;'pd_id'&#93;?>">Περισσότερα...</a>
   </td>
   <? if&#40;$n == $kolones && $m <= $last_table_row &#41; &#123; ?> </tr> <tr> <?php $n = 1; &#125;?>
   <? ++$n;  ++$m;
&#125;?>
</tr>
</table>
</td></tr></table>
  </body>
</html>
αυτο που θελω ειναι να δημιουργησω ενα μενου(πχ prev 1234 next)
δεν ξερω στην ουσια πως να πω μετα τα 8 προιοντα που μ εμφανιζονται πατωντας στο επομενο η στο 2 να παει στα επομενα προιοντα που εχω στην βαση μου.
miteletsis


Άβαταρ μέλους
dimos_mitel
Δημοσιεύσεις: 279
Εγγραφή: 07 Αύγ 2009 21:06
Επικοινωνία:

βοηθεια σχετικα με navigation bar σε σελιδα

Δημοσίευση από dimos_mitel » 23 Νοέμ 2009 14:40

ευχαριστω!
miteletsis

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

βοηθεια σχετικα με navigation bar σε σελιδα

Δημοσίευση από fafos » 23 Νοέμ 2009 16:29

Ας φτιάξουμε (άλλο) ένα βοήθημα για paging...

με αυτό το βοήθημα μπορούμε να δίνουμε σελιδοποίηση στα δεδομένα μας της μορφής 1,2,3,4..κλπ κλπ. Επίσης μας εμφανίζει links για αρχική, επόμενη προηγούμενη και τελευταία σελίδα. Μπορούμε να δώσουμε τον αριθμό σελίδων στο μενού που θέλουμε να εμφανίζουμε.

demos:

απλό paging: http://www.istopoli.com/cruise/paging/index.php

search paging: http://www.istopoli.com/cruise/paging/search.php


Download: http://www.istopoli.com/cruise/paging/paging.zip


Εγκατάσταση:

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

Ανεβάζετε το αρχείο paging.php στην ιστοσελίδα σας. Αυτό το αρχείο είναι μία class την οποία ΔΕΝ πρέπει να πειράξετε αν δεν γνωρίζετε τι κάνετε!

Στα αρχεία έχω την index.php και την search.php.
H index.php είναι ένα απλό paging ενώ η search.php είναι paging στο οποίο μπορούμε να δώσουμε αναζήτηση δεδομένων.

Ξεκινάμε δίνοντας style στην σελιδοποίηση:

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

<style type="text/css">
<!--

.paging&#123;
margin &#58; 0px;
padding-top &#58; 1px;
padding-left &#58; 4px;
padding-right &#58; 4px;
padding-bottom &#58; 1px;
text-align &#58; center;
background-color &#58; #f9f9f9;
border &#58; 1px solid #cccccc;
&#125;
a.link-red&#58;link,a.link-red&#58;active,a.link-red&#58;visited&#123;color&#58;#990000;text-decoration&#58;none;&#125;

-->
</style>
Εδώ αλλάζετε μόνο χρώματα, γραμματοσειρές κλπ.. ΜΗΝ αλλάζετε τους τίτλουs των styles!

Μετά αρχίζουμε την σύνδεση με την βάση μας και κάνουμε include την class paging.php

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

include_once&#40;"paging.php"&#41;;

Επόμενο βήμα είναι να δώσουμε την query για να καλέσουμε τα δεδομένα μας από την βάση.

Μετά δίνουμε τα όρια του μενού σελιδοποίησης:

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

	$record_per_page=10;// apotelesmata ana selida
	$scroll=5;// poses selides tha mas deixnei sto paging
Πιο κάτω καλούμε την class:

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

$page=new Page&#40;&#41;; 
$page->set_page_data&#40;$indexpage,$total_records,$record_per_page,$scroll,true,true,true&#41;;
$rpages = ceil&#40;$total_records /	$record_per_page&#41;;

//synthikh gia 1 h perissoteres selides
$rpagesa = round&#40;$rpages, 0&#41;;
$rpages = round&#40;$rpages, 0&#41;;
if&#40;$rpagesa < 1&#41; &#123; $rpagesa = '';&#125;
if&#40;$rpages < 1&#41; &#123; $rpages = '1';&#125;
if&#40;$rpages =='1'&#41; &#123; $selides = 'σελίδα';&#125; else &#123; $selides = 'σελίδες';&#125;
$sumproducts = $total_records;
if&#40;$sumproducts =='1'&#41; &#123; $howprocucts = 'εγγραφή';&#125; else &#123; $howprocucts = 'εγγραφές';&#125;
Αν χρησιμοποιήσετε το paging με κάποια φόρμα αναζήτησης θα πρέπει να προσθεσετε αυτήν την εντολή:

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

$page->set_qry_string&#40;"title=$title"&#41;;
σε αυτό το παράδειγμα έχω title=$title, εσείς μπορείτε να βάλετε τα δικά σας get strings, για παράδειγμα:

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

$page->set_qry_string&#40;"name=$name&color=$color&size=$size"&#41;;
(αυτό το κομμάτι κώδικα μπαίνει κάτω από το $rpages = ceil($total_records / $record_per_page); δείτε στο αρχείο search.php)

Επόμενο βήμα είναι να εκτυπώσουμε το μενού σελιδοποίησης ([Αρχική] «Προηγούμενη 1 2 3 4 5 Επόμενη» [Τελευταία]) με αυτόν τον κώδικα:

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

echo '<p style="margin &#58; 0px;padding &#58; 0px;padding-bottom &#58; 5px;">';

	  $page->get_first_page_nav&#40;"&#91;Αρχική&#93;&nbsp;"&#41;;
	  $page->get_prev_page_nav&#40;"&laquo;Προηγούμενη&nbsp;"&#41;;

if&#40;$rpagesa >'1'&#41; &#123; 
	  $page->get_number_page_nav&#40;&#41;;
&#125;
	  $page->get_next_page_nav&#40;"&nbsp;Επόμενη&raquo;"&#41;;
	  $page->get_last_page_nav&#40;"&nbsp;&#91;Τελευταία&#93;"&#41;;
	echo '</p>';
Μπορείτε να αλλάξετε τα κείμενα με κάποιες εικόνες-βέλη (προσέξτε τα quotes να μην συγκρουστούν)... π.χ.:

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

$page->get_first_page_nav&#40;"<img src='file&#58;images/arxikh_arrow.gif' border='0'>&nbsp;"&#41;;
Μπορείτε να επαναλάβετε αυτόν τον κώδικα και κάτω από τα αποτελέσματα αν θέλετε να έχετε μενού πάνω και κάτω.


μετά αρχίζει το while το οποίο θα εμφανίζει τα δεδομένα. Μπορείτε να τα διαμορφώσετε όπως εσείς νομίζετε.

αυτό ήταν... δείτε τα αρχεία που επισυνάπτω και διαβάστε τα σχόλια εκεί μέσα..

ΣΗΜΕΙΩΣΗ: τα αρχεία είναι σωσμένα σε μορφή ANSI... αν πρόκειται να χρησιμοποιήσετε το paging σε σελίδες με UTF-8, θα πρέπει να σώσετε την paging.php με μορφή UTF-8 χωρίς BOM!

Καλό είναι, όσοι σκέφτονται να ασχοληθούν σοβαρά με την php να αναλύσουν την class για να δουν πως δουλεύουν οι classes..
Τελευταία επεξεργασία από το μέλος fafos την 23 Νοέμ 2009 16:35, έχει επεξεργασθεί 2 φορές συνολικά.
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
dimos_mitel
Δημοσιεύσεις: 279
Εγγραφή: 07 Αύγ 2009 21:06
Επικοινωνία:

βοηθεια σχετικα με navigation bar σε σελιδα

Δημοσίευση από dimos_mitel » 23 Νοέμ 2009 16:30

Παιδια το καταφερα! ενα καταπληκτικο παραδειγμα για pagination ειναι εδω:

http://www.phpfreaks.com/tutorial/basic-pagination
miteletsis

Άβαταρ μέλους
dimos_mitel
Δημοσιεύσεις: 279
Εγγραφή: 07 Αύγ 2009 21:06
Επικοινωνία:

βοηθεια σχετικα με navigation bar σε σελιδα

Δημοσίευση από dimos_mitel » 23 Νοέμ 2009 16:33

fafos wraios! θα κοιταξω και το δικο σου παραδειγμα. πιστευω θα ειναι καλυτερο!
miteletsis

Απάντηση

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

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

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