MySQL -> switch()

  • Themenstarter Themenstarter noctaru
  • Beginndatum Beginndatum
N

noctaru

Gibt es eine Möglichkeit, die case-Teile aus einer Datenbank zu laden?


Ich habe das mal mit while() versucht. Aber es klapt irgendwie nicht. Da Ich noch nicht sehr erfahren bin, weis Ich eigentlich keine andere Möglichkeit.
Aber wie schon gesagt: "I am a learner and no profi".

PHP:
....
switch ($site) {

while($row = mysql_fetch_object($erg)){

$id = $row->id;
$text=$row->text

case $id :   
             echo $text;   
             break;
}


}

PS:. Hoffe es wird verstanden was Ich meine.
 
PHP:
<?php
mysql_connect("localhost","user","pass");
mysql_select_db("test");
$sql = mysql_query("SELECT * FROM vok");
$i = 0;
while($row = mysql_fetch_array($sql)) {
	$bla = $row['franz'];
	$test = $row['deutsch'];
}
$site = $_GET['site'];
switch($site) {
	case $bla:
		echo $test;
	break;
}
?>

Funktioniert bei mir.
 
Mh... komisch... eigentlich müste doch da dadurch nur der letzte Eintrag in der Datenbank hergenommen werde, da das switch nicht in der Schleife steht. Oder verstehe Ich das falsch?
 
Zuletzt bearbeitet von einem Moderator:
Setze den Variablenwert doch einfach als Bedingung der Abfrage, etwa:
PHP:
$query = '
	SELECT
	        …
	  FROM
	        …
	  WHERE
	        `foo` = "'.mysql_real_escape_string($site).'"
	';
 
noctaru hat gesagt.:
Mh... komisch... eigentlich müste doch da dadurch nur der letzte Eintrag in der Datenbank hergenommen werde, da das switch nicht in der Schleife steht. Oder verstehe Ich das falsch?
Ja. Bei mir nicht, da ich nur einen Eintrag in der Datenbank habe.
Du könntest es natürlich einfach in ein Array speichern. Das hatte ich zuerst vor, deshalb wird unnötigerweise noch $i deklariert.

Wenn du den switch() in die while Schleife schreibst wird es jedes Mal überschrieben.

Allerdings ist Gumbos Vorschlag eleganter.
 
Zurück