Switch-Case mit MySQL

  • Themenstarter Themenstarter Ramix
  • Beginndatum Beginndatum
R

Ramix

Hey zusammen.

Ich habe ein kleines Problem mit dem dynamischen Menu und dessen Content:
Die Menüid(DB) ist auch die Site-Id(GET). Jetzt möchte ich mit einem switch und Case den Inhalt passend zur Menüid wählen. Hier mal mein Versuch:

PHP:
<?php
class content {

	public function inhalt($site=0){
				
			$db = new db();
			$query = $db->query("SELECT menu.id, content.inhalt FROM menu INNER JOIN content ON menu.id = content.id_menu;");
			switch ($_GET['site']){	
			while($daten = mysql_fetch_object($query)){
				case $daten->id:
					echo $daten->inhalt;
				break;
			}
			default:
				echo "Hallo";
			}
	}
}
?>

Das JOIN habe ich probiert und es funktioniert....
Die Fehlermeldung lautet:
Parse error: syntax error, unexpected T_WHILE, expecting T_CASE or T_DEFAULT or '}' in C:\xampp\htdocs\projekt\seite\inc\content.inc.php on line 9

Vielen Dank für eure Antworten
Ramon
 
Ein Switch kann nicht so generiert werden, was aber funktionieren würde:

PHP:
<?php
class content {

    public function inhalt($site=0){
                
		$db = new db();
		$query = $db->query("SELECT menu.id, content.inhalt FROM menu INNER JOIN content ON menu.id = content.id_menu;");    
		while($daten = mysql_fetch_object($query))
		{
			if($daten->id == $_GET['site'])
			{
			  echo $daten->inhalt;
			  break;
			}
		}
		  echo "Hallo";
    }
}
?>

Wobei natürlich die Frage ist, warum du so einen Overhead an Daten erzeugst und nicht $_GET['side'] in der WHERE Bedingung des SQL Statements unterbringst.
 
Danke für die rasche Antwort!

Das ich nicht vorher auf die if-Methode gekommen bin! :rolleyes: aber danke für den Denkanstoss!
Super Sache!

Gruss Ramon
 
Versteh nicht warum du das nicht gleich so machst:

PHP:
$query = $db->query("SELECT menu.id, content.inhalt FROM menu INNER JOIN content ON menu.id = content.id_menu WHERE menue.id = '".$_GET['site']."';");

Achte hier aber auf die MySQL Injection!
 
Zurück