Autor | Zpráva | ||
---|---|---|---|
mackopu Profil |
#1 · Zasláno: 10. 3. 2011, 07:47:50 · Upravil/a: mackopu
MYSQL dotazem
SELECT *, SUBSTRING(prijmeni,1,1) AS prvni_pismeno FROM table GROUP BY prijmeni, jmeno ORDER BY prijmeni function BezDiakritiky($str) { $str = StrTr($str, "ÁÄČÇĎÉĚËÍŇÓÖŘŠŤÚŮÜÝŽáäčçďéěëíňóöřšťúůüýž", "AACCDEEEINOORSTUUUYZaaccdeeeinoorstuuuyz"); return $str; }; $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"); echo "<div id=\"hornimenu\">\n"; for($i = 0; $i<count($abeceda); $i++) { echo "<a href=\"#".$abeceda[$i]."\">".$abeceda[$i]."</a> \n"; } echo "</div>\n"; echo "<table id=\"table_1\">\n"; echo " <tr>\n"; echo " <th>jméno</th>\n"; echo " </tr>\n"; while($radek = MySQL_Fetch_Array($dotaz)) { $prvni_pismeno = BezDiakritiky($radek["prvni_pismeno"]); //if() { $zalozka = "<a id=\"".$prvni_pismeno."\" name=\"".$prvni_pismeno."\"></a>"; //} echo "<tr>\n"; echo " <td>".$zalozka.$radek["prijmeni"]." ".$radek["jmeno"]."</td>\n"; echo " </tr>\n"; } echo "</table>\n"; Proměnná $zalozka vytvoří u každého jména záložku (anchor), ke kterému vede relevantní odkaz z navigace. A v tom je problém. Na stránce tak vznikají duplicity záložek, které tam být nemají. Např. u jmen Adamíra, Adamovská, Adamovský. Rovněž u Nováček, Novák, Novotný, Nový. Potřebuji tedy vytvořit podmínku, která vytvoří záložku JEN U PRVNÍCH záznamů, tedy v tomto případě u jména Adamíra a Nováček, prostě u všech prvních jmen, která začínají jednotlivými písmeny abecedy. Jak na to? |
||
Tori Profil |
#2 · Zasláno: 10. 3. 2011, 08:13:48
$prvni_pismeno = ''; while($radek = MySQL_Fetch_Array($dotaz)) { $zalozka = ($prvni_pismeno != $radek['prvni_pismeno'] ? '<a name="'.BezDiakritiky($radek["prvni_pismeno"]).'">' : ''); echo '<tr> ...... </tr>'; $prvni_pismeno = $radek['prvni_pismeno']; } |
||
mackopu Profil |
#3 · Zasláno: 10. 3. 2011, 08:41:58
Jednoduché, geniální. Děkuji moc :-)
|
||
Časová prodleva: 14 let
|
0