php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 03.03.2005, 22:38  
Gast
 
Beiträge: n/a
Standard IF ELSEIF ELSEIF ELSE mit While Schleife

Also ich habe folgendes Problem.
Wenn ich auf meine Page auf ein Link klicke dann geb ich die variable $page mit dem name an meine index.php mit.
Und in der index.php hab ich dann diese IF Formel womit er die richtige seite dann included.
Aber ich möchte nun nicht für jede einseln page nen eslseif einfügen sondern das lieber mit na datenbank machen. allerdings weiß ich nicht wie ich das bewerkstelligen könnte ich net weiß wie ich die while schleife dort anwenden kann.

Wenn ich die WHILE schleife um den ganzen code packe dann wiederholt er mir ja auch das IF und das ELSE immer wieder also geht schonmal nicht... und wenn ich die Schleife nur um das ELSEIF packe dann funktioniert dieses nicht mehr mit dem if zusammen und das ELSE wird auch net mehr beachtet. Hoffe ihr könnt mir helfen. z.B. Wie ich die schleife rein setzen kann so das die ganzen if´s richtig funktionieren oder vielleicht habt ihr ja ne andere lösung.

mfg Snago

Code:
if($page == "") { include("start.php"); }
elseif($page == "1") { include("start.php"); }
elseif($page == "2") { include("news.php"); }
else { include("start.php"); }
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 03.03.2005, 22:46  
Gast
 
Beiträge: n/a
Standard

Code:
$query = "SELECT dateiname FROM tabelle WHERE nummer = '".$page."';";
dateiname ist das Feld, in dem Du die Dateinamen stehen hast, also "start.php", "news.php" und so weiter. nummer ist das Feld, in dem Du die Dateinamen der Var. Page zuordnest. also <=1 für start.php, 2 = news.php und so weiter.

Übrigens kannst Du das die ersten beiden ifs kicken, da start.php bei Dir ja soundso aufgerufen wird wenn page nicht 2 (und was sonst noch kommt) ist.

Also so:
PHP-Code:
<?php
$page 
$_REQUEST['page'];
if(
$page == "2") { include("news.php"); } 
else { include(
"start.php"); }

?>
Ergibt das gleiche wie dein obiges Script.

Achja, Du hast wie ich oben $page zuvor mit $page = $_REQUEST['page']; zugeordnet ja? Sonst fällst Du bei immer mehr Servern mit dem Script auf den Hintern.
 
Alt 03.03.2005, 23:05  
Gast
 
Beiträge: n/a
Standard

$page = $_REQUEST['page']

hab ich danke aber mein server is eh noch net so aktuell #

aber hab mich wohl falsch ausgedrückt so sieht meine derzeitiger code aus...

Code:
<?php
$page = $_GET['page'];

$result = mysql_query("SELECT location, page_id FROM links")
$row = mysql_fetch_array($result)
while($row = mysql_fetch_array($result)) 
{
if($page == "") { include("start.php"); }
elseif($page == "$row["page_id"]") { include($row["location"]); }
else { include("start.php"); }
}
?>
Nun wird aber das IF und das ELSE immer mit ausgeführt in der schleife was aber nicht so günstig ist da dann der anzahl entsprechend wie oft die schleife ausgeführt wird das ELSE ausgeführt wird wenn die ID page_id nicht

Code:
elseif($page == "$row["page_id"]") { include($row["location"]); }
entspricht.

also hab ich mir überlegt gehabt es so zu machen...

Code:
<?php
$page = $_REQUEST['page'];

if($page == "") { include("start.php"); }

$result = mysql_query("SELECT location, page_id FROM links")
$row = mysql_fetch_array($result)
while($row = mysql_fetch_array($result)) 
{
elseif($page == "$row["page_id"]") { include($row["location"]); }
}

else { include("start.php"); }
?>
Was aber leider auch nicht klappt da das elseif dann nicht mehr richtig arbeitet.
 
Alt 03.03.2005, 23:13  
Gast
 
Beiträge: n/a
Standard

Dann include die Seite nicht sondern setze eine Variable ein.
PHP-Code:
<?php
<?php 
$page 
$_REQUEST['page']; 

if(
$page == "") { include("start.php"); } 

