Stránkování z dvouch tabulek – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Stránkování z dvouch tabulek – PHP – Fórum – Programujte.comStránkování z dvouch tabulek – PHP – Fórum – Programujte.com

 

divady
~ Anonymní uživatel
21 příspěvků
22. 2. 2014   #1
-
0
-

dobrý den, vím že toto téma tady bylo probíráno už několikrat, ale mam takove trožku specifičtšjší problém 
mam dvě tabulky na stránce, je to výpis z databáze a potřeboval bych u nich udelat stránkování aby se mi třeba na každé stránce zobrazilo poze z každé tabulky 10 položek 
asle pořád nevim jak na to, jsem ještě začátečnik, tak se v tom strácím. ktady máte ukázku stránky. a tabulky http://www.srovnejokna.cz/poptavky/

<?
 
const pzn=33;
 
$sql=new mysql();
 
 
$c_arr = array();
$c_buf = '';
 
$c_zak = $sql->arrays("SELECT * from vz WHERE vlozeno > DATE(NOW()) ORDER BY ID DESC");
$c_pop = $sql->arrays("SELECT * from poptavky WHERE zalozeno > DATE(NOW()) ORDER BY ID DESC");
 
 
if ($c_zak) {
    $c_format = '%s, za %s&nbspKč - %s';
 
    foreach ($c_zak as $key => $value) {
        array_push($c_arr,
            sprintf($c_format, c_strip_str_len($value[nazev], pzn),
                c_nf($value[cena]),
                $value[mesto]
            )
        );
    }
 
 
}
 
if ($c_pop) {
    $c_format = '%s, za %s&nbspKč';
 
    foreach ($c_pop as $key => $value) {
        array_push($c_arr,
            sprintf($c_format, c_strip_str_len($value[label], pzn),
                c_nf($value[cena]),
                $value[mesto]
            )
        );
    }
}
 
shuffle($c_arr);
 
$c_format = '<a href="/poptavky/">%s...</a>&nbsp;&nbsp;';
 
foreach ($c_arr as $key => $value) {
        $c_buf .= sprintf($c_format, $value);
}
 
$fce[zakazky]=$anw;
 
$anw="";
 
 
 
$q=$sql->arrays("SELECT * from vz WHERE vlozeno > DATE_SUB(NOW(), INTERVAL 365 DAY) ORDER BY ID DESC limit 200");
if ($q) foreach ($q as $res){
 
if (date ("d.m.Y")==date("d.m.Y",strtotime("$res[vlozeno]"))) $dat="dnes";
 elseif (date ("d.m.Y", strtotime("-1 day"))==date("d.m.Y",strtotime("$res[vlozeno]"))) $dat="včera";
 else $dat=date("d.m.Y", strtotime("$res[vlozeno]")); 
 
$anw.="<TR><TD class=\"podtrh\"><A HREF = \"/zakazka-detail-$res[ID]/\">$res[nazev], za ".c_nf($res[cena])."&nbspKč<BR>$res[mesto]</A><TD class=\"datum\">$dat</TR>";
}
$fce[zakazky2]=$anw;
 
// ZAKÁZKY ---
 
 
$q=$sql->arrays("SELECT * from poptavky WHERE zalozeno > DATE_SUB(NOW(), INTERVAL 360 DAY) ORDER BY ID DESC limit 200");
if ($q) foreach ($q as $res){
 
 if (date ("d.m.Y")==date("d.m.Y",strtotime("$res[zalozeno]"))) $dat="dnes";
 elseif (date ("d.m.Y", strtotime("-1 day"))==date("d.m.Y",strtotime("$res[zalozeno]"))) $dat="včera";
 else $dat=date("d.m.Y", strtotime("$res[zalozeno]")); 
 if ($res[cena]=="0") $cena = "";
  else $cena = ", za ".c_nf($res[cena])."&nbspKč";
 
 $pop.="<TR><TD class=\"datum\">$dat<TD class=\"podtrh\"><A HREF = \"/poptavka-detail-$res[ID]/\">$res[label]$cena<BR>$res[mesto]</A></TR>";
}
 
 
 
// POPTÁVKY ----
 
 
 
?>
Nahlásit jako SPAM
IP: 88.100.146.–
Kit+15
Guru
22. 2. 2014   #2
-
0
-

#1 divady
Dlouhé řádky se mi nechce číst. To je neumíš zalomit a správně odsadit? 80 znaků/řádek max. Proč máš vždycky dva téměř totožné kusy kódu za sebou? A proč máš pohromadě SQL dotazy s HTML? A proč to máš všechno v jednom bloku?

Je vidět, že ty dvě tabulky spolu vůbec nesouvisí. Udělej je v HTML jako dvě tabulky pod sebou a v CSS je nechej obtékat, aby se zobrazily vedle sebe.

Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
divady
~ Anonymní uživatel
21 příspěvků
22. 2. 2014   #3
-
0
-

#2 Kit
v html to mam řešené takto

  <h3>nejnovější poptávky</h3>
        <table>
{@poptavky2}
        
        
        </table>
        </div>
       <div id="ver-zakazky1">
       <h3>veřejné zakázky</h3>
       <table>
      {@zakazky2}
       </TABLE>

zkoušel jsem stránkování vyřešit takto

// předávání počtu záznamů zbývajících do konce
$pocet = mysql_result(mysql_query("SELECT COUNT(*) FROM poptavka"), 0);
$offset = ($_GET["offset"] ? $_GET["offset"] : $pocet); // offset se předává od konce, aby stránky zůstaly trvale platné
$result = mysql_query("SELECT * FROM poptavka ORDER BY zalozeno DESC, id DESC LIMIT $limit OFFSET " . ($pocet - $offset));
if ($offset < $pocet) {
    echo ' <a href="' . htmlspecialchars($_SERVER["PHP_SELF"]) . ($offset + $limit < $pocet ? "?offset=" . ($offset + $limit) : "") . '">zpět</a>';
}
if ($offset > $limit) {
    echo ' <a href="' . htmlspecialchars($_SERVER["PHP_SELF"]) . "?offset=" . ($offset - $limit) . '">vpřed</a>';
}

ale nevim kam to mam vložit  a jestli tam mam všechno.

jinak se chci omluvit za to že jsem neudělal zalomování řádku

Nahlásit jako SPAM
IP: 88.100.146.–
Kit+15
Guru
22. 2. 2014   #4
-
0
-

#3 divady
Máš hodně divně pojmenované proměnné. Databáze by se určitě neměla jmenovat $sql, ale třeba $db. V názvech se nepoužívají zkratky (kromě obecně známých). Když vidím proměnné $anw, $c_zak, $fce, tak na první pohled vůbec netuším, co se v nich nachází. A ta hrůzná špageta, ve které je strtotime...

Promiň, taková nudle se blbě čte. Rozděl to do funkcí nebo metod - tím se to zkrátí asi na polovinu.

Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
divady
~ Anonymní uživatel
21 příspěvků
22. 2. 2014   #5
-
0
-

aha,web jsem nesestrojoval, jen jsem ho převzal.

spíš nevim kam bych pak vložil stránkování jestli to má být v tom PHP kodu, nebo bych to měl dát rovnou do html

třeba takhle:

  <h3>nejnovější poptávky</h3>
        <table>
{@poptavky2}
        
        
        </table>
        </div>
       <div id="ver-zakazky1">
       <h3>veřejné zakázky</h3>
       <table>
      {@zakazky2}
       </TABLE>
<? a tady by bylo to stránkování ?>!
Nahlásit jako SPAM
IP: 88.100.146.–
Kit+15
Guru
23. 2. 2014   #6
-
0
-

#5 divady
To je co s tím zavináčem? Nějaká nová syntaxe?

Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
divady
~ Anonymní uživatel
21 příspěvků
23. 2. 2014   #7
-
0
-

to používal muj předchudce když sestrojoval web,

odkazuje to na jednotlivé části  PHP.

toho hlavního kodu, jen nevím. udělat a kam vložit to stránkování

jestli přímo do HTML nebo ještě přidat do toho PHP souboru nebo případně vytvořit jiný.

Nahlásit jako SPAM
IP: 88.100.146.–
peter
~ Anonymní uživatel
4014 příspěvků
24. 2. 2014   #8
-
0
-

Ten soubor ma priponu php? Urcite? Protoze takovy zapis jsem v php jeste nevidel. Ale podoba se to zapisu sablon, kde {@zakazky2} nahradi nejakym kodem, promenou. Najdi si funkci, ktera to nahrazuje a prostuduj, jak to dela, kam je treba ten kod ulozit. Obvykle to byva zapis neco jako toto $TPL->zakazky2 = 'data';
 

Nahlásit jako SPAM
IP: 2001:718:2601:400:0:5efe:...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 14 hostů

Podobná vlákna

Strankovani — založil FrEnkLiN

Strankovani — založil D-Fox

Stránkování — založil JMM

Chyba v stránkování — založil martin

[DB] - stránkování - Limit — založil Michal115

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý