ugrás a tartalomhoz

Táblázat keverő

Arnold229 · 2011. Szep. 1. (Cs), 07.23
Sziasztok!

Van egy mysql-böl listázó táblázatom.
Szeretném úgy meg csinálni h minden oldal betöltésénél, összekeverje a táblázatot és úgy listázza. Tudna benne valaki segíteni? Én csak hobbi szinten szerkesztek weblapot.. .

Itt az példaoldal linkje: http://tablazatt.ultraweb.hu/

Meg ha valaki le akarná tölteni zip-ben.. : http://tablazatt.uw.hu/tablazat.zip


Php kód

<?php

// <---------------- LISTÁZÁS KEZDETE
$cnt=0;
$parancsk = "SELECT * FROM kepek ORDER BY `kep` , `szoveg` DESC";
$eredmenyk = mysql_query($parancsk) or die('Hiba a kérésben: ' . mysql_error());
while ($sork=mysql_fetch_array($eredmenyk,MYSQL_ASSOC)) {

$img = $sork["kep"];
$img = str_replace($dir,"",$img);

print "<td align=\"center\">";
print "<a href=\"".$dir.$sork["kep"]."\">";
print "<img src=\"".$dir.$sork["kep"]."\" border=\"1\">";
print "</a>";
print "<br>";
print $sork["szoveg"];
print "<br>";

print "</td>";

$cnt++;
if($cnt > 2) {
$cnt=0;
print "</tr><tr>";
}
}

// <---------------- LISTÁZÁS VÉGE
?>
 
1

én anno egy kártya játéknál

Karvaly84 · 2011. Szep. 1. (Cs), 08.01
én anno egy kártya játéknál csináltam ezt úgy, hogy 1000szer futtattam egy kódot ciklussal, ami kiválasztott 2 véletlen számot ügyelve arra hogy a kettő ne legyen egyenlő, és a két számot a tömb indexeként felhasználva felcserélte a tömb adott elemeit.
2

Ha azt akarod, hogy keverje,

kuka · 2011. Szep. 1. (Cs), 08.14
Ha azt akarod, hogy keverje, akkor miért kep és szoveg szerinti rendezést kérsz?

$parancsk = "SELECT * FROM kepek ORDER BY rand()";
Használj a BBCode formázást és formázd a forráskódod bekezdésekkel, mert ez így olvashatatlan.
3

Köszönöm!

Arnold229 · 2011. Szep. 1. (Cs), 10.22
Nem is gondoltam volna h ilyen egyszerű!!! Köszönöm kuka! :)
ki próbáltam müxik.
A BBcode formázást használni fogom jövőben.. .

Esetleg meg kérdezhetem h lehet úgy meg csinálni, hogy jelen 9db esetben, elossza több oldalra mondjuk 3db legyen mindegyiken. azaz alul legyen a 1 2 3 következő utolsó.. . linkek és úgy töltsön be 3-at, ezeket keverje össze minden frissítésnél?

de a következő oldalon már ne jelenjen meg. ilyet h kell meg írni. mert erre másr nincs semmi kód ötletem.
4

Vagyis lapozást akarsz, azaz

kuka · 2011. Szep. 1. (Cs), 10.47
Vagyis lapozást akarsz, azaz (elméletileg) laponként 1 lekérdezést de csak összesen 1 keverést, hogy elkerüld a duplázódást.

Ehhez munkamenet (azaz session) használata szükséges:
  • ha van elmentett sorrend, használod
  • ha nincs elmentett sorrend, létrehozod és elmented
Ezután már mehet is a lapozás a szokásos módon.

De ekkora munka előtt én feltenném a kérdést, hogy megéri-e. Én személyesen a pokolba szoktam kívánni az ilyesmit művelő webmestereket.
5

Váasz 2

Arnold229 · 2011. Szep. 1. (Cs), 11.02
Igen Lapozást szeretnék ahogy le írtad, pontosan úgy.

Hmm, Lehet jó lenne a sima lapozás?! Valószínűleg ez már túl lenne már bonyolítva, gondolom. Gondoltam hátha tud rá valaki valami példát. persze ezek lenére szívesen meg nézném.. . még jó hogy nem vagyok webmester. :D hehe.. .
6

Ez még úgy nagyon szép, ha az

bb0072 · 2011. Szep. 1. (Cs), 11.25
Ez még úgy nagyon szép, ha az eredményeket bizonyos időre cache-elni is kell. Ekkor előfordulhat, hogy befrissül a cache, miközben a user a 3. lapról a 4.-re lép, és ott ismét azt találja, amit a 2. lapon látott. Volt is egyszer egy ilyen munkám. Egy idióta sales-es kérés.
7

Válasz bb0072-nek

Arnold229 · 2011. Szep. 1. (Cs), 12.57
Te tapasztalatod szerint melyik lenne a legegyszerűbb kódolás erre a keverős lapozásra? Kíváncsiságból kérdem.. .
8

Hogy melyik a legegyszerűbb,

bb0072 · 2011. Szep. 1. (Cs), 18.10
Hogy melyik a legegyszerűbb, azt nem tudom, csak azt, hogy én hogy csinálnám. Ha ORDER BY RAND() -al kérdezel le oldalanként, abból nem lesz használható lapozós lista. Ezért ORDER BY RAND()-al lekérném az egész db táblát, az eredményt eltárolnám egy tömbbe (remélhetőleg nem többszáz rekordról vagy még többről van szó), és ezt a tömböt cache-elném valameddig. Ameddig a cache él, nem nyúlnék újra a db-hez. A lapozós oldal egyes lapjait ebből a tömbből szolgálnám ki.
Ha nagyon sok a rekord, akkor egy file-ba tárolnám le ideiglenesen a valameddig élő random sorrendet.

Ez nagyjából jó így, de előfordulhat vele az a probléma amit fentebb leírtam. Szerintem ezt nem lehet kivédeni, a lapozható random lista tényleg egy rémálom.
9

válasz

Arnold229 · 2011. Szep. 3. (Szo), 02.39
ez nekem elég bonyolultnak tűnik.. közel 200-450 db rekordról lenne szó. ennyit már egy oldalon meg jeleníteni lapozó nélkül lehet némelyik látogató be lassulna? PL: mobiltelefonal böngésző.. . ez a lementés stb, nekem túl tesz az én tudásomon lehet felejtősé teszem.. .

köszönöm válaszod bb0072