Autor | Zpráva | ||
---|---|---|---|
Ikki Profil |
#1 · Zasláno: 24. 3. 2018, 10:40:17
Zdravím přátelé,
po dlouhé době jsem narazil na problém, který mi hlava nějak nebere. Napadlo mne mnoho řešení, ale každé nějakým způsobem vypadlo nebo nefungovalo, tak se obracím na Vás. V indexu se nachází následující kód; $select = $mysqli->query("SELECT * FROM portfolio ORDER BY RAND() LIMIT 6"); while ($done = $select->fetch_array()){ echo ' <li class="cbp-item '.$done['category'].'"> <a href="ajax/project.php?id='.$done['id'].'" class="cbp-caption cbp-singlePageInline" data-title="'.$done['name'].'<br>vytvořil Roman"> <div class="cbp-caption-defaultWrap GrayScale"> <img src="'.$done['image'].'" alt=""> </div> <div class="cbp-caption-activeWrap"> <div class="cbp-l-caption-alignLeft"> <div class="cbp-l-caption-body"> <div class="cbp-l-caption-title">'.$done['name'].'</div> </div> </div> </div> </a> </li>';} ?> </ul> </div> <div class="cbp-l-loadMore-button"> <a href="ajax/loadMore.php" class="cbp-l-loadMore-button-link">Načíst další</a> </div> <div class="cbp-loadMore-block1"> <?php require_once('../system/functions/query.php'); $select = $mysqli->query("SELECT * FROM portfolio ORDER BY RAND()"); while ($done = $select->fetch_array()){ echo ' <li class="'.$done['category'].' cbp-item"> <a href="ajax/project.php?id='.$done['id'].'" class="cbp-caption cbp-singlePageInline" data-title="'.$done['name'].'<br>vytvořil Roman"> <div class="cbp-caption-defaultWrap GrayScale"> <img src="'.$done['image'].'" alt=""> </div> <div class="cbp-caption-activeWrap"> <div class="cbp-l-caption-alignLeft"> <div class="cbp-l-caption-body"> <div class="cbp-l-caption-title">'.$done['name'].'</div> </div> </div> </div> </a> </li>';}?> </div> Tak Vás prosím o pomoc, jak zabránit zdvojení? Děkuji. |
||
Radek9 Profil |
#2 · Zasláno: 24. 3. 2018, 10:56:35
Ulož si ID těch šesti načtených (někde v rámci JS) a ajaxem je předej tomu PHP scriptu. Potom už stačí jen drobně upravit SQL dotaz:
SELECT * FROM portfolio ORDER BY RAND() WHERE id NOT IN (1, 2, 3, 4, 5, 6) Samozřejmě nezapomeň ty vstupy (ID) ošetřit. |
||
Ikki Profil |
#3 · Zasláno: 24. 3. 2018, 14:04:07
Jenže tady mám problém s tím, že jsou to dva oddělené soubory a nijak na sebe nenavazují kromě vyvolán pomocí <a>.
Pokud uložím data, tak ty data opět najdu pouze v tom souboru, ale už né v LoadMore a pomocí URL ty údaje taky předat nemůžu, protože se to musí načíst automaticky na úvodní stránce. |
||
Radek9 Profil |
#4 · Zasláno: 24. 3. 2018, 14:33:03
Ikki:
Proto ti říkám, abys to pomocí toho prvního souboru nějak zakódoval do JS nebo do toho odkazu (třeba pomocí query stringu): <div> <ul> <?php $select = $mysqli->query("SELECT * FROM portfolio ORDER BY RAND() LIMIT 6"); $ids = array(); while ($done = $select->fetch_array()){ $ids[] = $done['id']; echo ' <li class="cbp-item '.$done['category'].'"> <a href="ajax/project.php?id='.$done['id'].'" class="cbp-caption cbp-singlePageInline" data-title="'.$done['name'].'<br>vytvořil Roman"> <div class="cbp-caption-defaultWrap GrayScale"> <img src="'.$done['image'].'" alt=""> </div> <div class="cbp-caption-activeWrap"> <div class="cbp-l-caption-alignLeft"> <div class="cbp-l-caption-body"> <div class="cbp-l-caption-title">'.$done['name'].'</div> </div> </div> </div> </a> </li>'; } ?> </ul> </div> <div class="cbp-l-loadMore-button"> <a href="ajax/loadMore.php?ids=<?=join(',', $ids)?>" class="cbp-l-loadMore-button-link">Načíst další</a> </div> V druhém souboru to normálně dostaneš v $_GET['ids'] , splitneš podle čárky, ošetříš a začleníš do dotazu.
|
||
Časová prodleva: 6 let
|
0