[OOP mit MySQL+PHP] Link entschlüsseln+Daten holen

stega

Erfahrenes Mitglied
Hi, hab die Kategorie OOP nicht mehr gefunden (wurde sie gelöscht? wenn nicht, bitte Moderatoren, verschiebt den Thread) :)

Folgendes Problem:
Ich möchte eine Art Onlinezeitung programmieren. Das sieht so aus, dass in einer DB Artikel+Überschriften gespeichert sind.
In einer Seite der HP sollen diese Artikel+Anfänge der Artikel aufgelistet werden.
Die Überschrift soll anklickbar sein, sodass man auf eine Seite kommt, wo man den Artikel vollständig lesen kann ( siehe z.B. faz.net, da geht das so)

meine bisehrigen Überlegungen:
DB HP-Seite HP-Seite
|1|blabla --------->|1| blabla ----LINK---> |1| das ist der vollständige Artikel hier
|2|lalelu --------->|2| lalelu

aus der Datenbank in die Auflsitung bekomme ich die Artikel.
Ich möchte aber keine <input>s verwenden,deren NAme dann einfach die Überschrift darstellt...
geht das mit <a href="xy.php?link=artikel&id=1">überschrift 1</a>zu machen?

Wenn ja, wie kann ich dann mit php auf dieses id=1 zugreifen und die Seite veranlassen, dass sie eben aus der DB den Artilkel mit der id 1 aufführt?

danke für die Hilfe, bei Fragen versuch ich alles zu beantworten!
;-) lg
 
stega hat gesagt.:
meine bisehrigen Überlegungen:
DB HP-Seite HP-Seite
|1|blabla --------->|1| blabla ----LINK---> |1| das ist der vollständige Artikel hier
|2|lalelu --------->|2| lalelu

aus der Datenbank in die Auflsitung bekomme ich die Artikel.
Ich möchte aber keine <input>s verwenden,deren NAme dann einfach die Überschrift darstellt...
geht das mit <a href="xy.php?link=artikel&id=1">überschrift 1</a>zu machen?

Den Teil verstehe ich nicht. Wie meinst du das?

Wieso möchtest du das OO machen?

Einfach alle Artikel aus der DB auslesen und diese Anzeigen ist nicht besonders schwer. Wie gewandt bist du im umgang mit PHP?

MFG
redX
 
der teil sollte nur darstellen, wie die Infos aus der DB verarbeitet werden sollen:
aus der DB auslesen mit SELECT --> Auflisten aller Artikel --> Anklicken einer Überschrift, die auf den Artikel verlinkt --> Anzeige des betreffenden vollständigen Artikels

php kann ich eigentlich gut, weiß nur net, wie ich das machen kann, ohne input verwenden zu müssen, weil mit dem hab ichs schon geschafft, aber da stellen sich dann neue Probleme...

;-) danke für mühe!
 
Wo brauchst du dann da ein <input ...> feld?
Als Titel kannst du ja einfach einen Link nehmen der dann den Artikel anzeigt.
Oder habe ich dich falsch verstanden?

MFG
redX
 
also ich hab das Ganze mal so versucht, dass ich bei der Ausgabe der Überschriftenauflistung und der Anfänge der Artikel die Überschriften einfach als <input> genommen habe. D.H. wenn der Besucher drauf geklickt hat, dann war das Ganze wie ein Formular, die Variable id wurde verschickt und die nächste Seite hat dann aus der DB den Artikel mit der passenden id genommen und vollständig angezeigt.

Aber da dieses Verfahren Probleme für die komplette Seite bringt, habe ich mir überlegt, ob ich das nicht so amchen kann, dass ich in der Art arbeite, dass jede Überschrift als Link definiert ist: <a href="xy.php?link=artikel&id=1">Überschrift</a>. Hier wäre jetzt die Überschrift vom Artikel mit der id 1 anklickbar und dann sollte die nächste Seite den Artikel 1 vollständig anzeigen.

soweit verstanden? wenn nicht versuch ichs nochmal zu erklären, ich weiß, dass es komisch klingt... :rolleyes:
 
