Contentausgabeproblem mit DIV-Layer und MySQL

PhaseV

Mitglied
Hallo,

ich habe ein kleines Problem mit meiner Website
Das Layout basiert komplett auf <div>-tags und funktioniert auch one MySQL, aber jezz will ich meine Site auf MySQL umstellen, aber ich bekomme es nicht hin, das die seiten im 'content'-div angezeigt werden, vor habe ich die Seite in ein Array gelegt, wodurch der aufruf ermöglicht wurde. Jetzt genug zur Problembeschreibung, ich zeig euch erstmal dem src-code.

PHP:
<? 
$seite = array(); 
$seite['start'] = 'home.php'; 
?> 
<div id="navi"> 
    <table> 
        <th>Men&uuml;</th> 
        <tr> 
            <td><a href="index.php?seite=start">Start</a></td> 
        </tr> 
    </table> 
</div> 
<div id="content"> 
<? 
    if (isset($_GET['seite'], $seite[$_GET['seite']])) { 
        include $seite[$_GET['seite']]; 
    } else { 
        include $seite['start']; 
    } 
?> 
</div>
hat einer eine Idee wie ich das am besten löse?
Das Menu wird mittels while()-Schleife in ein $site-Array gelegt.

mfg
SiLvErStAr2411
 
Versteh ich dich richtig? Du speicherst die Liste der Seiten in einer Tabelle in der MySQL-Datenbank.
Da hast du irgend eine Tabelle mit den Seitennamen und dem dazugehörigen Dateiname.

Aber du weisst, wie man Daten mittels SQL aus einer DB ausliest?

Ich frage, da ich nicht weiss wo du stehst und wo dein Problem sein könnte.
 
Ja du siehst das genau richtig.
zurzeit sieht diese ausgabe wie folgt aus
PHP:
$menuQry = mysql_query('SELECT * FROM menu_config ORDER BY position ASC');
<div id="navi">
	<?php 
		echo '<table>
			<th>Men&uuml;</th>';
		while ($menuRow = mysql_fetch_array($menuQry)) {
			$menu = array();
			$menu['name'] = $menuRow['name'];
			echo '<tr>
				<td><a href="index.php?menu='.$menu['name'].'">'.$menu['name'].'</a></td>
			</tr>';
			
			$menulnk['name'] = $menuRow['datei'];
		}
		echo '</table>';
	?>
</div>
<div id="content">
	<?php 
		if (isset($_GET['menu'], $menu[$_GET['menu']])) {
			include $menulnk[$_GET['menulnk']];
		} else {
			include $menulnk['name'];
		}
	?>
</div>
 
Ein bischen Baustelle.....
Deine erste Zeile sollte auch in PHP-Tags gesetzt werden.

Du setzt dein Array falsch zusammen. Da hast 2 Arrays mit je einem EIntrag und den überschreibst du jedesmal wieder.
Ich würde das so lösen
PHP:
$menuQry = mysql_query('SELECT * FROM menu_config ORDER BY position ASC');
$menu = array();    
while ($menuRow = mysql_fetch_array($menuQry)) {
    $menu[$menuRow['name']] = $menuRow['datei'];
    echo "<tr><td><a href='index.php?menu={$menuRow['name']}>{$menuRow['name']}</a></td>";
//....
if (isset($_GET['menu'], $menu[$_GET['menu']])) {
    include $menu[$_GET['menu'];
} else {
    include default.html;
}

So hast du ein array menu der etwa so aussihet
Code:
array {
    menu1 => menulink1
    menu2 => menulink2
    menu3 => menulink3
}
 
hi, also ich hab deinen vorschlag eingebaut, jezz werden mir zwar die seiten dargestellt, aber in der navigation steht nur der zweite von zwei menupunkten und der link sieht auch etwas komisch aus.

hier kannst es dir angucken: <<Link von Yaslaw vorsorglich entfernt>>

Der Link wird noch falsch zusammengesetzt. Wir haben da ein ' am ende des a-Tags vergessen
PHP:
    echo "<tr><td><a href='index.php?menu={$menuRow['name']}'>{$menuRow['name']}</a></td>";
 
Zurück