Autor | Zpráva | ||
---|---|---|---|
jullin Profil |
#1 · Zasláno: 8. 11. 2012, 18:02:50
Dobrý den mám problém a už si sním vážně nevím rady.
můj cíl je takový , aby se před barevným textem v závorkách (PVP,PVE, ...), viz. obrázek, načetl příslušný text v který je u daného sloupečku v databázi. Tato část kódu by to podle mě měla umožnit, ale jaksi se nedaří. Zobrazuje se jen barevný text v závorkách, ale ne text před ním. Přitom u ostatních textů (červený, zelený) je vše v pořádku: <? if ( preg_match( '/^PVE - (parta|raid) (.*)$/i', $data['raid_type'], $matches) ) { $data['raid_type'] = $matches[2]." (<font color=green>PVE</font>)"; } if ( preg_match( '/^PVP - (.*)$/i', $data['raid_type'], $matches) ) { $data['raid_type'] = $matches[1]." (<font color=red>PVP</font>)"; } if ( preg_match( '/^DUNG - (.*)$/i', $data['raid_type'], $matches) ) { $data['raid_type'] = $matches[3]." (<font color=orange>DUNGEON</font>)"; } ?> Celý kód: <? session_start(); include "global.cfg." .$_SERVER['SERVER_NAME']. ".php"; include $incPath."db.php"; include $incPath."misc.php"; include $incPath."fce_calendar.php"; authorize("", true); $SECTION = "RAID_LIST"; switch ($_REQUEST['error']){ case 1: $err .= "<br>Nemáš práva pro přístup k této funkci."; break; case 2: $err .= "<br>Nová akce úspěšně založena."; break; } if ($_REQUEST['ac'] == "cancel"){ $q = "UPDATE raids SET deleted = '1' WHERE id = '".$_REQUEST['raidId']."'"; dbquery($q); } if ($_REQUEST['ac'] == "rebuild"){ $q = "UPDATE raids SET deleted = '0' WHERE id = '".$_REQUEST['raidId']."'"; dbquery($q); } if ($_REQUEST['ac'] == "delete"){ $q = "DELETE FROM raids WHERE id = '".$_REQUEST['raidId']."'"; dbquery($q); } $sq = ""; if ($_REQUEST['filtr']){ if ($_REQUEST['type']) $sq .= " AND type_id = '".$_REQUEST['type']."'"; if ($_REQUEST['title']) $sq .= " AND title LIKE '%".$_REQUEST['title']."%'"; } $q = "SELECT raids.*, raid_type.title AS raid_type, UNIX_TIMESTAMP(takeplace) AS date, raid_type.ord, raid_type.rights FROM raids LEFT OUTER JOIN raid_type ON raid_type.id = raids.type_id WHERE (takeplace >= '".date("Y-m-d")."' or takeplace = '0000-00-00 00:00:00') $sq ORDER BY raid_type.ord ASC, takeplace ASC, time_since ASC"; $r = dbquery($q); $new = array(); while ($data = dbarray($r)){ if (!$HTTP_COOKIE_VARS["raid".$data['id']]){ setcookie("raid".$data['id'], 1, strtotime("+1 month")); $new[$data['id']] = 1; } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs"> <html> <head> <link rel="stylesheet" href="styles/main.css" type="TEXT/CSS"> <link rel="shortcut icon" href="./favicon.ico" /> <meta http-equiv="Content-Type" content="text/html; charset=windows-1250"> <title><?=$TITLE?></title> <script language="JavaScript" type="text/javascript" src="js/functions.js"></script> </head> <body> <div id="main"> <? include $incPathHtml."menu.php"; ?> <div id="main_2"> <div class="headline"> <h3>Filtr událostí</h3> </div> <div id="filtr"> <form action="raid_list.php" method="POST"> <input type="hidden" name="filtr" value="1"> <? $month = $_REQUEST['month']; if (!isSet($month)) $month = date("m"); $year = $_REQUEST['year']; if (!isSet($year)) $year = date("Y"); ?> <input type="hidden" name="month" value="<?=$month?>"> <input type="hidden" name="year" value="<?=$year?>"> <p>typ: <select name="type"> <option value="">..</option> <? $i = 0; $r = getRaidType(); while ($data = dbarray($r)){ if (($tempRights != $data['rights']) && ($i)){ echo '<option value="">---------------------</option>'; } ?> <option value="<?=$data['id']?>" <?=($_REQUEST['type'] == $data['id'])?" selected":""?>><?=$data['title']?></option> <? $tempRights = $data['rights']; $i++; } ?> </select> název: <input type="text" name="title" value="<?=$_REQUEST['title']?>"> <input type="submit" value="Filtrovat" class="submit"> </p> </form> </div> <div> <div class="headline"> <h3>Přehled událostí (PVE)</h3> </div> <? $i = 0; $changedOrd = 0; $style = ''; $r = dbquery($q); while ($data = dbarray($r)){ if ((!$changedOrd) && ($data['ord'] != 1)){ // pri zmene ord (priority) udela mezeru, tz mezi pve raidy a ostatnimi $changedOrd = 1; echo ' <div> <p> </p><br> </div> <div class="headline"><h3>Přehled událostí (PVP a DUNGEONY)</h3></div>'; $style = 'raidNotPve'; } if ($i > 1) $i = 0; $q1 = "SELECT able, approved FROM raid_user WHERE raid_id = '".$data['id']."' AND user_id = '".$_SESSION['user']['id']."'"; $r1 = dbquery($q1); $span = ''; if (dbnumrows($r1)){ if ((dbresult($r1, 0, 0)) && (dbresult($r1, 0, 1))){ $span = '<span class="green">*</span> '; }else if ((dbresult($r1, 0, 0)) && (!dbresult($r1, 0, 1))){ $span = '<span class="yellow">*</span> '; }else{ $span = '<span>*</span> '; } } ?> <div class="raid bgcolor_<?=$i.' '.$style?>"> <div class="raid_3"> <div class="raid_4"> <? if ( preg_match( '/^PVE - (parta|raid) (.*)$/i', $data['raid_type'], $matches) ) { $data['raid_type'] = $matches[2]." (<font color=green>PVE</font>)"; } if ( preg_match( '/^PVP - (.*)$/i', $data['raid_type'], $matches) ) { $data['raid_type'] = $matches[1]." (<font color=red>PVP</font>)"; } if ( preg_match( '/^DUNG - (.*)$/i', $data['raid_type'], $matches) ) { $data['raid_type'] = $matches[3]." (<font color=orange>DUNGEON</font>)"; } ?> <p><?=$span."<a href=\"raid_detail.php?raidId=".$data['id']."\" class=\"big\">".$data['raid_type']."</a>"?></p> </div> <div class="raid_5"> <p><?="(".getDay($data['date']).") ".date("d. m. Y", $data['date'])." v ".substr($data['time_since'], 0, 5)?></p> </div> <div class="raid_6"> <p><?="<span class=\"big\">".$data['guild']?></p> </div> <div class="raid_7"> <p><?="<span class=\"big\">".cs_strtoupper($data['title'])."</span>"?> <?=($data['deleted'])?" <span class=\"err\">!ZRUŠENO!</span>":""?><?=(($new[$data['id']]) && (!$data['deleted']))?'<span class="err">!NOVÝ!</span> ':''?></p> </div> </div> <? if (authorize($data['rights'])){ ?> <div class="raid_8"> <p><a href="raid_edit.php?raidId=<?=$data['id']?>&ac=edit">Editovat událost</a> | <? if (!$data['deleted']){ ?> <a href="raid_list.php?ac=cancel&raidId=<?=$data['id']?>">Zrušit událost</a> <? }else{ ?> <a href="raid_list.php?ac=rebuild&raidId=<?=$data['id']?>">Obnovit událost</a> <? } ?> | <a href="raid_list.php?ac=delete&raidId=<?=$data['id']?>">Smazat událost</a></p> </div> <? } ?> </div> <? $i++; } ?> </div> <div id="raid_2"> <p class="err"><?=$err?></p> </div> <? include $incPathHtml."reset.php"; ?> <? include $incPathHtml."bottom.php"; ?> </div> </div> </body> </html> |
||
jullin Profil |
#2 · Zasláno: 8. 11. 2012, 20:58:46
Tak už vyřešeno ->
if ( preg_match( '/^DUNG - (>) (.*)$/i', $data['raid_type'], $matches) ) { $data['raid_type'] = $matches[2]." (<font color=orange>DUNGEON</font>)"; } a v DB změněna hodnota sloupce ze 3 na 2 a přidán do názvu >. - trochu mě štve , že tam musí být > tenhle zobák, ale aspoň to chodí :). |
||
peta Profil |
Priste zkus napsat jednoduchy php kod. neco jako toto:
$str = '......'; //echo z $data['raid_type'] echo $str.'<br>'; if ( preg_match( '/^DUNG - (.*)$/i', $str, $matches) ) { print_r($matches); $str = $matches[3]." (<font color=orange>DUNGEON</font>)"; echo $str.'<br>';; if ( preg_match( '/^DUNG - (>) (.*)$/i', $data['raid_type'], $matches) ) { $data['raid_type'] = $matches[2]." (<font color=orange>DUNGEON</font>)"; } '/^DUNG - (>) (.*)$/i' - zavorka 1 = (>), zavorka 2 = (.*) $matches[0] = shoda s celym vyrazem $matches[1] = zavorka 1 $matches[2] = zavorka 2 '/^DUNG - (.*)$/i' - zavorka 1 = (.*) $matches[0] = shoda s celym vyrazem $matches[1] = zavorka 1 $data['raid_type'] = $matches[1]." (<font color=orange>DUNGEON</font>)"; Prekvapujici je, ze radek nad ttim to mas spravne if ( preg_match( '/^PVP - (.*)$/i', $data['raid_type'], $matches) ) { $data['raid_type'] = $matches[1]." (<font color=red>PVP</font>)"; |
||
jullin Profil |
#4 · Zasláno: 9. 11. 2012, 13:41:16
Jo jo diky už jsem to udělal :)
|
||
Časová prodleva: 13 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0