wie mache ich das dann?
ich muss ja die Links automatisch generieren lassen und die id=xy dann je nachdem, welche id's bei den Artikeln vorhanden sind, setzen.
sagen wir ich habe folgende DB:
---------------------------------------------
| 1 | Über.1 | blablablablablabla |
| 3 | Über.3 | lalelulalelulalelulal |
| 4 | Über.4 | hallohallohallohalli |
----------------------------------------------
Artikel mit id 2 wurde gelöscht.

jetzt soll er diese Überschriften anzeigen und mit Link versetzen:
<a href="xy.php?link=artikel&id=1> Über. 1</a>
<a href="xy.php?link=artikel&id=3> Über. 3</a>
<a href="xy.php?link=artikel&id=4> Über. 4</a>

da muss ds Script die id's alleine und individuell in den Link einbauen.--> Wie?

dann soll der User drauf klicken und auf die 'Lese'-Seite kommen, wo er den vollständigen Artikel lesen kann.
d.h. er ist jetzt auf

http://www.test.de/xy.php?link=artikel&id=1

wie kann ich jetzt das Script dazu bringen, dass es bei dieser Adresse den Artikel mit id=1 anzeigt, aber bei der Adresse

http://www.test.de/xy.php?link=artikel&id=4
den Artikel mit id=4 anzeigt?

danke für deine schnellen antworten!
 
Ich hätte es so gemacht (ID = Link):

Code:
$db_ergebnis = mysql_query("SELECT * FROM ...");
while($daten = mysql_fetch_array($db_ergebnis))
{
echo "<a href=\"xy.php?link=artikel&id=".$daten["id"]."\">Über ".$daten["id"]."</a>\n";
}
Gibt den folgenden Output:
Code:
<a href="xy.php?link=artikel&id=1> Über. 1</a>
<a href="xy.php?link=artikel&id=3> Über. 3</a>
<a href="xy.php?link=artikel&id=4> Über. 4</a>
Wenn jetzt einer von diesen Links angeklickt werden ist die Variable $_GET["id"] verfügbar, die den jeweiligen Wert des geklickten Links besitzt.

Und so kannst du dann auch weiter machen, du setzt das diese Variable in deinen SQL-Query ein und kannst dann, den bestimmten Artikel (oder was auch immer) ausgeben lassen.
 
danke, sowas hab ich desucht.. werds morgen gleich mal ausprobieren... wenn es nicht klappt, meld ich mich wieder...

danke schön!
 
so, hab das jetzt mal ausprobiert, klappt aber nicht...
als erstes: Hier gehts zur Homepage
(wenn man auf Artikel klickt ist man in der Rubrik, wo ich das Problem habe, der Rest der Seite ist noch im Aufbau)

Also: meine Artikel-Startseite sieht so aus (nur jetzt der php-Code):
PHP:
        <? 
	  switch ($see) {
	  case "":
	  include("artikel/start.php");
	  break;
	  case "read":
	  include("artikel/read.php");
	  break;
	  }
	  ?>
meine Seite, die bei case="" eingeblendet wird so: (wieder nur der php-Code)
PHP:
//erst mal connect, dann:
$query = "SELECT * FROM artikel";
$result = mysql_query($query);
while ($data = mysql_fetch_array ($result))
 {
$data["text"] = substr($data["text"],0,120);
print "<a href=\"asbest.php?link=artikel&see=read&id=".$data["id"]."\">
".$data["cap"]."</a><br>".$data["text"]."<br>".$data["datum"]."<br><br>";
}
?>
kurze Erklärung dazu: die Adresse setzt sich so zusammen: das link=artikel heißt die Rubrik Artikel wird angezeigt, see=read soll dann in dieser Rubrik artikel die Seite read.php einblenden (s.o.) und ganz zum Schluss kommt dann die id.

Soweit klappt es auch noch, die Links stehen richtig da ...
nur wenn ich ejtzt draufklicke, dann passiert nichts...es erscheint eine leere Seite, der Link aber steht richtig oben in der Browserleiste.

meine read.php sieht so aus:
PHP:
//connect, dann:
$query = "SELECT * FROM artikel WHERE id='".$_GET["id"]."'";
$result = mysql_query($query);
$art = mysql_fetch_array($result);
print $art["cap"]."<br>";
print $art["text"];
?>
ist zunächst mal nur so klein gehalten, damit das erst mal funktioniert, bevor ich weiter ausbaue mit Details und so...

Aber das klappt nicht....was mache ich falsch?

danke für eure Hilfe! :)
 
Zurück