Tabelle vorhanden?

rtky_Trunks

Mitglied
hi,

wie kannn ich über prüfen ob es eine bestimmte Tabelle in mein Datenbank schon gibt?

gibt es bestimmt ein schönen If-befehl oder?
 
Du koenntest die Tabellen versuchen zu erstellen, wenn das fehlschlaegt ist die Tabelle bereits vorhanden.
Beispiel:
PHP:
if (!mysql_query("CREATE TABLE `sessions` (`sessionid` VARCHAR( 255 ) NOT NULL,`userid` INT( 8 ) UNSIGNED NOT NULL,`cookies` INT( 8 ) UNSIGNED NOT NULL)")
 {
  printf("Tabelle existiert bereits!");
 }
else
 {
  printf("Tabelle existierte noch nicht und wurde jetzt angelegt!");
 }
Ich nehme einfach mal an, dass es darum geht eine Tabelle anzulegen falls sie noch nicht existiert. Falls nicht, kann ja in dem Fall dass sie noch nicht existierte und dementsprechend angelegt wurde diese dann einfach wieder geloescht werden.

Alternativ koennen auch alle Tabellen ausgelesen werden und dann nach dem entsprechenden Tabellennamen gesucht werden.
Zum Beispiel so:
PHP:
$tablefound=false;
$tables=mysql_query("show tables");
while ($table=mysql_fetch_row($tables))
 {
  if ($table[0]=="Tabellenname")
  {
   $tablefound=true;
  }
 }
if ($tablefound==true)
 {
  printf("Tabelle existiert!");
 }
else
 {
  printf("Tabelle existiert nicht!");
 }
 
So. Ich habs mit dem Code hier hinbekommen. Danke nochmal
PHP:
$db_exist = @mysql_query("SELECT 1 FROM `".$tb_name."` LIMIT 0");
if (!$db_exist)
//checken ende, wenn nein dann dann eine erstellen, mit den daten
  {     

	
	
	echo "Tabelle nicht vorhanden";
	
	echo "<br>";


	 $sql = 'CREATE TABLE `'.$tb_name.'` ('
         . ' `bestellnummer` VARCHAR(50) NOT NULL, '
         . ' `menge` VARCHAR(20) NOT NULL, '
         . ' `preis` VARCHAR(40) NOT NULL, '
         . ' `preis_gesamt` VARCHAR(40) NOT NULL'
         . ' )'
         . ' TYPE = myisam';		
	
 	 if(!$res_id = mysql_query($sql)) die (' Fehler! tabelle konnte nicht erstellt werden');
	//tabelle erstellt -> Werte eintragen
	$menge ='1';
	$gesamt = $preis;
	echo $menge;
	echo $gesamt;
	echo $n_pro;
	echo $preis;

	$sql = "INSERT INTO `".$tb_name."`  VALUES ('".$n_pro."', '".$menge."', '".$preis."', '".$gesamt."')";
	if(!$res_id = mysql_query($sql)) die ('Fehler!das Produkt konnte nicht in den warenkorb hinzugefügt werden');
        //produkt im warenkorb
  	 $daten2 =($warenkorb." : ".$n_pro);
   	 $expires=time()+100;

  	 setcookie("warenkorb",$daten2,$expires,"","",FALSE);
  	 sleep(1);



  } else
{
 echo "<br>tabelle vorhanden";
	// schauen ob der artikel schon in der liste ist
	$sql = "SELECT * FROM `".$tb_name."` WHERE `bestellnummer`=".$n_pro;
	if (!$res_id = mysql_query($sql))
   	die ('Fehler23! Sql-Befehl ist falsch');
    	while ($daten = mysql_fetch_array($res_id))
   	 {
    	  $i2=$daten['bestellnummer'];
    	 } 


	If($i2!=$n_pro)
	 {
	 
	 echo "<br>";
	 echo "<br>Neue zeile".$n_pro."<br>";
	 $menge ='1';$gesamt = $preis;
         echo ('bestell_id nicht in datenbank');
	 $sql = "INSERT INTO `".$tb_name."`  VALUES ('".$n_pro."', '".$menge."', '".$preis."', '".$gesamt."')";
	 if(!$res_id = mysql_query($sql)) die ('Fehler!das Produkt konnte nicht in den warenkorb hinzugefügt werden');
	 echo "<br>Wurde erstellt";
	header("location:index.php?id=warenkorb");
	 }


	//--------------
	If($i2==$n_pro)
	 
	{
	$sql = "SELECT * FROM `".$tb_name."` WHERE `bestellnummer`=".$n_pro;
	if (!$res_id = mysql_query($sql))
   	die ('Fehler23! Sql-Befehl ist falsch');
	  while ($menge = mysql_fetch_array($res_id))

	   { 
	   $i3=$menge['menge'];
	   $gesamt = ($i3+1);
	   $i = $menge['preis']; 
	   	
           }
	 
	
		//menge ändern- nur wenn der artikel schon vorhanden
	 
	   $sql =  'UPDATE `'.$tb_name.'` SET `menge` = '.$gesamt.' WHERE `bestellnummer`='.$n_pro;
	   if (!$res_id = mysql_query($sql))
           echo ('Fehler2! Sql-Befehl ist falsch 2--');

		//gesamt preis ändern - errechnen
		$gesamt2 = ($i * $gesamt);
		echo "i: ".$i."<br>";
		echo  "gesamt: ".$gesamt."<br>";
	     $sql =  'UPDATE `'.$tb_name.'` SET `preis_gesamt` = '.$gesamt2.' WHERE `bestellnummer` = '.$n_pro;
	     if (!$res_id = mysql_query($sql))
             echo ('Fehler2! Sql-Befehl ist falsch');
header("location:index.php?id=warenkorb");
        }
 
Zurück