Autor | Zpráva | ||
---|---|---|---|
Michales Profil |
#1 · Zasláno: 7. 5. 2013, 10:30:10
Zdravím,
potřeboval bych poradit ohledně php. Mám tuto struktůru tabulky v db: teamid teamname nickname teamwins teamlosses teamties teamforfeits teamrf teamra teamdiv teamdiv2 teamorder active masterteam round_1 round_2 round_3 round_4 fielding_team limit Jedná se mi o sloupec limit. V něm je hodnota která určuje limit zápasů. Potřeboval bych pokud daný tým neodehraje daný počet zápasů, které jsou ve sloupci limit tak aby v tabulce byl označený červeně. Pokud limit splní aby byl označený zeleně. Tým zobrazuji následně: <td id="f"><b><a id="f" href="rozpis_new_white.php?tym=<?php print $results['teamid']; ?>&conf=<?php print $confid; ?>&body=<?php print $body; ?>&postup=<?php print $postup; ?>&baraz=<?php print $baraz; ?>" title="View scores for <?php print $results['teamname']; ?>"><?php print $results['teamname']; ?></a></b></td> Děkuji. |
||
juriad Profil |
#2 · Zasláno: 7. 5. 2013, 10:36:46
jak lze vypočíta počet odehraných zápasů (od někud tu informaci musíš mít)?
|
||
Michales Profil |
#3 · Zasláno: 7. 5. 2013, 10:44:36
juriad:
Dám sem větší část toho kodu: <?php } if ($result_exist) { $query="SELECT teamid, teamname, nickname, teamwins, teamties, teamlosses, teamforfeits, teamrf, teamra, (teamwins + teamties + teamlosses + teamforfeits) AS gamesplayed, ( (SELECT COUNT(1) FROM sportsdb_wins WHERE (winortie=1 AND winner=teamid) OR (winortie=4 AND loser=teamid) ) * $points_win + (SELECT COUNT(1) FROM sportsdb_wins WHERE (winortie=5 AND loser=teamid) OR (winortie=2 AND winner=teamid) ) * $points_winned_forfeit + (SELECT COUNT(1) FROM sportsdb_wins WHERE (winortie=5 AND winner=teamid) OR (winortie=2 AND loser=teamid) ) * $points_forfeit + (SELECT COUNT(1) FROM sportsdb_wins WHERE winortie=0 AND winner=teamid OR loser=teamid) * $points_tie ) AS points, $winning_pct_formula AS winningpct, ((({$results['leadervalue']}) - (teamwins - teamlosses - teamforfeits)) / 2) AS gamesbehind FROM sportsdb_teams WHERE teamdiv = {$divs['divid']}"; if ($standings_sort == 9) { $query .= " AND teamid != {$results['teamid']}"; } $query .= " AND active = 1" . $division_sort . " ORDER BY $sort_order"; //echo "<br><pre>$query</pre><br>"; $result=mysql_query($query); $num=mysql_num_rows($result); $postupujici=(int)@$_GET['postup']; $baraz=(int)@$_GET['baraz']; $row_number =0; while ($results = mysql_fetch_array($result, MYSQL_ASSOC)) { $winningpct=number_format($results['winningpct'], 3)*100; $gamesbehind = number_format($results['gamesbehind'],1); if ($gamesbehind == "0.0") { $gamesbehind = "---"; } $sql="SELECT w.winner AS winnerID,w.loser AS loserID,datum,winortie,rf,ra,tw.teamname AS winner,tl.teamname AS loser FROM sportsdb_wins w LEFT JOIN sportsdb_teams tw ON w.winner=tw.teamid LEFT JOIN sportsdb_teams tl ON w.loser=tl.teamid WHERE w.winner={$results['teamid']} OR w.loser={$results['teamid']} ORDER BY w.winid DESC LIMIT 5"; $resWins=mysql_query($sql); ?> <tr style="background-image:url(img/Radky.png)"> <td style="color:<? If($row_number<$postupujici)echo'#008000';ElseIf($row_number-$postupujici<$baraz)echo'#4169e1';Else echo'#8b0000'?>"><b><?=++$row_number ?></b></td> <td><?php print "\t\t" . '<img height="15" width="16" title="' . $results['teamname'] .'" src="http://www.michales.eu/img/' . $results['teamname'] .'.gif">' . "\n"; ?></td> <td id="f"><b><a id="f" href="rozpis_new_white.php?tym=<?php print $results['teamid']; ?>&conf=<?php print $confid; ?>&body=<?php print $body; ?>&postup=<?php print $postup; ?>&baraz=<?php print $baraz; ?>" title="View scores for <?php print $results['teamname']; ?>"><?php print $results['teamname']; ?></a></b></td> <td width="35%"><a id="c" href="soupiska_tymu_black.php?tym=<?php print $results['teamname']; ?>&conf=<?php print $confid; ?>" title="View scores for <?php print $results['nickname']; ?>"><em><?php print $results['nickname']; ?></em></a></td> <td><?php print $results['gamesplayed']; ?></td> <td><?php print $results['teamwins']; ?></td> <td><?php print $results['teamlosses']; ?></td> <?php if ($show_ties) { ?> <td><?php print $results['teamties']; ?></td> <?php } if ($forfeit) { ?> <td><?php print $results['teamforfeits']; ?></td> <?php } if ($show_rfra) { ?> <td><?php print (($results['teamrf']).':'. $results['teamra']); ?></td> <?php } ?> <?php if ($show_points) { ?> <td id="e"><b><?php print $results['points']; ?></b></td> <?php } ?> <td><?php while($rw=mysql_fetch_assoc($resWins)){ switch($rw['winortie']){ case 0: $bg='white'; $winner=$loser=$rw['winner'].'+'.$rw['loser']; $popis='remíza'; break; case 1: $bg=($rw['winnerID']==$results['teamid'])?'Mediumseagreen':'Lightcoral'; $winner=$rw['winner']; $loser=$rw['loser']; $popis='Vyhrál tým - '.$rw['winner']; break; case 2: $bg=($rw['winnerID']==$results['teamid'])?'royalblue':'royalblue'; $winner=$rw['winner']; $loser=$rw['loser']; $popis='V prodloužení vyhrál tým - '.$rw['winner']; break; case 4: $bg=($rw['winnerID']==$results['teamid'])?'Lightcoral':'Mediumseagreen'; $winner=$rw['loser']; $loser=$rw['winner']; $popis='Vyhrál tým - '.$rw['loser']; break; case 5: $bg=($rw['winnerID']==$results['teamid'])?'royalblue':'royalblue'; $winner=$rw['loser']; $loser=$rw['winner']; $popis='V prodloužení vyhrál tým - '.$rw['loser']; break; } $vlozeno=datetime::createfromformat('Y-m-d H:i:s',$rw['datum']); $popis_datum='Výsledek uložen v '.$vlozeno->format('H:i:s: D.d.n.Y'); echo '<div style="background-image:url(\'/img/'.$bg.'.gif\');width:10px;height:10px;float:left"> <div class="hiddenxD" style="background-image:url(\'/img/'.$bg.'.png\');width:240px;"><p/> '.$popis.'<br/> '.$popis_datum.'<br/> '.$rw['winner'].' <img width="15" height="15" src="/img/versus.png"> '.$rw['loser'].'<br /> '.$rw['rf'].':'.$rw['ra'].' <br /> Gratulujeme!! <br /> </div> </div>'; } ?></td> </tr> <?php } } ?> |
||
juriad Profil |
#4 · Zasláno: 7. 5. 2013, 10:59:39
1) Přídáš sloupec limit do SELECTu na řádku 4, budeš muset napsat:
`limit` , protože limit je klíčové slovo v mysql.
2) použiješ stejný způsob jako na řádku 41 s podmínkou: $results['gamesplayed'] < $result['limit'] a pokud je podmínka splněna, nastavíš color na #ff0000. (Za předpokladu, že v databázi jsou čísla)
Máš v tom docela bordel, nebylo by lepší místo nastavování color přes inline styl přiřadit řádku nějakou třídu, kterou bys pak nastyloval přes css? (Ano bylo, hned to předělám, díky za tip. Nemáš zač.) |
||
Joker Profil |
#5 · Zasláno: 7. 5. 2013, 11:01:23
Michales:
No tak jestli počet odehraných zápasů je v gamesplayed, tak není moc co řešit, ne? Pokud gamesplayed je menší než limit, zobrazit červeně. Jinak návrh té tabulky, dotazy a práce s daty mi přijdou trošku divoké. |
||
Michales Profil |
Děkuji za rady.
Nenapsali by jste mi to prosím? Nějak v tom tápu. |
||
juriad Profil |
#7 · Zasláno: 7. 5. 2013, 11:30:59
Michales:
Pokud jsi stávající kód dokázal napsat sám, tak by snad neměl být problém přidat na jedno místo jednu podmínku. Pokud máš problém (konkrétnější než "nějak v tom tápu"), poděl se o něj (podrobně jej popiš: co jsi zkoušel a co nefunguje) a třeba přijdeme na řešení. |
||
Michales Profil |
#8 · Zasláno: 7. 5. 2013, 11:32:14
kod jsem nespal sám, je to stažené z internetu.
Problém je v tom že nevím jak napsat tu podmínku |
||
juriad Profil |
Pokud chceš celý řádek červeně, tak na řádek 40 přidáš podmínku, která ti vypíše do style
color: #ff0000; v případě, že podmínka platí
<tr style="background-image:url(img/Radky.png); <?php if(podmínka) { echo 'color: #ff0000;'; } ?>"> Podmínku už jsem ti napsal v [#4]. |
||
Michales Profil |
#10 · Zasláno: 7. 5. 2013, 11:52:41
Tak mi to stejně nejde, chci jen obarvit příslušné pole(písmo)
Mám to takto a nic to neobarvilo: <td style="font-color:<?php if($results['gamesplayed'] < $result['limit']) { echo 'color: #ff0000' ;} ?>"><?php print $results['gamesplayed']; ?></td> |
||
juriad Profil |
<td <?php if($results['gamesplayed'] < $results['limit']) { echo 'style="color: #ff0000;"';} ?>><?php print $results['gamesplayed']; ?></td> (1) nic jako font-color neexistuje (2) vypisuj style, jen pokud má mít nějaký obsah (když je splněna podmínka) (3) měl jsi tam nejspíš překlep: $result
|
||
Michales Profil |
#12 · Zasláno: 7. 5. 2013, 12:03:28
Funguje naprosto perfektně. Děkuji
|
||
Časová prodleva: 11 let
|
0