Autor Zpráva
DeBon
Profil
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
DeBon
A co prostě v te první straně, vybírat pouze bez priority 1???
DeBon
Profil
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
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
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
DeBon
if ($pocetNE>0 || !in_array($porovnaniNE[x], $porovnani)) {
kde x je číslo sloupce s id
DeBon
Profil
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
Toto téma je uzamčeno. Odpověď nelze zaslat.

0