Temat: Generowane warunki IF na podstawie zawartości tablicy w...
Ok podstaram się przedstawić wszystko jak mówił Piotr. Zgadzam się z nim problem pewnie jest banalny hehe. Tyle przy tym siedze, że nie widzę już tego. Nigdy nie chciałem wrzucać całego kodu bo mogłoby to przerazić do czytania ;) wolałem wytłumaczyć.
/* *** ZAPYTANIE SQL - WYCIĄGA WSZYSTKIE ZLECENIA - TO JEST OK! *** */
public function selectOrdersByOffice($office)
{
$this->connectDB();
$dbResult = @mysql_query(" SELECT oc.id_order, DATE_FORMAT(oc.date, '%d-%m-%Y') AS date, DATE_FORMAT(oc.date, '%H:%i') AS time, u.name, u.surname, c.firm_name, m.module_name, oc.edition_number, oc.newspapers FROM orders_current AS oc INNER JOIN users AS u ON oc.users_id_user = u.id_user INNER JOIN clients AS c ON oc.clients_id_client = c.id_client AND u.offices_id_office = ".$office." INNER JOIN modules AS m ON oc.modules_id_module = m.id_module; ") or die('Błąd zapytania - select eventu zlecenia.');
return($dbResult);
$this->releaseDB();
}
/* *** ZAPYTANIE SQL - Z TABLICY KLUCZ I WARTOŚĆ [ID + TYTUŁ] - TO JEST OK! *** */
public function selectAllNewspapers()
{
$this->connectDB();
$dbResult = @mysql_query("SELECT id_newspaper, newspaper_name FROM newspapers") or die('Błąd zapytania - select wszystkich gazet.');
return($dbResult);
$this->releaseDB();
}
/* *** FORMULARZ GENERUJE W TABELI LISTĘ WSZYSTKICH ZLECEŃ *** */
<form class="" action="" method="POST" name="zleceniaPrzegladajForm">
<?php echo "<div style=\"position: absolute; top: 5px; left: 220px;\">".$btnUsunZlecenie."</div>";?>
<?php $office = $_SESSION['offices_id_office'];
$ordersByOffice = $dbh->selectOrdersByOffice($office);
$num_rows = mysql_num_rows($ordersByOffice);
$selectAllNewspapers = $dbh->selectAllNewspapers();
$selectAllNewspapersArray = mysql_fetch_array($selectAllNewspapers);
if ($num_rows > 0) // jeśli coś znalazło
{ ?>
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="classicTable">
<thead>
<tr>
<th width="20"></th>
<th>NAZWA FIRMY</th>
<th>MODUŁ</th>
<th>NUMERY GAZET</th>
<th>GAZETY</th>
<th>ZLECENIOBIORCA</th>
<th>DATA WPROWADZENIA</th>
</tr>
</thead>
<tbody>
<?php
while ($ordersByOfficeArray = mysql_fetch_array($ordersByOffice))
{
echo "<tr><th><input name=\"id_order\" type=\"radio\" class=\"\" value=\"".$ordersByOfficeArray['id_order']."\"></th>
<td>".$ordersByOfficeArray['firm_name']."</td>
<td>".$ordersByOfficeArray['module_name']."</td>
<td>".$ordersByOfficeArray['edition_number']."</td>
/* LINIA PONIŻEJ - ZROBIŁEM KLASĘ W KTÓRY WRZUCAM np. (;0;1;2;3;4; , TABLICA Z WSZYSTKIMI [ID + TYTUŁY]) MYŚLĘ, ŻE TU JEST BŁĄD... */
<td>".$decodeNewspaper->decodeN($ordersByOfficeArray['newspapers'],$selectAllNewspapersArray)."</td>
<td>".$ordersByOfficeArray['name']." ".$ordersByOfficeArray['surname']."</td>
<td>".$ordersByOfficeArray['date']."</td>
</tr>";
};
?>
</tbody>
</table>
</form>
/* *** KLASA decodeNewspaper - TUTAJ UZYSKUJE WYNIK WIZUALNY TAKI JAKI CHCĘ :) TYLKO ŻE TE WARUNKI IF SĄ Z RĘKI WPISANE. CHCIAŁEM ŻEBY BYŁY GENEROWANY NA PODSTAWIE TABLICY [ID + TYTUŁY] *** */
class decodeNewspaper
{
private function notNull($var) { return($var != null);} // NIE RUSZAĆ
public function decodeN($newspapersString,$selectAllNewspapersArray)
{
$expStringN = explode(';', $newspapersString);
$strN = '';
$expStringNFilter = array_filter($expStringN,array($this, "notNull"));
foreach ($expStringNFilter as $strKey => $strValue)
{
/* **** START - MOJE WCZEŚNIEJSZA PROPOZYCJA - tylko że tutaj wpisałem z palca te warunki.**** */
if ($strValue == 0) {$newspaperName = "Życie Rawicza<br/>";};
if ($strValue == 1) {$newspaperName = "Życie Gostynia<br/>";};
if ($strValue == 2) {$newspaperName = "Gazeta Jarocińska<br/>";};
if ($strValue == 3) {$newspaperName = "Życie Pleszewa<br/>";};
if ($strValue == 4) {$newspaperName = "Gazeta Krotoszyńska<br/>";};
if ($strValue == 5) {$newspaperName = "Wieści Rolnicze<br/>";};
$strN .= $newspaperName;
/* **** KONIEC - MOJE WCZEŚNIEJSZA PROPOZYCJA **** */
};
return $strN;
}
};
I teraz PROBLEM:
Z Ciągu znaków $ordersByOfficeArray['newspapers']
który dla każdego zlecenia wygląda np. tak: ;0;2;3;4;
zrobiło na podtsawie tablicy z zapytania $selectAllNewspapersArray
którego wynik wygląda tak:
+ ----------------- + ------------------- +
| id_newspaper | newspaper_name |
+ ----------------- + ------------------- +
| 0 | Życie Rawicza |
| 1 | Życie Gostynia |
| 2 | Gazeta Jarocińska |
| 3 | Życie Pleszewa |
| 4 | Gazeta Krotoszyńska |
| 5 | Wieści Rolnicze |
+ ----------------- + ------------------- +
Wynik ma wyglądać tak:
Żyie Rawicza
Gazeta Jarocińska
Życie Pleszewa
Gazeta Krotoszyńska
Trochę tego jest ... ;/
P.S
Tak ma wyglądać:
http://imageshack.us/photo/my-images/27/taktb.jpg
Tak wygląda aktualnie:
http://imageshack.us/photo/my-images/577/niei.jpg
Waldemar Stańko edytował(a) ten post dnia 26.04.12 o godzinie 09:33