Autor Zpráva
Monkeys
Profil *
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
Nejčastější potíže s PHP (FAQ) » Nadpis skupiny nejen při výpisu z databáze
Monkeys
Profil *
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
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 *
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 *
juriad:

Bomba parada diky moc!

M.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: