Sections mit Mysql?

Danke ich werds mal nach deiner kurzen aber informativen Anleitung versuchen. Bei nicht gelingen meld ich mich noch mal
 
Ok ich hab das jetzt so versucht. Allerdings hab ich jetzt dieses Problem

PHP:
Parse error: syntax error, unexpected T_CONST, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home/admincn/public_html/class/PDO.class.php on line 88

Desweiteren check ich das nicht so ganz

PHP:
if($data = $stmt->fetch()) {
    // hier etwas mit den Daten machen
}

Wenn möglich bitte ich um eine etwas genauere Erklärung.

Ausserdem möchte ich wissen ob ich die Navigation weiters nur so machen muss

index.php?section=test

oder anders.

mfg
 
Das mit dem Syntax-Fehler scheint bekannt zu sein, es gibt auch einen Fix. Bearbeite die Datei PDO.class.php ab Zeile 88 und lösche die const-Definitionen raus. Statt dessen bau mal das an diese Stelle:

PHP:
function FETCH_ASSOC(){return PDO_FETCH_ASSOC;}
function FETCH_NUM(){return PDO_FETCH_NUM;}
function FETCH_BOTH(){return PDO_FETCH_BOTH;}
function FETCH_OBJ(){return PDO_FETCH_OBJ;}
function FETCH_LAZY(){return PDO_FETCH_LAZY;}
function FETCH_BOUND(){return PDO_FETCH_BOUND;}
function ATTR_SERVER_VERSION(){return PDO_ATTR_SERVER_VERSION;}
function ATTR_CLIENT_VERSION(){return PDO_ATTR_CLIENT_VERSION;}
function ATTR_SERVER_INFO(){return PDO_ATTR_SERVER_INFO;}
function ATTR_PERSISTENT(){return PDO_ATTR_PERSISTENT;}

Zur Erklärung deiner zweiten Frage:

Es wird überprüft, ob bei dem Statement ein Ergebnis zurück geliefert wurde. Wenn ja, ist in $data der Datensatz. Wenn du den Datensatz als Objekt haben willst, schreib stattdessen:

PHP:
if($data = $stmt->fetch(PDO::FETCH_OBJ)) {
    echo $data->id; // Keine Ahnung, wie deine Tabelle aufgebaut ist. Ist nur ein Beispiel.
}

Grüße
 
Ok der fix hat funktioniert, danke.

Und wie krieg ich die daten dann angezeigt?

Über welche url meine ich.

mfg
 
Also im moment mach ich das so

index.php?section=test

wie muss ich das mit mysql machen?

mfg
 
Ich kenne den Aufbau deiner Datenbank nicht, daher kann ich dir keine 100%ige Antwort geben, und verweise noch mal auf meinen schon geposteten Code:

PHP:
$stmt = $db->prepare("SELECT * FROM sections WHERE sectionname = :section");
$stmt->bindValue(':section', $_GET['section']);
$stmt->execute();
if($data = $stmt->fetch()) {
    // Hier hast du die Daten deiner Section ausgelesen, die ja
    // per URL übergeben wurde, in deinem Falle `test`
}

Es kommt nun darauf an, was deine Sektion darstellen soll und vor allem, wie sie in der DB aufgebaut ist.
 
Ok ich schätze ma ich muss genauer werden.

ALSO

Im moment include ich meine sections indem ich sie in nem array speichere und den dann wie folgt Abrufe:

index.php?section=test

test ist der section name und im array included er z.b. die test.php.

Die datenbank hab ich jetzt so aufgebaut

id, sectionname,sectioncontent

id is auto_increment

ich habe einen test eintrag gemacht und der sieht so aus

id 1
sectionname test
sectioncontent lupsom erdim quados

Meine frage ist nach wie vor: Wie kann ich meinen section anzeigen lassen?

Mit index.php?section=test funktioniert es nicht sprich leere seite.

Bei index.php:section=test bleibt die seite auch leer

Gibt es sonst noch eine möglichkeit?
 
Wie genau sieht dein Code aus? Also der zum darstellen einer Section?

Grundsätzlich ist

index.php?section=test

schon richtig.

Also liegt der Fehler im Script, was die Ausgabe macht.
 
Also mein code schaut so aus

PHP:
if($data = $stmt->fetch()) {
    echo $data->sectioncontent;
}

mfg
 
Zurück