| 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: 15 let
|
|||
0