WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik



Im Homepage und Webhosting-Forum --- repeat/while Schleifenfrage

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.

Forum » PHP & MySQL » repeat/while Schleifenfrage - 23 Nov 2024 Antworten
im Forum für Webhosting Homepage gefunden:
repeat/while Schleifenfrage
silvio
Pixelschubser
Threadstarter




Beiträge: 7

Hallo,

ich habe eine Navigation gebaut und möchte den Link der aktuellen Seite per CSS kennzeichnen. Ich realisiere das mit einer ziemlich langen if-Anweisung
Da ich absoluter PHP-Anfänger bin, weiß ich nicht wie ich das vereinfachen kann.
Vielleicht hat jemand eine Idee?

Würde mich sehr freuen.

Silvio

Hier der Code (nur die Navigation)
____________________________________________________________________________
$link1 = " $link2 = "
"; //Verlinkung Ende
$css1 = ""; //Textauszeichnung Anfang
$css2 = "
"; //Textauszeichnung Ende


if ($page== ""){
echo $link1."start\">".$css1."Home".$css2.$link2;
}
elseif ($page==start){
echo $link1."start\">".$css1."Home".$css2.$link2;
}
else{
echo $link1."start\">Home".$link2;
}
// Link
if ($page==tel){
echo $link1."tel\">".$css1."Tellaro".$css2.$link2;
}
else{
echo $link1."tel\">Tellaro".$link2;
}
// Link
if ($page==ven){
echo $link1."ven\">".$css1."Venezia".$css2.$link2;
}
else{
echo $link1."ven\">Venezia".$link2;
}
// Link
usw.
?>
____________________________________________________________________________

  Profil   E-Mail   Editieren   Zitieren
languitar
Foren-Team




Beiträge: 2795

Bau dir ein Array mit allen Links und ihren Aufrufen, wie z.B. folgt:
1: 
2: 
3:
$array[0] = array('name' => 'Startseite', 'call' => 'link1');
$array[1] = array('name' => 'Über mich', 'call' => 'link2');
$array[2] = array('name' => 'Impressum', 'call' => 'impressum');

Mit "call" bezeichne ich den Aufruf-String nach "page=".

Jetzt zur Ausgabe der Links:
1: 
2: 
3: 
4: 
5: 
6: 
7:
for($i=0;$i'.$array[$i]['name'].'
'; } else { echo ''.$array[$i]['name'].'
'; } }

Jetzt sollte automatisch für jedes Element im Array ein passender Link erzeugt werden und damit automatisch deine gesamte Navigation.

  Profil   Editieren   Zitieren
silvio
Pixelschubser
Threadstarter




Beiträge: 7

Großartig „languitar”,

das funktioniert super!
Große Klasse! Vielen vielen Dank.

Noch einen schönen Abend,

Silvio

  Profil   E-Mail   Editieren   Zitieren
silvio
Pixelschubser
Threadstarter




Beiträge: 7

Nun hatte ich gerade gehofft, die Sache mit dem ARRAY zu verstehen. ;-(

Auf der Seite index.php wollte ich die Navigation und die aufgerufene Seite ausgeben.
Die Navigation steht prima da.
Der Link aus der Navigation wird auch prima gesendet.

index.php?page=start

Aber dann erhalte ich 3x ”Fehlermeldung!”

Inhalt der Seite index.php:
__
@include('nav1.php');
?>


$array_3[0] = array('page' => 'start', 'call' => 'start.txt');
$array_3[1] = array('page' => 'tel', 'call' => 'tel.txt');
$array_3[2] = array('page' => 'ven', 'call' => 'ven.txt');

for($i=0;$i if($_GET['page'] == $array_3[$i]['call']) {

@include($array_3[$i]['call']);

} else {
echo 'Fehlermeldung!';
}

}
?>
__

Vielleicht kann mir noch einmal jemand helfen?
Freundliche Grüße,

Silvio

  Profil   E-Mail   Editieren   Zitieren
languitar
Foren-Team




Beiträge: 2795

Öh, halt, dein Include is falsch. Was du da inkludierst ist der Aufrufname, nicht aber der Dateiname. Dazu müsstest du dann noch ein drittes Element in das Array einfügen, in dem die zu inkludierende Datei gespeichert wird.

  Profil   Editieren   Zitieren
silvio
Pixelschubser
Threadstarter




Beiträge: 7

languitar schrieb am 28.05.2004 13:34
... ein drittes Element in das Array einfügen ...


Hallo ”languitar”,
 
ebenfalls Öh,

ich hatte das ARRAY folgendermaßen interpretiert: siehe //

$array_3[0] = array('page' => 'start', 'call' => 'start.txt');

//Name des ARRAY = array('ÜbernahmeWert' wenn: 'start', gib aus: 'start.txt'

for($i=0;$i if($_GET['page'] == $array_3[$i]['call']) {

@include($array_3[$i]['call']);

//einfügen 'start.txt';

Das ist falsch?
Dann scheint es bei mir noch etliche „Öhs” zu geben.

Warum soll ich noch ein weiteres Element einfügen?
Ich brauche den ÜbergabeWert: 'start'. Den erhalte ich von der Navigation.
Dem ÜbergabeWert ist der ”call”-Wert: 'start.txt' zugeordnet.
Nun brauche ich doch nur den ”call”-Wert auszugeben.

Oder?

Wofür benötige ich einen dritten Wert?

Entschuldige, aber nun versteh´ ich gar nichts mehr ;-(

Freundliche Grüße,

Silvio

  Profil   E-Mail   Editieren   Zitieren
silvio
Pixelschubser
Threadstarter




Beiträge: 7

Noch einmal hallo ”languitar”,
 
ich bin zu kompliziert - entschuldige.
Mein bisheriges Script zu Seitenausgabe in der Datei index.php ist folgendes:
@include('nav1.php');
?>
switch ($page) {
case 'tel';
@include('tel.txt');
break;
case 'ven':
@include('ven.txt');
default:
@include('start.txt');
}
?>

Nun hatte ich die Idee (und eine prima Vorlage von Dir!), die Seitenausgabe über eine Schleife und ein ARRAY zu realisieren.
Also anstelle einer langen switch/case Abfrage eine schnellere Schleife.

Freundliche Grüße,

Silvio

  Profil   E-Mail   Editieren   Zitieren
languitar
Foren-Team




Beiträge: 2795

So muss dann dein erweitertes Array aussehen:
1: 
2: 
3:
$array[0] = array('name' => 'Startseite', 'call' => 'link1', 'include' => 'datei1.txt');
$array[1] = array('name' => 'Über mich', 'call' => 'link2', 'include' => 'datei2.txt');
$array[2] = array('name' => 'Impressum', 'call' => 'impressum', 'include' => 'datei2.txt');


Ein mögliche Ausgabe wäre:
1: 
2: 
3:
foreach($array as $value) {
    if($array['include'] == $_GET['page']) include($value['include']);
}

  Profil   Editieren   Zitieren
silvio
Pixelschubser
Threadstarter




Beiträge: 7

Hallo ”languitar”,
 
vielen Dank für die schnelle Antwort.
Ich werd´ mich dransetzen und versuchen das zu verstehen. Grübel.

Wäre Deine Lösung mit ARRAY und Schleife schneller als die switch/case Abfrage? Es sollen insgesamt ca. 10 Links/Seiten verarbeitet werden.

Freundliche Grüße und Frohe Pfingsten,

Silvio

  Profil   E-Mail   Editieren   Zitieren
languitar
Foren-Team




Beiträge: 2795

Bei so nem kleinkrams kommts eh nicht drauf an.

  Profil   Editieren   Zitieren
silvio
Pixelschubser
Threadstarter




Beiträge: 7

languitar schrieb am 28.05.2004 17:26
Bei so nem kleinkrams kommts eh nicht drauf an.


Hallo ”languitar”,
 
beruhigend - (nur falls ich es am Ende doch nicht verstehe.)

Noch einmal vielen Dank für die Hilfe.

Freundliche Grüße,

Silvio

  Profil   E-Mail   Editieren   Zitieren
 

Antworten
Forum » PHP & MySQL » repeat/while Schleifenfrage

Aktuelle Beiträge zur Hilfe im Forum für Homepage - repeat/while Schleifenfrage im Forum Homepage Hosting AntwortenLetztes Posting
Cybersicherheit für Unternehmen
in "PHP & MySQL"
3 18.11.2024 14:05 von Gaswer
Wirtschaftslage in der Ukraine
in "PHP & MySQL"
3 22.10.2024 15:04 von Gaswer
Rangliste (Ohne Mysql) (Kompliziertes Ordner System)
in "PHP & MySQL"
3 19.07.2021 06:00 von newtopblog
kleines problem mit phpadmin
in "PHP & MySQL"
5 11.04.2021 22:22 von Zavylon
Counter mit PHP
in "PHP & MySQL"
4 22.03.2021 16:29 von Robeni
Fehlermeldung beim Importieren der Datenbank in phpmyadmin
in "PHP & MySQL"
0 02.08.2019 22:14 von iFuchs
CMS für Online Shop
in "PHP & MySQL"
18 26.05.2019 13:29 von raiserle
Regestrierungproblem
in "PHP & MySQL"
3 28.11.2018 13:20 von norbertofahey
PHP Datum ausgeben?
in "PHP & MySQL"
1 19.10.2018 10:04 von Klaus1973
PHP befehl ausführen
in "PHP & MySQL"
11 16.08.2018 09:08 von Klaus1973
Visual Composer selber programmieren?
in "PHP & MySQL"
0 22.01.2017 23:45 von Redji



Besucher : 8127826    Heute : 220     Gestern : 761     Online : 259     23.11.2024    9:17      0 Besucher in den letzten 60 Sekunden        
Nach oben