Autor | Zpráva | ||
---|---|---|---|
Monkeys Profil * |
#1 · Zasláno: 14. 3. 2013, 20:00:38
Ako najlepsie riesit rozdelenie produktov podla abecedneho zoznamu ?
Napr. ak z DB natiahnem vsetky produkty tak ich zoradit podla prveho pismena v abecednom poradi. Napr: (vymyslim si) A Auto, Astronaut, Aligator ... B Babika, Bizuteria, Blinker ... C Cingrlatka, Cilinder, cocacola ... D ... atd .. Zatial som skusil nieco taketo: $abeceda = array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"); while($row=$this->abeceda->fetch_assoc()){ if(in_array(substr($row['nazov'], 1), $abeceda)); // vypisat } }//end while M. |
||
juriad Profil |
#2 · Zasláno: 14. 3. 2013, 20:11:37
|
||
Monkeys Profil * |
#3 · Zasláno: 14. 3. 2013, 21:20:48
Hmm dotaz mam myslim spravny
SELECT ID, nazov, SUBSTRING(nazov, 1, 1) AS pismeno FROM tabulka WHERE ... ORDER BY pismeno ASC Problem je len vo vypise neviem ako vypisane polozky zgrupnut pod jedno pismeno Mam to takto: if(in_array($row[2], $abeceda)){ $this->view->abeceda .= '<span>'.$row[2].'</span>'; } $this->view->abeceda .= '<li><p>'.$row[1].'</p></li>'; Kazdu polozku mi vypise samostatne pod kazde pismeno teda sa to aj viac krat opakuje. M: |
||
DJ Miky Profil |
#4 · Zasláno: 14. 3. 2013, 21:26:57
Přečti si i PHP kód výpisu, který je tam odkázaný. Dává přesný návod, jak toho docílit.
|
||
Monkeys Profil * |
#5 · Zasláno: 14. 3. 2013, 22:50:21
OK tak som to opravil
$prevLabel = ""; while($row = $this->abeceda->fetch_array()){ if($row[2] != $prevLabel){ $this->view->abeceda .= '<div class="abeceda">'; $this->view->abeceda .= '<span>'.$row[2].'</span>' . "\n"; $this->view->abeceda .= '<ul>' . "\n"; $prevLabel = $row[2]; } $this->view->abeceda .= '<li><a href="#" title="'.$row[1].'">'.$row[1].'</a></li>' . "\n"; if(?){ $this->view->abeceda .= '</ul></div>' . "\n"; } }//end while Neviem co dat do tej poslednej podmienky aby to uzatvaralo blok Skusal som $prevLabel <> $row[2] teda logicky ked prestane platit naprikald ze A = A ale bez vysledku ... M. |
||
juriad Profil |
tu podmínku z 10. řádku přesun nahoru a na konec:
$prevLabel = ""; while($row = $this->abeceda->fetch_array()){ if($row[2] != $prevLabel){ if($prevLabel != "") { $this->view->abeceda .= '</ul></div>' . "\n"; } $this->view->abeceda .= '<div class="abeceda">'; $this->view->abeceda .= '<span>'.$row[2].'</span>' . "\n"; $this->view->abeceda .= '<ul>' . "\n"; $prevLabel = $row[2]; } $this->view->abeceda .= '<li><a href="#" title="'.$row[1].'">'.$row[1].'</a></li>' . "\n"; }//end while if($prevLabel != "") { $this->view->abeceda .= '</ul></div>' . "\n"; } |
||
Monkeys Profil * |
#7 · Zasláno: 14. 3. 2013, 23:04:02
juriad:
Bomba parada diky moc! M. |
||
Časová prodleva: 11 let
|
0