• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Abfrage ob Tabelle schon existiert?

Status
Für weitere Antworten geschlossen.

philipp1988

Neues Mitglied
hi all

ich will in meinen script ne abfrage an eine datenbank machen ob die tabelle xy schon existiert.

also folgendes

// Verbindung wurde aufgbeaut und besteht
PHP:
$slct="Select * from Datenbank";
$abfrage=mysql_query($slct);

if($abfrage)
{
}

ja mir stellt sich die frage wie ich die abfrage gestalte ....

wie kann ich da raus kriegen ,d ass ne fehlermeldung vorleigt? ^^

mfg
 
Zuletzt bearbeitet:
jo :) stmmt ^^ thx

aber hab noch nen kleines prob..

ich würde das dann so machen:
PHP:
$tabelle="show tabelle from datenbank where tabelle="gesuchtetabelle";
$tabelleda=mysql_query($tabelle);

if($tabelleda)
{
dann mach das ( weil die tabelle da sit )
}
else 
{ 
erstelle die gesuchte tabelle
}

-.- so? ^^
 
So:
PHP:
$sql = "SELECT
            Titel
        FROM
            Tabelle
        ORDER BY
            Irgendetwas DESC;";
            
$result = mysql_query($sql) OR die(mysql_error());
// Vorhandene Beiträge als Liste ausgeben
if(mysql_num_rows($result))
 {
  while($row = mysql_fetch_assoc($result))
 {
echo'Es sind Einträge vorhanden..
 }
 }
 else
 {
  echo'Es sind keineEinträge vorhanden';
 }
?>
Das ORDER BY stellt die Liste nach der Reihe auf.
Wenn du eine ID hast oder Datum, dann am Besten ORDER BY Datum, ID, usw...

MfG, matibaski
 
Wenn du nur wissen willst, ob eine Tabelle existiert dann so:

PHP:
mysql_connect("localhost", "root", "");

$tabelle="show tables from DATENBANKNAME";
$tabelleda=mysql_query($tabelle);

while($table = mysql_fetch_array($tabelleda)) {
  if ($table[0] == "TABELLENNAME") {
    echo "GIBT ES: " . $table[0];
  }
}


DATENBANKNAME und TABELLENNAME bitte austauschen :p
 
Hallo,

Schau mal hier im MySQL Forum. Der Beitrag zeigt wie es kürzer geht. Falls du noch MySQL 4.x hast schau dir mal die letzte Antwort im MySQL Forum an.

Falls du 'ne Tabelle nur löschen, oder anlegen willst falls sich exisitiert bzw. noch nicht existiert kannst du auch mal nach dem Befehl IF EXISTS schauen.


N43
 
dankeschonmal für alle antworten ;)

so hab jetzt noch folgendes problem

PHP:
$tabelle="show tables from db3546_371";
$tabelleda=mysql_query($tabelle);


while($tabelle = mysql_fetch_array($tabelleda)) 
{
  if (tabelle[0] == "extern") 
  	{
   	echo "GIBT ES: " . $tabelle[0];
    	echo "<br>";
  	}
  else 
  	{
  	$eintrag="CREATE TABLE extern (ID INT, URL  VARCHAR(60),Datum  DATETIME);";
  	mysql_query($eintrag);
  	$pass=pwd();
  	echo $pass;
  	mailsend();
    	} 

}

das soll folgendes bewirken.

das soll überprüfen ob die folgende Tabelle schon vorhanden ist.
Wenn die Tabelle "extern" vorhanden ist soll er nur ausgeben, dass es die tabelel gibt und mehr nicht.

Wenn es die tabelle noch nicht gibt soll er die folgende tabelle anlegen und ein password generieren und eine E-Mail schicken.

das problem ist auch wenn die tabelle vorhanden ist schickt er die email aber awrum oO?

ich denke ma es liegt an der bedingng der if abfrage

weiss jemand ne lösung? ^^

mfg
danke schonmal
 
send' doch einfach das hier:

PHP:
<?php
$sql = "SELECT TABLE IF EXISTS tabellenname";
?>

Nils aka XraYSoLo
 
Hallo,

du musst mit einem Flag arbeiten, denn sobald es mehrere Tabellen in der DB gibt wird der else-Teil immer min. einmal ausgeführt.

PHP:
$table_exists = false;
while($tabelle = mysql_fetch_array($tabelleda))  {
   if (tabelle[0] == "extern") {
      $table_exists = true;
      break;
   }
}

if (!$table_exists) {
$eintrag="CREATE TABLE extern (ID INT, URL  VARCHAR(60),Datum  DATETIME);";
   mysql_query($eintrag);
   $pass=pwd();
   echo $pass;
   mailsend();
}
N43
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben