Kleine Frage zur FAQ

Brian Folte

Angesehenes Mitglied
Hallo. Ich habe mal eine Frage an euch Fachmänner, bei dhd24.com , gefällt mir die FAQ Liste wie sie aufgebaut ist und ich wollte euch mal Fragen wie dies genau Funktioniert den es sieht ja so aus als ob alle Texte in der hilfe.php Datei steht nur wie erreiche ich es das nur ein bestimmter Text angezeigt wird?

LG Brian
 
Also du hast die hilfe.php.

Du schaust zuerst, ob ein Wert übergeben worden ist, ggf. zeigst du eben diesen Seitenabschnitt an. Dann eben MySQL-Abfrage ausführen,....

CODE
<?php
$Seite = $_GET['s'];

if (isset $Seite) {

switch($Seite){
case 20:
//Entsprender Seitenteil wird angezeigt
//Vermutlich MySQL-Abfrage
break;

case 30:
//Entsprender Seitenteil wird angezeigt
//Vermutlich MySQL-Abfrage
break;

//....



} else {
// Übersicht über alle Themen
}
?>
 
Ich glaube, eine Switch Anweisung in diesen Sinne wird es nicht sein, sondern eine SQL-Abfrage, welche bis zu einer gewissen Ebene die Menüstruktur aufbaut. Die $_GET['s'] Variable ist hierbei vermutlich die der Primärschlüssel unter dem sich der entsprechende FAQ-Eintrag befindet.

Also "select * from tabelle where faq_id = {$_GET['s']};", das Menü würde dann wohl über (1) "select * from menu_tabelle where ebene = 1;" und (2) "select * from menu_tabelle where ebene = 2 and ref_id = {$field['id']};" aufgerufen, oder so ähnlich.

Das ist nur eine Grundlegende Darstellung der FAQ, die lässt sich natürlich auch besser realisieren, auch die Abfragen können noch optimiert werden (z.B. indem man angibt, welche Felder er nur auslesen soll).


Die FAQ scheint aber relativ primitiv gelöst zu sein. Er gibt halt immer eine FAQ Seite aus, ist der Wert für $_GET['s'] eine Zahl, wird die entsprechende Seiten-ID aufgerufen, ist die ID nicht vorhanden, erhäkt man nur eine leere Seite. Wenn Hingegen ein Char (also einzelner Buchstabe) übergeben wird, zeigt er Verweise zu allen Beiträge beginnend mit diesen Buchstaben an.
Sollte nicht angegeben sein, ruft er einfach die Seite mit der niedrigsten ID auf.
Vermutlich besteht die FAQ aus einer einzigen Datenbanktabelle.

CODE if ( is_string($_GET['s']) && strlen($_GET['s']) == 1 ) {
// FAQ-Seite anzeigen, wenn sie existiert
} else if ( is_int($_GET['s']) ) {
// Liste der FAQ-Einträge anzeigen, welche mit dem Buchstabe ... beginnen
} else {
// Standardanweisung
}



MfG Sascha Ahlers
 
Also meine Datenbank wollte ich eigendlich nicht mehr belasten sonst habe ich zu lange Ladezeiten.

Wäre es für mich da nicht besser alle Themen in einer einzelnen php Datei zu speichern und diese dann zu verlinken?

Will nämlich die Ladezeiten so niedrig wie möglich halten.

LG Brian
 
QUOTE Wäre es für mich da nicht besser alle Themen in einer einzelnen php Datei zu speichern [...]


Kannst du machen, aber dadurch vergrößert sich auch die Ladezeit deiner FAQ-Seite, da der PHP-Interpreter den ganzen Quellcode parsen muss, auch wenn er nur 20 Einträge anzeigt.

Wenn du keine Datenbank belasten willst, könntest du noch pro FAQ-Bereich eine Textdatei erstellen.
Wenn dann eben $s=20 übergeben wird, wird die Datei 20.txt geöffnet.
So würde die Ladezeit geringer sein, als mit einer einzigen PHP-Seite.
 
Ich habe mal gehört bzw gesagt bekommen das txt Datein nicht sicher sein sollen. Deshalb habe ich diese bis jetzt nie verwendet.

LG Brian
 
QUOTE (Brian Folte @ Fr 13.10.2006, 21:36) Ich habe mal gehört bzw gesagt bekommen das txt Datein nicht sicher sein sollen. Deshalb habe ich diese bis jetzt nie verwendet. [...]

In welchen Zusammenhang?
 
QUOTE (Brian Folte @ Fr 13.10.2006, 21:36) [...] txt Datein nicht sicher sein sollen. [...]



Meinst du, weil jeder die Dateien manuell öffnen kann?
Klar, aber dafür muss der User den Namen der txt-Datei wissen.

Und was wäre so schlimm, wenn jemand nun doch den Dateinamen der txt-Dateien herausfindet?
Es stehen dort keine Passwörter etc. drin, sondern nur FAQ-Fragen und - Antworten.
 
Zurück
Oben