Unterseiten..

01/22/2012 23:17 KnusperToast#1
Hey ;)

Ich habe mittlerweile schon ein paar Homepage erstellt und bin auch recht zufrieden. Jedoch wollte ich eine Art Toplist machen ... Man soll aber nicht
nur die Banner und links ausgegeben bekommen, sondern jede Sache,
soll eine Untersteite haben, wie hier zB im Forum

newthread.php?do=newthread&f=691

Wie funktioniert das ....

ich nehme mal an, dass jede seite gleich aufgebaut ist, also jede unterseite
nur andere Daten aus der Datenbank gezogen werden.

die 691 ist sicher die ID. Aber wie macht man das jetzt..

MfG ;) Vielleicht kann mir das einer mal erklären.
01/23/2012 00:09 Che#2
dafür verwendet man das $_GET array in php
01/23/2012 13:54 PseudoPsycho#3
Beispielsweise hast'e in der DB die Spalten 'id' und 'description'.
Dann einfach:
Code:
<?php
// Allgemeines zum Datenbankaufbau, etc.
$id=mysql_real_escape_string($_GET['id']);
$query=mysql_query("SELECT * FROM `tabelle` WHERE id='$id' LIMIT 1");
$array=mysql_fetch_assoc($query);
echo $array['description'];
// Weiterer Code, z.B. Fehlermeldung, wenn kein Eintrag mit der ID existiert
?>
01/23/2012 14:22 Che#4
PseudoPsycho, what laberst du? Wofür ne Datenbank?!?

Zum oben genannten Beispiel:
PHP Code:
<?php
switch($_GET['do']){ // um das erste Argument zu verarbeiten
case 'usercp'//also zB index.php?do=usercp
echo "hier ist das userCP";
break;
case 
'profil'// zB index.php?do=profil
echo "hier ist das profil";
break;
case 
'newthread'// also index.php?do=newthread
switch($_GET['p']){ // um das 2. Argument zu verarbeiten, nur wenn das erste Argument "newthread" ist
case '2348'//also index.php?do=newthread&p=2348
echo "2348";
break;
case 
'asdf'//also index.php?do=newthread&p=2348
echo "asdf";
break;
default: 
//in allen anderen fällen, also zB index.php?do=newthread&p=blaaaah
echo "default, newthread";
break;
}
break;
default: 
//in allen anderen fällen, also zB index.php?do=argh
echo "default";
break;
}
?>
Das erste Argument bzw die erste übergebene Variable hängst du mit "?" an die URL an, alle anderen mit "&". Die Syntax ist folgende:
filename.php?variablenname1=wert1&variablenname2=w ert2&variablenname3=wert3 usw

Im php-Script empfehle ich dir vor der Verwendung der Variablen zu prüfen, ob sie gesetzt sind und ob sie nicht die Länge Null haben, Rest machste alles wie oben gezeigt mit nem Switch. Die Switches kannst du natürlich schachteln, wie oben beschrieben.
01/23/2012 14:33 PseudoPsycho#5
??? Eine Topliste?
Was willst du mit 'nem statischen PHP-Code bei 'ner dynamischen Topliste???
Natürlich braucht man 'ne Datenbank...!
01/23/2012 14:55 Che#6
Quote:
Originally Posted by PseudoPsycho View Post
??? Eine Topliste?
Was willst du mit 'nem statischen PHP-Code bei 'ner dynamischen Topliste???
Natürlich braucht man 'ne Datenbank...!
Quote:
Originally Posted by KnusperToast View Post
soll eine Untersteite haben, wie hier zB im Forum

newthread.php?do=newthread&f=691

Wie funktioniert das ....
Wie er die Daten aus der Datenbank liest scheint er zu wissen, bitte les genauer.
01/23/2012 19:38 PseudoPsycho#7
Quote:
Wie er die Daten aus der Datenbank liest scheint er zu wissen, bitte les genauer.
Bei der DB nützt ihm dein switch-Beispiel aber überhaupt nichts... Damit kann man nur statisches Zeug ausgeben. Bitte denk genauer, statt
Quote:
what laberst du
zu sagen und ein Beispiel zu posten, welches in dieser Anwendungsart absolut nutzlos ist und auch noch erheblich mehr Code benötigt...
01/23/2012 20:42 Che#8
Quote:
Originally Posted by PseudoPsycho View Post
Bei der DB nützt ihm dein switch-Beispiel aber überhaupt nichts... Damit kann man nur statisches Zeug ausgeben. Bitte denk genauer
Das solltest du machen!
Wer hat behauptet, dass er das, was er ausgibt nicht dynamisch erzeugen kann? Der Switch ist nur zum navigieren über das Get-Array da, genau so wie ich es geschrieben habe.

