php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 04.01.2006, 19:03  
Erfahrener Benutzer
 
Registriert seit: 09.05.2005
Beiträge: 561
BartTheDevil89 kann nur auf Besserung hoffen
Standard Wie der richtige include? *genauer beschrieben*

Hallo!

Also ich habe den Code hier:
Code:
$m1 = "designs/$design/m1.tpl"; //Menü1 auslesen
$m1 = implode("", file("$m1"));
$m2 = "designs/$design/m2.tpl"; //Menü2 auslesen
$m2 = implode("", file("$m2"));
$m3 = "designs/$design/m3.tpl"; //Menü3 auslesen
$m3 = implode("", file("$m3"));
$sql = "SELECT id,titel,art,link,ziel FROM pages where user = '$username' ORDER BY position";
$res = mysql_query($sql); 
while($asc = mysql_fetch_assoc($res)) 
{ 
if ($asc['art'] == 1)  
{  
$eintrag .= "$m1";
}
elseif ($asc['art'] == 2)  
{
if ($asc['ziel'] == 1)
{
$eintrag .= "$m2";
}
elseif ($asc['ziel'] == 2)
{
$eintrag .= "$m3";
}
}
}
Die Variablen $m1 $m2 und $m3 sehen alle so aus(also das steht in den Dateien, die für die Variabelen ausgelesen werden):
Code:
<a href=\"index.php?page=".$asc['link']."\">".$asc['titel']."</a>
Mein Problem sind jetzt diese 3 Teile hier:
Code:
$eintrag .= "$m1"; $eintrag .= "$m2"; $eintrag .= "$m3";
Vorher sah es bei allen 3 so aus:
Code:
$eintrag .= "<a href=\"index.php?page=".$asc['link']."\">".$asc['titel']."</a>
";
Und ich möchte jetzt den Teil zwischen den "" einfach aus der Variabele $m1 $m2 und $m3 holen.

Mein Problem ist der Teil "$m1",.... egal, wie ich es versuche, ob "".$m1."" oder einfach $m1, es kommt immer folgendes raus:
Code:
<a href=\"index.php?page=".$asc['link']."\">".$asc['titel']."</a>
Also er holt sich nicht die Variablen von $asc, sondern speichert es einfach so, wie er es aus der Variable $m1 $m2 und $m3 bekommt.

Also wie muss ich $m1 $m2 und $m3(ist ja alles von der Art dasselbe) richtig einsetzen, dass es läuft?
BartTheDevil89 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 04.01.2006, 20:11  
Erfahrener Benutzer
 
Registriert seit: 03.01.2006
Beiträge: 253
CC84
Standard

include ist der ganz falsche Weg. Include kannst du verwenden, um Dateien dem Script Verfügbar zu machen. Etwa wenn du in der zu includierenden Datei eine Funktion definiert hast, dann kannst du sie nach dem Include im Script benutzen.

Was du willst ist eine Text Datei öffnen und den Inhalt einer Variablen zuweisen.

DAs geht hiermit:

file
(PHP 3, PHP 4 , PHP 5)

file -- Liest eine Datei komplett in ein Array


weiteres findest du in der Hilfe
CC84 ist offline  
Alt 05.01.2006, 11:21  
Erfahrener Benutzer
 
Registriert seit: 09.05.2005
Beiträge: 561
BartTheDevil89 kann nur auf Besserung hoffen
Standard

Zitat:
Zitat von CC84
include ist der ganz falsche Weg. Include kannst du verwenden, um Dateien dem Script Verfügbar zu machen. Etwa wenn du in der zu includierenden Datei eine Funktion definiert hast, dann kannst du sie nach dem Include im Script benutzen.

Was du willst ist eine Text Datei öffnen und den Inhalt einer Variablen zuweisen.

DAs geht hiermit:

file
(PHP 3, PHP 4 , PHP 5)

file -- Liest eine Datei komplett in ein Array


weiteres findest du in der Hilfe
OK, also ich hab es jetzt mal ein bisschen genauer beschrieben. Denn das ist garnicht das Problem, sondern eben einfach das einsetzen der Variabele hinter $eintrag.
BartTheDevil89 ist offline  
Alt 05.01.2006, 12:33  
Erfahrener Benutzer
 
Registriert seit: 03.01.2006
Beiträge: 253
CC84
Standard