$result mysql_query("SELECT location, page_id FROM links"
$row mysql_fetch_array($result
$datei =""# initialisiere mit leer
while($row mysql_fetch_array($result)) 

 if(
$page == "$row["page_id"]") { $datei $row["location"]; } 


if (
$datei == ""$datei "start.php";
include(
$datei);
?> 
?>
Ein Tipp am Rande - füge ein WHERE page_id = $page in die Abfrage ein - dann hast Du nur einen Datensatz und nicht die ganze Datenbank als Ergebnis
 
Alt 03.03.2005, 23:18  
Gast
 
Beiträge: n/a
Standard

Big THX an dir

Dein tip am rande wäre doch viel zu einfach auf sowas komme ich net denke immer so komliziert

aber danke dir vielmals das der code funzt den du geschrieben hast glaub ich aber den Tip am Rande find ich besser is irgendwie ultimativ kurz
 
Alt 03.03.2005, 23:24  
Gast
 
Beiträge: n/a
Standard

Dir ist aber schon klar, daß Du Dir dann das ganze While und If schenken kannst
Ausserdem ist der Code oben schlecht - der erste Datensatz wird zwar in den Array gepackt, dann aber sofort wieder überschrieben - hier mal der saubere Code.

Da Du dann nur noch eine Seite (oder keine) als Ergebnis hast, kannst Du es auch so machen:
PHP-Code:
<?php
$page 
$_REQUEST['page']; 

$result mysql_query("SELECT location, page_id FROM links WHERE page_id = '"$page."';");
if (
mysql_num_rows($result) == 0)
{
  
$datei "start.php";
} else {
  
$row mysql_fetch_array($result);
  
$datei $row["location"];


include(
$datei); 
?>
 
Alt 03.03.2005, 23:40  
Gast
 
Beiträge: n/a
Standard

Naja ich hab es jetzt so gemacht
Code:
<?php
$page = $_REQUEST['page'];
if($page == "") 
{ 
  include("start.php"); 
}

$result = mysql_query("SELECT location, page_id FROM links WHERE page_id = $page")
$row = mysql_fetch_array($result);

if($page < 0) 
{ 
  include($row["link"]); 
}
?>
Aber hast mich wieder eines besseren belehrt Nu is ja sogar das problem der unbekannten page_id gelöst
 
Alt 03.03.2005, 23:58  
Gast
 
Beiträge: n/a
Standard

Also von Belehren kann keine Rede sein.

Solange wir beide programmieren, wird es immer so sein, daß ich eine Sache links herum löse und Du rechts herum - und wenn ich mir das Script so anschaue - also auf die 0,00000.... Sekunden Abarbeitungsdifferenz ist auch gepfiffen

Ich denke, wenn der meikel das Script vergewaltigt, ist es sicher nochmal 10 Zeilen kürzer

Wichtig ist immer, daß Du in einem halben Jahr noch weißt, was Du da zusammengebastelt hast und das nicht gerade auf 8 von 10 Befehlen am Aussterben sind bis zur nächsten Version.

PHP-Code:
<?php
$a 
5+3;
?>
ist das gleiche wie
PHP-Code:
<?php
$a 
3$a=$a+5;
?>
 
Alt 04.03.2005, 09:34  
Gast
 
Beiträge: n/a
Standard

Wie wär's denn damit:

Code:
<?php
mysql_num_rows($q=mysql_query("SELECT location FROM links WHERE page_id = '".$_REQUEST['page']."' LIMIT 1"))?list($datei)=mysql_fetch_row($q):$datei="start.php";
include($datei); 
?>
Ein 2-Zeiler, allerdings natürlich schwieriger zu entziffern.
 
Alt 04.03.2005, 23:27  
Gast
 
Beiträge: n/a
Standard

Joa kann sein das das funzt aber so recht sehe ich da echt nicht durch
Entziffern is da ja noch ganz easy gesagt zumindest für mich
 
 


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
Problem mit IF in while Schleife DJmension PHP Tipps 2008 22 29.04.2008 16:34
While schleife -> letzter durchgang Skazi PHP Tipps 2006 7 16.09.2006 00:11
Problem mit while schleife obi PHP Tipps 2006 6 31.08.2006 13:40
mysql_query verschmelzen zweier abfragen (while schleife) Buschdieb PHP Tipps 2006 10 15.07.2006 17:11
while schleife - spezial datensatz einblenden Buschdieb PHP Tipps 2006 2 09.04.2006 13:05
while Schleife gibt nicht alle Daten aus PHP Tipps 2006 2 12.01.2006 19:24
[Erledigt] While schleife in while schleife = nur ein datensatz?! PHP Tipps 2005-2 9 28.10.2005 12:48
while schleife in einer while schleife beim tmpl-sys PHP Tipps 2005-2 0 27.07.2005 15:07
While Schleife Beatbox Off-Topic Diskussionen 8 19.05.2005 21:55
while schleife beenden PHP Tipps 2005 3 29.03.2005 20:35
Variabel aus while schleife ausserhalb der schleife nutzen PHP Tipps 2005 8 12.02.2005 18:04
resultausgabe mit while schleife in pdf dokument PHP Tipps 2004 2 23.09.2004 14:56
Nach while Schleife funzt nix mehr?! PHP Tipps 2004 15 25.08.2004 00:25
[Erledigt] probleme mit ner while schleife PHP Tipps 2004 5 23.07.2004 17:28
Prob mit While schleife JEGO PHP Tipps 2004 2 04.06.2004 12:01

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php while else, if else schleife php, php elseif schleife, while else php, php while kurzform, php else if schleife, php if else kurzform, while kurzform, php elseif kurzform, php if else schleife, php schleife kurzform, elseif schleife, else if schleife, if if else else schleife php, if else in while schleife, elseif include, if schleife, if schleife in while schleife php, php for schleife elseif, if in while

Alle Zeitangaben in WEZ +1. Es ist jetzt 17:51 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.