Ich bin mit meinen Latein am Ende und suche eine Lösung auf mein Problem, was ich gleich schildern werde.
Ich versuche zur Zeit eine Webseite mit PHP zu gestalten und habe in meiner index.php folgenden Script angelegt:
(Um das Script ist nur HTML)
In den Ordner news, habe ich wiederum mein Newsscript angelegt.
Sinn des Scriptes soll sein, an der Stelle wo das oben aufgeführte PHP-Script steht, eine Seite per include eingefügt werden soll. Die Seiten werden dann entsprechend included, wenn der Wert $getpage einen entsprechenden Übergabewert über den Link bekommt.
Also wenn ich den Link http://localhost/index.php?getpage=news aufrufe, dann wird wie gewollt die Seite artikel.php in die entsprechende Stelle eingefügt.
Um zu meinen eigentlichen Problem zu kommen, muss ich noch einen Script von der Seite artikel.php posten:
Wenn ich nun die artikel.php wie gewollt included habe, werden alle aus der Datenbank gespeicherten Newsboxen aufgerufen. In einer Newsbox steht nur ein kleiner Teil dieser News, diesen kann man aber zu den vollständigen Newstext erweitern, wenn man auf den Link "mehr..." klickt.
Den Link findet ihr im Script übrigens im echo. Die vielen "\" sind gewollt, sonst funktioniert das echo nicht wie es soll.
Den Link den ich nun mit mehr.. aufrufe, lautet: index.php?getpage=newsmore
Damit soll dann in der index.php folgender Link ausgeführt werden:
news/showarticle.php?aid=$row->id
Leider bekomme ich dann immer die Fehlermeldung:
Der Link news/showarticle.php?aid=$row->id funktioniert dann nur, wenn ich ihn direkt in die artikel.php anstatt des Links: index.php?getpage=newsmore schreibe.
Leider bekomme ich aber damit den ungewollten Effekt, dass die aufgerufene Seite nicht included wird und im ganzen Fenster geladen wird.
Wie bekomme ich nun Seiten included, die eine Wertübergabe in ihren Link durchführen? Z.B.: news/showarticle.php?aid=$row->id
Ich versuche zur Zeit eine Webseite mit PHP zu gestalten und habe in meiner index.php folgenden Script angelegt:
(Um das Script ist nur HTML)
Code:
<?
//Speichern wir den Wert $_GET Variable in einer normalen Variable
$getpage = $_GET['getpage'];
// nun vergleichen wir den Inhalt der Variable mit hilfe einer "switch" anweisung
switch($getpage)
{
case 'news':
//Falls $seite == 'news' ist einbinden von news.php
include 'news/artikel.php';
// break anweisung damit der rest der case blöcke nicht auch noch dursucht wird
break;
case 'artikel':
include 'news/showarticle.php';
break;
//hier kann man noch was definieren was standard mässig ausgeführt wird, falls sonst nichts zutrifft
case 'newsmore':
include 'news/showarticle.php?aid=$row->id';
break;
default:
include 'news/artikel.php';
break;
}
?>
In den Ordner news, habe ich wiederum mein Newsscript angelegt.
Sinn des Scriptes soll sein, an der Stelle wo das oben aufgeführte PHP-Script steht, eine Seite per include eingefügt werden soll. Die Seiten werden dann entsprechend included, wenn der Wert $getpage einen entsprechenden Übergabewert über den Link bekommt.
Also wenn ich den Link http://localhost/index.php?getpage=news aufrufe, dann wird wie gewollt die Seite artikel.php in die entsprechende Stelle eingefügt.
Um zu meinen eigentlichen Problem zu kommen, muss ich noch einen Script von der Seite artikel.php posten:
Code:
<html>
<head>
<title>Artikel - Übersicht</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body bgcolor="#1F2D32">
<?
include('admin/config.php');
$verbindung = mysql_connect ($dbhost, $dbuser, $dbpass) // Username und Passwort angeben
or die ("Leider kann das script keine Verbindung zu der Mysql Datenbank aufbauen ");
mysql_select_db($dbname) //hier name der Datenbank eingeben
or die ("Leider kann das script keine Verbindung zu der Datenbank aufbauen");
$getpage2 = a;
$seite = $_GET["seite"]; //Abfrage auf welcher Seite man ist
//Wenn man keine Seite angegeben hat, ist man automatisch auf Seite 1
if(!isset($seite))
{
$seite = 1;
}
//Einträge pro Seite: Hier 5 pro Seite
$eintraege_pro_seite = 5;
//Ausrechen welche Spalte man zuerst ausgeben muss:
$start = $seite * $eintraege_pro_seite - $eintraege_pro_seite;
$abfrage = "SELECT * FROM free_news ORDER BY `id` DESC LIMIT $start, $eintraege_pro_seite "; //abfrage
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis)) //while schleife solange bis alles ausgegeben ist
{
//=====[Hier kann evtl. etwas am Erscheinungsbild des Artikels geändert werden]=====//
echo "
<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\" class=\"table\">
<tr>
<td height=\"30\" colspan=\"2\" class=\"head\">$row->name</td>
</tr>
<tr>
<td colspan=\"2\" class=\"text\">$row->stext<br><a href=\"index.php?getpage=newsmore\"> mehr...</a></td>
</tr>
<tr>
<td class=\"bottom\">$row->datum</td>
<td width=\"200\" align=\"right\" class=\"bottom\"><a href=\"comments.php?nid=$row->id\">";
$abfrage = mysql_query("SELECT id FROM free_comments WHERE nid='$row->id'");
$mengec = mysql_num_rows($abfrage);
echo "($mengec) comments";
echo'</a></td>
</tr>
</table><br><br>';}
//=====[Hier nichts mehr editieren]=====//
//Jetzt kommt das "Inhaltsverzeichnis",
//sprich dort steht jetzt: Seite: 1 2 3 4 5
$result = mysql_query("SELECT id FROM free_news ORDER BY `id` DESC");
$menge = mysql_num_rows($result);
//Errechnen wieviele Seiten es geben wird
$wieviel_seiten = $menge / $eintraege_pro_seite;
//Ausgabe der Seitenlinks:
echo "<div align=\"center\"><br>";
echo "<b>Seite:</b> ";
//Ausgabe der Links zu den Seiten
for($a=0; $a < $wieviel_seiten; $a++)
{
$b = $a + 1;
//Wenn der User sich auf dieser Seite befindet, keinen Link ausgeben
if($seite == $b)
{
echo " <b>$b</b> ";
}
//Aus dieser Seite ist der User nicht, also einen Link ausgeben
else
{
echo " <a href=\"index.php?site=book/gb&seite=$b\">$b</a> ";
}
}
echo "</div>";
?>
</body>
</html>
Wenn ich nun die artikel.php wie gewollt included habe, werden alle aus der Datenbank gespeicherten Newsboxen aufgerufen. In einer Newsbox steht nur ein kleiner Teil dieser News, diesen kann man aber zu den vollständigen Newstext erweitern, wenn man auf den Link "mehr..." klickt.
Den Link findet ihr im Script übrigens im echo. Die vielen "\" sind gewollt, sonst funktioniert das echo nicht wie es soll.
Den Link den ich nun mit mehr.. aufrufe, lautet: index.php?getpage=newsmore
Damit soll dann in der index.php folgender Link ausgeführt werden:
news/showarticle.php?aid=$row->id
Leider bekomme ich dann immer die Fehlermeldung:
Warning: include(news/showarticle.php?aid=$row->id) [function.include]: failed to open stream: Invalid argument in E:\web\xampp\xampp\htdocs\site\index.php on line 69
Warning: include() [function.include]: Failed opening 'news/showarticle.php?aid=$row->id' for inclusion (include_path='.;e:\web\xampp\xampp\php\pear\') in E:\web\xampp\xampp\htdocs\site\index.php on line 69
Der Link news/showarticle.php?aid=$row->id funktioniert dann nur, wenn ich ihn direkt in die artikel.php anstatt des Links: index.php?getpage=newsmore schreibe.
Leider bekomme ich aber damit den ungewollten Effekt, dass die aufgerufene Seite nicht included wird und im ganzen Fenster geladen wird.
Wie bekomme ich nun Seiten included, die eine Wertübergabe in ihren Link durchführen? Z.B.: news/showarticle.php?aid=$row->id