Sorry ich werde aus deiner Beschreibung nicht schlau. Ich kapier gar nix... Was soll er denn aus ASC raus holen und was willst du da in der Variablen haben oder überhaupt??


Mach doch mal bessere Beispiele in dem du unterschiedliche Sachen in die Variablen m1-3 packst.
CC84 ist offline  
Alt 05.01.2006, 13:13  
Erfahrener Benutzer
 
Registriert seit: 09.05.2005
Beiträge: 561
BartTheDevil89 kann nur auf Besserung hoffen
Standard

Zitat:
Zitat von CC84
Sorry ich werde aus deiner Beschreibung nicht schlau. Ich kapier gar nix... Was soll er denn aus ASC raus holen und was willst du da in der Variablen haben oder überhaupt??


Mach doch mal bessere Beispiele in dem du unterschiedliche Sachen in die Variablen m1-3 packst.
OK, also das ganze noch einfacher:

Code:
$m1 = "designs/$design/m1.tpl"; //Menü1 auslesen 
$m1 = implode("", file("$m1")); 
$sql = "SELECT id,titel,art,link,ziel FROM pages where user = '$username' ORDER BY position"; 
$res = mysql_query($sql); 
while($asc = mysql_fetch_assoc($res)) 
{ 
$eintrag .= "$m1"; 
}
Die Datei "designs/$design/m1.tpl" sieht so aus:

Code:
<a href=\"index.php?page=".$asc['link']."\">".$asc['titel']."</a>
Vorher sah das ganze so aus:
Code:
$sql = "SELECT id,titel,art,link,ziel FROM pages where user = '$username' ORDER BY position"; 
$res = mysql_query($sql); 
while($asc = mysql_fetch_assoc($res)) 
{ 
$eintrag .= "<a href=\"index.php?page=".$asc['link']."\">".$asc['titel']."</a>
"; 
}
Und den Teil in der "" nach $eintrag möchte ich einfach aus der Datei laden, wei das immer unterschiedlich sein wird.
BartTheDevil89 ist offline  
Alt 05.01.2006, 13:17  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Schmarn, erklär mal lieber was du grundsätzlich machen willst (und vor allem warum). Das sieht alles schon sehr wüst und sinnlos aus...
Zergling-new ist offline  
Alt 05.01.2006, 13:29  
Erfahrener Benutzer
 
Registriert seit: 09.05.2005
Beiträge: 561
BartTheDevil89 kann nur auf Besserung hoffen
Standard

Zitat:
Zitat von Zergling
Schmarn, erklär mal lieber was du grundsätzlich machen willst (und vor allem warum). Das sieht alles schon sehr wüst und sinnlos aus...
OK, also so war es vorher:

Code:
$sql = "SELECT id,titel,art,link,ziel FROM pages where user = '$username' ORDER BY position"; 
$res = mysql_query($sql); // Abfrage aller Einträge in der Datenbank
while($asc = mysql_fetch_assoc($res)) 
{ 
$eintrag .= "<a href=\"index.php?page=".$asc['link']."\">".$asc['titel']."</a>
"; // für jeden Eintrag in der Datenbank wird dieser Link erstellt und nachher an $eintrag drangehangen. Also entsteht in $eintrag im Prinzip ein Menü
}
Nachher speichere ich die Variabele $eintrag in einer Datei und hab damit ein Menü.

Jetzt ist aber das Problem, dass sich dieser Teil hier ändern kann, also der ist nicht immer gleich:

Code:
<a href=\"index.php?page=".$asc['link']."\">".$asc['titel']."</a>
Deshalb habe ich jetzt mehrere Dateien in verschiedenen Ordner (Ordnername wird durch $design bestimmt), wo immer eine Datei drin ist. m1.tpl. In diesem Fall wäre m1.tpl folgendes:
Code:
<a href=\"index.php?page=".$asc['link']."\">".$asc['titel']."</a>
Kann aber genauso mal so aussehen:

Code:
<a style="font-size:15px" href=\"index.php?page=".$asc['link']."\">".$asc['titel']."</a>
oder komplett anders. Aus diesem Grund habe ich jetzt diese Version mir gemacht:

Code:
$m1 = "designs/$design/m1.tpl"; //festlegen des Pfades zur DAtei
$m1 = implode("", file("$m1")); //auslesen der Datei und speichern in $m1
$sql = "SELECT id,titel,art,link,ziel FROM pages where user = '$username' ORDER BY position"; 
$res = mysql_query($sql); //Auflisten aller Einträge
while($asc = mysql_fetch_assoc($res)) 
{ 
$eintrag .= ????? (was muss hier rein)
}
BartTheDevil89 ist offline  
Alt 05.01.2006, 14:43  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