Da du es anscheinend absolut nicht verstehen willst:
PHP Code:
 <?php
switch($_GET['do']){ // um das erste Argument zu verarbeiten

case 'usercp'//also zB index.php?do=usercp
$id=mysql_real_escape_string($_GET['id']); 
$query=mysql_query("SELECT usercp FROM `tabelle` WHERE id='$id' LIMIT 1"); 
$array=mysql_fetch_assoc($query); 
echo 
$array['usercp'];
break;

case 
'profil'// zB index.php?do=profil
$id=mysql_real_escape_string($_GET['id']); 
$query=mysql_query("SELECT profil FROM `tabelle` WHERE id='$id' LIMIT 1"); 
$array=mysql_fetch_assoc($query); 
echo 
$array['profil'];
break;

case 
'newthread'// also index.php?do=newthread
switch($_GET['p']){ // um das 2. Argument zu verarbeiten, nur wenn das erste Argument "newthread" ist
 
case '2348'//also index.php?do=newthread&p=2348
 
$id=mysql_real_escape_string($_GET['id']); 
 
$query=mysql_query("SELECT gtfo FROM `tabelle` WHERE id='$id' LIMIT 1"); 
 
$array=mysql_fetch_assoc($query); 
 echo 
$array['gtfo'];
 break;

 case 
'asdf'//also index.php?do=newthread&p=2348
 
$id=mysql_real_escape_string($_GET['id']);
 
$query=mysql_query("SELECT asdf FROM `tabelle` WHERE id='$id' LIMIT 1"); 
 
$array=mysql_fetch_assoc($query); 
 echo 
$array['asdf'];
 break;

 default: 
//in allen anderen fällen, also zB index.php?do=newthread&p=blaaaah
 
$id=mysql_real_escape_string($_GET['id']); 
 
$query=mysql_query("SELECT default FROM `tabelle` WHERE id='$id' LIMIT 1"); 
 
$array=mysql_fetch_assoc($query); 
 echo 
$array['default'];
 break;

}
break;

default: 
//in allen anderen fällen, also zB index.php?do=argh
$id=mysql_real_escape_string($_GET['id']); 
$query=mysql_query("SELECT default FROM `tabelle` WHERE id='$id' LIMIT 1"); 
$array=mysql_fetch_assoc($query); 
echo 
$array['default'];
break;
}
?>
btw kriegt er die Top-10 in MySQL so raus:
Code:
[COLOR=#000000][COLOR=#007700]SELECT name FROM `tabelle` [/COLOR][/COLOR]ORDER BY wert DESC [COLOR=#000000][COLOR=#007700]LIMIT 10[/COLOR][/COLOR]
Denken ist erlaubt.

Bitte lass es einfach sein und akzeptiere den Fail, sein Problem ist afaik geklärt, also was gibts hier noch zu diskutieren?
01/23/2012 23:37 KnusperToast#9
Das mit dem Get hat mir schon geholfen,
aber ich will ja auch ne seite mit ner Id erstellen.

Vielleicht ist es etwas schwer zu erklären, aber nehmen wir an, er generiert eine liste.

1. Liste generieren
2. auf ein Objekt klicken
3. auf seite gelangen

4. von daaus mit Get switch arbeiten.

Ist das so richtig ? bzw, wie erstelle ich solche links :/ Reicht schon, wenn du mir eine Seite schickt,
wo es erklärt wird. Finde dazu recht wenig. Also alle unterseiten in ne Index Datei einbinden kann ich eigentlich. Aber da weiß ich auch, dass die Seite auf meinem ftp-server abgespeichert ist und brauche nur den link angeben.

Ich will ja eine Seite haben, wo auch eine gewisse Id ist, aber wie erstelle ich so eine Seite mit
der Id.
01/25/2012 23:50 .Marcel'#10
schau dir einfach das $_GET Array im manual an.