Erstellen einer Seite mit php-skript

Dolphon

Erfahrenes Mitglied
Moin.

Ich habe da ein Problem und ich weiß nicht wie ich es gelöst bekomme.

Folgendes:
Ich habe ein Skript in dem ich verschiedne Infos eingebe(Name, Genre etc.)und die nach der Eingabe in die DB geschrieben werden.
Jetzt soll das Skript aber erweitert werden, so das es in einen bestimmten Ordner eine *.php Datei erzeugt wird, mit html Inhalt,und der Name der PhP-Datei soll jeweils der id in der DB entsprechen.
Danach soll in einer anderen Datei (nehmen wir mal index.php) ein link zu der eben erzeugten php Seite gemacht werden. Der link sollte aber zu gemacht werden, das die erzeugten SEite per Switsch eingebunden wird.

Ich hoffe einer kann mir ein paar Ansätze zu kommen lassen.


MFG

Dolphon
 
Hier ein Ansatz:
Dateien anlegen kannst du mit fopen.
PHP:
$dateiname = $id_aus_db.".php";
$neue_datei = fopen($dateiname, "w");
Der Schalter w sorgt dafür, dass die Datei angelegt wird, sofern sie noch nicht existiert.
Mit fwrite kannst du dann in die Datei schreiben.

Mit den Links wird es wohl etwas komplizierter. Habe ich das richtig verstanden, dass die neu erstellten Dateien alle in verschiedenen Ordnern liegen? Mit file_exists kannst du zwar prüfen, ob eine Datei existiert und im Erfolgsfall einen Link erzeugen lassen, aber du müsstest in einer Schleife alle verfügbaren Ordner und IDs abklappern. Für eine effizientere Lösung müsste ich jetzt wissen, wie deine Scripts sonst aufgebaut sind...

Vielleicht kannst du in deiner Datenbanktabelle ein zusätzliches Feld anlegen. Jedesmal wenn dein Script dann eine Datei erzeugt, kann es dann auch gleich den Pfad zu dieser in die DB eintragen. Um die Links zu setzen musst du dann nur die entsprechende Spalte aus der DB auslesen, und dann aus dem Eintrag (sofern einer da ist) den Link erzeugen. So müsstest du dem Script auch nicht den ganzen Pfad übergeben, um die Datei zu includen, sondern nur die ID des ensprechenden Datensatzes.

PHP:
// Erzeugen der Links
$query = "SELECT id, Link FROM tabelle";
$result = mysql_query($query);
while($bla = mysql_fetch_object($result)) {
  if($bla->link!=NULL) {
  echo "<a href='index.php?neuer_include=".$bla->id."'>".$bla->link."</a><br />";
  }
}

// includen
if(isset($_GET["neuer_include"])) {
  $result = mysql_query("SELECT link FROM tabelle WHERE id = '".$_GET["neuer_include"]."'");
  $bla = mysql_fetch_object($result);
  include($bla->link);
}
 
Thx für die Antwort.

Habe mich auch mal andersweitig umgehört.
Und dabei ist mir ne neue Idee gekommen für die Ausgabe.
Es soll ja ein Movies Skript werden. Da em Laufe der Zeit ja ziemlich viele Dateen entsthen würde, meinte eienr ich soltte die Ausgabe in eine Datei organisieren. Ich rufe diese Datei z.b mir index.php?id=1 auf und dann errscheinen die Daten von der ersten Id auf dem Bildschrirm.
Ein Anfang:

PHP:
<?
### Konfigurationsdatei einlesen
require("../config.inc.php");

###Ausgabe der Daten
$db = mysql_connect($db_host, $db_user, $db_pass);  
$a=mysql_query("SELECT * FROM movieaction WHERE id=$name"); 
echo mysql_result($a,0); <--- Fehlermeldung
mysql_close($db);
?>

Die Sache mit den Links hört sich gut an. Werde die mal ausprobieren, wenn die obere Sache klappt.
 
Zuletzt bearbeitet:
Original geschrieben von Dolphon
Ich rufe diese Datei z.b mir index.php?id=1 auf und dann errscheinen die Daten von der ersten Id auf dem Bildschrirm.
Ja, das ist auf jeden Fall einfacher, wenn das alles ist was du wolltest. :) Du musst ja keine dynamische Anwendung schreiben, wenn du dann doch immer eine seperate Datei anlegst...
echo mysql_result($a,0); <--- Fehlermeldung
Was für eine Fehlermeldung?
Ich würde eher mit mysql_fetch_array oder -object arbeiten. mysql_result finde ich nicht sehr komfortabel. Außerdem ist es bei mehreren Datensätzen recht langsam.
 
Diese Fehlermeldung hier kommt:
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /www/htdocs/v079556/templates/movies/test/action/ausgabe.php on line 8


Weiß nur noch nicht genau wo ich die Ausgabe hinpacken soll.

Also alles war das nicht, aber erstmal eins nach dem anderen.
Die anderen Sachen bauen fast alel auf dem auf, was ich jetzt hier haben will.
 
So habs hinbekommen.

Nur noch ein Prob.
über index.php?id=1 kommt er zur Ausgabe des ersten Datensatzes der DB.
Wenn nun einer die index.php öffnet, dann bekomtm der sofort den gesamten inhalt der DB zu sehen. Wie kann ich das unterbinden, er soll wenn er nur die index.php öfnet auf eienr andere SEite weitergeleitet werden.

MFG

Dolphon
 
schreib das am besten in die ersten zeilen von der index.php:

if($id == false){echo '<html><head><meta http-equiv="refresh" content="0;URL=seite.html"></head></html>';}
else{
#hier das normale auslesen hin
}
 
Ich würd's eher mit der Header-Funktion machen, es gibt Browser, die den meta-refresh nicht unterstützen:
PHP:
if(!isset($_GET["id"])) { ## Wenn keine id übergeben wurde...
header("location: woanders.html"); ## ...schicke ich den User woanders hin
}
Obige Variante funktioniert nur, wenn noch kein Content an den Client geschickt wurde, d.h. du musst das auf jeden Fall vor dem ersten echo oder print machen.
 

Neue Beiträge

Zurück