TPL steht für Template. In Templates haben serverseitige Skriptsprachen nichts zu suchen. Dafür benutzt man am besten Platzhalter.

m1.tpl:
Code:
{TITEL} 
PHP
Code:
$tpl = file_get_contents("designs/$design/m1.tpl");
$sql = "SELECT id,titel,art,link,ziel FROM pages where user = '$username' ORDER BY position";
$res = mysql_query($sql); //Auflisten aller Einträge 
$eintrag = '';
while($asc = mysql_fetch_assoc($res)) {
  $eintrag .= str_replace(array('{LINK}','{TITEL}'), array($asc['link'],$asc['titel']), $tpl);
}
(sorry, php-Tags gehen nicht)

So optimal find ich das ganze aber noch nicht. Setz doch je nach $design-Bedingung eine andere CSS-Klasse..
Zergling-new ist offline  
Alt 05.01.2006, 15:12  
Erfahrener Benutzer
 
Registriert seit: 03.01.2006
Beiträge: 253
CC84
Standard

Oder mach das ganze direkt mit Templates:

http://smarty.php.net
CC84 ist offline  
Alt 05.01.2006, 15:59  
Erfahrener Benutzer
 
Registriert seit: 09.05.2005
Beiträge: 561
BartTheDevil89 kann nur auf Besserung hoffen
Standard

Zitat:
Zitat von Zergling
TPL steht für Template. In Templates haben serverseitige Skriptsprachen nichts zu suchen. Dafür benutzt man am besten Platzhalter.

m1.tpl:
Code:
{TITEL} 
PHP
Code:
$tpl = file_get_contents("designs/$design/m1.tpl");
$sql = "SELECT id,titel,art,link,ziel FROM pages where user = '$username' ORDER BY position";
$res = mysql_query($sql); //Auflisten aller Einträge 
$eintrag = '';
while($asc = mysql_fetch_assoc($res)) {
  $eintrag .= str_replace(array('{LINK}','{TITEL}'), array($asc['link'],$asc['titel']), $tpl);
}
(sorry, php-Tags gehen nicht)

So optimal find ich das ganze aber noch nicht. Setz doch je nach $design-Bedingung eine andere CSS-Klasse..
Ja ich weiß, dass es nicht optimal ist, aber es geht nicht anders.

Aber danke für die Hilfe, jetzt geht es!
BartTheDevil89 ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
include() ersetzen Shadow21 PHP Tipps 2006 3 30.08.2008 14:13
include isoliert ausführen – Lösungsansatz gesucht veit PHP-Fortgeschrittene 8 09.04.2008 09:26
hinter include wird eine 1 angezeigt |~Râdîant~| PHP Tipps 2008 8 19.09.2007 13:52
include Dateien wieder ausängen o.Ä. netti PHP Tipps 2007 8 17.12.2006 15:14
include problem Canni PHP Tipps 2006 26 14.11.2006 14:24
include, nur bestimmten teil neu laden Calli PHP Tipps 2006 2 27.01.2006 15:57
Auf Firmen-Server funzt kein include aus fremden Verzeichnis PHP-Fortgeschrittene 3 19.07.2005 16:49
Include und PHP/SQL Problem ?! PHP Tipps 2005-2 3 10.07.2005 16:04
[Erledigt] Include liegt in einem anderen Verzeichnis - es geht nix PHP Tipps 2005-2 3 03.07.2005 22:40
[Erledigt] Include Problem nach server wechsel PHP Tipps 2005 4 01.06.2005 00:42
[Erledigt] Sessions auch bei include aktiv? PHP Tipps 2005 1 28.02.2005 19:58
[Erledigt] Fehlermeldungen für include() PHP Tipps 2005 5 21.02.2005 11:34
[Erledigt] Variable geht bei include verloren PHP Tipps 2004-2 8 03.12.2004 09:13
[Erledigt] Problemme mit include... PHP Tipps 2004-2 6 30.11.2004 12:20
HTTP_GET_VARS + Include = Array leer PHP Tipps 2004-2 3 24.11.2004 15:12

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
include php beschrieben

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:10 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.