Autor | Zpráva | ||
---|---|---|---|
DeBon Profil |
#1 · Zasláno: 11. 4. 2007, 17:57:56 · Upravil/a: DeBon
Dobrý den.. S timheltim problémem (beztak banalitou..) si zatim nedokážu poradit.. zatim všechno, co mě napadlo moc nepomoho, tak doufám, že tady mi někdo zkušenější poradí..
mám 2 soubory.. V jednom vypisuju nejblížší akci a v druhym vypisuju nejbližší akci s prioritou 1.. Když nejbližší akce má prioritu 1, objeví se mi na stránce 2x.. Tedy, jak udělat, že když nejbližší akce bude stejná jako nejbližší akce s prioritou 1 aby se ta s prioritou nevypsala? 1. soubor: <? $select="SELECT DATE_FORMAT(datum, '%e.%c.%Y') AS ddatum, popis, typ, priorita FROM akce"; $ted=date('Y-m-d'); $query = "".$select." WHERE datum >= '".$ted."' ORDER BY datum LIMIT 1;"; $vysledek=mysql_query($query); $pocet=mysql_num_rows($vysledek); if ($pocet<1) { echo 'Zatím žádné plánované akce nejsou..'; } else { while ($data=mysql_fetch_array($vysledek)) { echo '<b>'; if ($ted==$data['datum']) { echo 'Dnes'; } else { echo $data['ddatum']; } echo'</b><br> '.$data['popis'].'<br> (v sekci <i>'.$data['typ'].'</i>)'; } } ?> 2.soubor: <? $queryNE = "".$select." WHERE priorita='1' AND datum >= '".$ted."' ORDER BY datum LIMIT 1;"; $vysledekNE=mysql_query($queryNE); $pocetNE=mysql_num_rows($vysledekNE); if ($pocetNE>0 || $porovnani!==$porovnaniNE) { while ($dataNE=mysql_fetch_array($vysledekNE)) { echo ' <div class="floatm"> <div class="menu"> <div>Nepřehlédněte</div> <b>'.$dataNE['ddatum'].'</b><br> '.$dataNE['popis'].'<br> (v sekci <i>'.$dataNE['typ'].'</i>) </div> </div> '; } } ?> Co by museli $porovnani a $porovnaniNE obsahovat nebo jak y to šlo jinak? Díky moc za všechny nápady |
||
Casero Profil |
#2 · Zasláno: 11. 4. 2007, 18:00:27
DeBon
A co prostě v te první straně, vybírat pouze bez priority 1??? |
||
DeBon Profil |
#3 · Zasláno: 11. 4. 2007, 18:11:03
Casero
Bohužel.. kvůli struktuře webu potřebuju mít v prvnim souboru (kvůli uspořádání stránek..) úplně nejbližší akci.. Ten druhej soubor je jenom okno, který se ukáže v úvodní straně jako "nepřehlédněte" když je něco významnýho.. |
||
Casero Profil |
#4 · Zasláno: 11. 4. 2007, 18:20:02
DeBon
Aha, ty ji nechceš zobrazovat na té druhé stránce??...tak třeba si načti všechny id těch aktuálních do pole, a pak v te druhé podmínce kontroluj zda id in_array...nebo do toho druhého dotazu dej podmínku, aby to bylo od toho id, co je poslední v aktuálních... |
||
DeBon Profil |
#5 · Zasláno: 11. 4. 2007, 18:48:58
Casero
Aha.. a ještě jedna malá technická... jak je načtu do pole? Nabadlo mi akorát tohleto, ale je to špatně:-( $porovnaniNE=mysql_fetch_row($vysledekNE); $porovnani=mysql_fetch_row($vysledek); if ($pocetNE>0 || !in_array("$porovnaniNE", $porovnani)) { |
||
Casero Profil |
#6 · Zasláno: 12. 4. 2007, 14:29:12
DeBon
if ($pocetNE>0 || !in_array($porovnaniNE[x], $porovnani)) { kde x je číslo sloupce s id |
||
Časová prodleva: 5 dní
|
|||
DeBon Profil |
#7 · Zasláno: 17. 4. 2007, 17:26:32
Tak takhle mi to taky nešlo.. Nakonec sem to vyřešil takhle:
Nejdřív sem zrušil cyklus, protože nebyl třeba.. (to to nespravilo) Potom jsme náhodou zjistil, že byla chyba (nechápu jak je to možný..) v operátoru ||... Teda podle mě to mělo fungovat.. ale když sem to dal do dvou podmínek, tak to zázrakem začalo fungovat.. takže výsledek byl akorát trochu změnění druhýho souboru na toto: <? $query = "".$select." WHERE datum >= '".$ted."' ORDER BY datum LIMIT 1;"; $vysledek=mysql_query($query); $data=mysql_fetch_array($vysledek); $queryNE = "".$select." WHERE priorita='1' AND datum >= '".$ted."' ORDER BY datum LIMIT 1;"; $vysledekNE=mysql_query($queryNE); $pocetNE=mysql_num_rows($vysledekNE); $dataNE=mysql_fetch_array($vysledekNE); if ($data['priorita']=='0') { if ($pocetNE>0){ echo ' <div class="floatm"> <div class="menu"> <div>Nepřehlédněte</div> <b>'.$dataNE['ddatum'].'</b><br> '.$dataNE['popis'].'<br> (v sekci <i>'.$dataNE['typ'].'</i>) </div> </div> '; } } ?> Divný, že mi tam tohleto nefungovalo.. Kdybyste tohleto někdo čet a náhodou věděl proč, tak to sem pls dyštak napište.. Tak Díky |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0