PHP lapozó átalakítása
Üdv.
Van egy lapozóm, ezt szeretném átalakítani, pontosabban a lapozó részét, úgy hogy ez ugye a jobb alsó sarokban kiírja hogy hány darab oldal van, és ezt egy lenyíló menüvel választhassam hogy hanyadik oldalra mennyen (<select><option value="1" selected>1</option><option value="2">2</option></select>), és ha a lenyíló menüben rákattintok az egyikre mondjuk a 2-es számúra akkor vigyen a 2. oldalra, ha a 3-asra akkor 3. oldal és így tovább... Nem igazán tudom hogy hogyan kellene átírni. Valaki átírná nekem?
itt a kódom:És a MySQL tábla:Esetleg ha van valakinek egyszerűbb, ami a fentebb említett dolgot tudja, akkor azt is elfogadom, a lényeg hogy MySQL-t használjon, ne SQL-t! Köszönöm!
■ Van egy lapozóm, ezt szeretném átalakítani, pontosabban a lapozó részét, úgy hogy ez ugye a jobb alsó sarokban kiírja hogy hány darab oldal van, és ezt egy lenyíló menüvel választhassam hogy hanyadik oldalra mennyen (<select><option value="1" selected>1</option><option value="2">2</option></select>), és ha a lenyíló menüben rákattintok az egyikre mondjuk a 2-es számúra akkor vigyen a 2. oldalra, ha a 3-asra akkor 3. oldal és így tovább... Nem igazán tudom hogy hogyan kellene átírni. Valaki átírná nekem?
itt a kódom:
- <?php
- $db_host = 'localhost'; // Adatbázis hoszt
- $db_user = 'root'; // Adatbázis felhasználónév
- $db_pass = '32426b3e53'; // Adatbázis jelszó
- $db_table = 'lapozo'; // Adatbázis név
- mysql_connect($db_host,$db_user,$db_pass) or die(mysql_error());
- mysql_select_db($db_table) or die(mysql_error());
- //Változók definiálása
- $egy_oldal_max = 20;
- function foot_linkek($link, $tomb_szama, $oldalankenti_db, $kezdes, $act_oldal){
- //Változó definiálása
- $kimenet ="";
- $szam = 0;
- if( ($kezdes + $oldalankenti_db) > $tomb_szama){
- $max = $tomb_szama;
- }else{
- $max = ($kezdes + $oldalankenti_db)-1;
- }
- $kimenet .= "<table class='oldal_szamozas' border='0' width='100%'>
- <tr>
- <td valign='top'>Megjelenítve <b>".$kezdes."</b> től <b>".$max."</b> -ig (összesen <b>".$tomb_szama."</b> találatból)<td>
- <td align='right'>";
- // Az alsó kinálati sáv kiíratása
- if ($tomb_szama > $oldalankenti_db) {
- $k = $tomb_szama;
- $kimenet .= "Talált oldalak: ";
- for ($k; $k > 0; $k=$k-$oldalankenti_db) {
- $szam=$szam+1;
- if($szam == $act_oldal){ $kimenet .="<b>".$szam."</b> ";
- }else{
- $kimenet .= '<a href="'.$link.'oldal='.$szam.'" style="text-decoration: none;">'.$szam.' </a>';
- }
- }
- }
- $kimenet .= '</td></tr></table>';
- return $kimenet;
- }
- $sql = "SELECT COUNT(name) as db FROM name" or die(mysql_error());
- $db = mysql_fetch_assoc(mysql_query($sql)) or die(mysql_error()); //Csak akkor használjuk így ha max egy eredmény lehet!
- if(isset($_GET["oldal"])){
- $oldal = $_GET["oldal"];
- }else{
- $oldal = 1;
- }
- $limit = (($oldal*$egy_oldal_max)-$egy_oldal_max);
- //Olvassuk ki a megjelenítendő szöveget
- $sql = "SELECT * FROM name ORDER BY nev_leiras ASC LIMIT ".$limit.", ".$egy_oldal_max." ";
- $talalatok = mysql_query($sql) or die("Hibás lekérdezés!");
- ?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <title>Oldal számozás</title>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
- </head>
- <body>
- <table border="0" style="background-color:#CCCCCC; padding:5px; border: 2px solid #234EF5; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; ">
- <tr>
- <td style="height:150px; width:480px; " valign="top"><?php
- while($talalat = mysql_fetch_assoc($talalatok)){
- echo $talalat["name"]."<br/>";
- }
- ?></td>
- </tr>
- <tr>
- <td><?php echo foot_linkek("index.php?", $db["db"],$egy_oldal_max, ($limit+1), $oldal );?></td>
- </tr>
- </table>
- </body>
- </html>
- <?php
- print($oldal);
- ?>
- CREATE TABLE `name` (
- `nev_leiras` varchar(1000) NOT NULL,
- `name` varchar(1000) NOT NULL,
- `nev` varchar(1000) NOT NULL,
- `language_id` int(255) NOT NULL auto_increment,
- PRIMARY KEY (`language_id`)
- ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
Rossz helyre írtál
---
Tudnál nekem segíteni?
De persze mindíg van, aki segít.
Van olyan változat is, ahol a kattintás után azonnal elküldi, de én azt személy szerint nem szeretem, mert könnyen mellényúl az ember és lassú, vagy korlátolt netnél ez igencsak bosszantó lehet.
A 68. sorban az 'empty' megkettőződésével ne törődj!
Van azonban néhány jótanácsom:
1. Tényleg ne nagyon írj ilyeneket, hogy valaki csinálja meg, mert a zila-éhoz hasonló válaszokat kapsz.
2. Ha legközelebb egy neten is fennt lévő honlapban kéne hibát keresni, akkor szúrj be egy linket, hogy megnézhessék (láttam már emiatt hoszzú-hosszú vitákat).
3. A PHP-ban, ha egy 'string'-et dupla (vagy szimpla) idézőjelekkel határolsz és a 'string'-ben is van ilyen karakter, akkor tegyél elé egy fordított perjelet (AltGr + Q) és akkor karakterként és nem programutasításként értelmezi.
4. Ha hosszú (főleg HTML) 'string'-et gépelsz be, akkor használhatsz egy <<< operátort. Ennek az operátornak nem tudom, hogy mi a neve, de a lényeg az, hogy az utána lévő (akármilyen -> nálam 'EOF') szöveg jelzi a 'string' kezdetét és egy új sorba írt ugyan ilyen szöveg (nem lehet elötte semmi) jelzi a végét + a pontosvessző.
5. Ha az ilyen módon létrehozott 'string'-be szeretnél változót beilleszteni, akkor használt elötte egy '{'-t utánna pedig egy '}'-t. Ha jól tudom, akkor ilyen módon fügvényeket nem hívhatsz meg.
6. Ha a MySQL tábládból csak egy mezőre van szükség, akkor csak azt kérd le és ne az összeset, mert feleslegesen lassítod a 'script'-et.
7. Ha egy asszociatív (szövegget indexelt) tömbből kérsz le adatokat, akkor érdemes szimpla idézőjelekkel határolni a szöveget, mert akadhatnak belőle problémák, ha nem így teszel (nem biztos, hogy lesz, de nekem már volt).
8. Az 'isset' helyett ebben az esetben azért jobb a '!empty', mert ha hivatozik valahogy egy rossz linkre ('index.php?oldal='), akkor az '$oldal' értéke üres 'string' => az 'isset' 'true'-t ad vissza, mert a változó létezik. Ha azonban '!empty'-t használsz, akkor 'false'-t ad vissza és ebben ez esetben neked ez a jó!
Remélem megfelel.
nincs téma
Ez nem tetszik neki: $kimenet = <<<EOF
Nem ismerem sajnos az EOF-t nem tudom mi lehet..
sörre :)
a 46. sörre már én is hibákat írnék :D
{/OFF}
hehe
De...azthiszem most jó lett...az a része, most azu utolsó sorra ír hibát: Parse error: syntax error, unexpected $end in C:\AppServ\www\lapozo.php on line 110
Ez azért van...
új sorban (ez amúgy OK) és
!!!elötte semmi mással!!! (szerintem van elötte egy 'space' vagy 'tab') ugyan az a szöveg egy ';'-vel a végén!
(Szerintem olvasd el még egyszer figyelmesen a jótanácsokat!)
"heredoc" szintaxis
Nem az EOF a lényeg, hanem a "<<<".
thx