Einzelnen Beitrag anzeigen

Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#1

[SQL/PHP] Herausfinden ob Suchergebnis mit Ziffer beginnt

  Alt 15. Apr 2006, 16:46
Hallo!

Ich habe ein Skript programmiert, das Daten aus einer Datenbank ausliest und diese dann ausgibt.
Man hat mehrere Suchkriterien nach denen man suchen kann.
Wie bereits in diesem Thread erwähnt habe ich eine Filterleiste gemacht, mit denen man die Ergebnisse nach Anfangsbuchstaben filtern kann.
Das ganze funktioniert auch schon sehr gut, nur will der Inhaber der Seite jetzt auch noch, dass nur die Buchstaben angezeigt werden, die auch ein Ergebnis liefern (immer diese Extrawünsche ).
Bei Buchstaben mache ich das so:
SQL-Code:
SELECT SUBSTRING(serie,1,1) AS used
FROM page_series AS s, page_types AS t, page_publishers AS p
WHERE s.type = t.id
  AND p.id = s.publisher
  AND serie LIKE '%cat%
GROUP BY used
ORDER BY used ASC
In diesem Fall hat jemand nach cat im Feld serie gesucht. Jetzt bekomme ich als Resultat dieses Querys 'B', 'C' und '.', weil sowohl Einträge mit B, C wie auch mit einem Punkt beginnend verfügbar sind.
Ich habe jetzt mit der PHP-Funktion in_array() jeden Buchstaben vor der Ausgabe überprüft:
Code:
[color=#800080]for[/color] ([color=#000080][i]$i[/i][/color] = [color=red]65[/color]; [color=#000080][i]$i[/i][/color] <= [color=red]90[/color]; [color=#000080][i]$i[/i][/color]++)
{
  [color=#000080][i]$a[/i][/color] = chr([color=#000080][i]$i[/i][/color]);
  [color=#FF8000]// Print only chars which have a result.[/color]
  [color=#800080]if[/color] (in_array([color=#000080][i]$a[/i][/color], [color=#000080][i]$need[/i][/color]))
  {
    [color=#000080][i]$charlist[/i][/color] .= [color=#008000]"<a href=\"[/color][color=#000080][i]$_SERVER[/i][/color][color=#008000][PHP_SELF]?char=[/color][color=#000080][i]$a[/i][/color][color=#000080][i]$VARS[/i][/color][color=#008000][view][/color][color=#000080][i]$VARS[/i][/color][color=#008000][find]\">[/color][color=#000080][i]$a[/i][/color][color=#008000]</a> | "[/color];
  }
}
Das funktioniert auch alles ganz gut, nur will ich nicht für 0, 1, 2, .. 9 einen extra Link machen, da das überflüssig wäre. Ich will das ganze mit einem Link '0-9' erledigen, der alle Nummern anzeigt und einen Link mit etc. der alle Sonderzeichen ausgibt.
Soweit funktioniert nochimmer alles, bis auf die Tatsache, das mir kein vernünftiger Weg einfällt, wie ich überprüfe ob die Links 0-9 bzw etc. überhaupt benötigt werden, also angezeigt werden sollen.
Desweiteren wollte ich noch fragen, ob das Suchen des Buchstabens mit der Funktion in_array() sinnvoll ist oder ob das Resourcenverschwendung ist und jemandem etwas besseres einfällt. Gibts überhaupt allgemein eine Bessere Lösung?

Wäre über jeden Tipp froh.

Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat