ilch Forum » Allgemein » HTML, PHP, SQL,... » Prüfen ob Tabelle vorhanden

Geschlossen
  1. #1
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    Hi Leute wie kann ich mit PHP und SQL prüfen ob eine Tabelle in der DB schon vorhanden ist?
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    $qry = mysql_query("SHOW TABLES LIKE 'name'");
    if (mysql_num_rows($qry)) {
      //tabelle existiert
    }
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    hatte es jetzt so probiert aber das klappt nicht

    $check_css = db_query("SHOW TABLES LIKE `prefix_tagcloudcss`");
    
    if (mysql_num_rows($check_css == 0)) {
    	#Tag-Cloud-Css Tabelle wird angelegt
    	db_query("CREATE TABLE `prefix_tagcloudcss` (
    		`id` smallint (6) NOT NULL auto_increment,
    		`css` varchar (500) NOT NULL default '',
    		PRIMARY KEY (`id`)
    		)");
    } else {
    	echo "existiert schon";
    }





    webb ich db_query auf mysql_query ändere macht auch kein unterschied



    ich bin zu dumm habs gemerkt dass ich im if nen bug hatte^^

    danke


    Zuletzt modifiziert von holz am 07.02.2013 - 08:53:59
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    so also der code sieht jetzt so aus:

    $check_css = mysql_query("SHOW TABLES LIKE `prefix_tagcloudcss`");
    
    if (mysql_num_rows($check_css) == 0) {
    	#Tag-Cloud-Css Tabelle wird angelegt
    	db_query("CREATE TABLE `prefix_tagcloudcss` (
    		`id` smallint (6) NOT NULL auto_increment,
    		`css` varchar (500) NOT NULL default '',
    		PRIMARY KEY (`id`)
    		)");
    } else {
    	echo "existiert schon";
    }


    wenn die tabelle nicht da ist wird sie angelegt das klappt, aber wenn sie da ist wird nicht in den else zweig gesprungen ....
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Nicht ` verwenden, das hab ich doch auch nicht gemacht, das ist ein Zeichenkettenbegrenzer, entweder ' oder ", je nachdem was dir lieber ist.

    Aber wenn es dir nur um das Anlegen selbst gehst, dann gibt es direkt den MySQL Befehl CREATE TABLE IF NOT EXISTS siehe dev.mysql.com/doc/refman/5.1/de/create-table.html


    Zuletzt modifiziert von Mairu am 07.02.2013 - 09:10:26
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    ah shit danke muss ich nochmal abgleichen

    ja in dem einen fall ists nicht anlegen braus auber auf für ein alter table

    aber danke für den hinweiß lächeln
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    irgendwie klappt es leider immer noch nicht ....

    ich lande jetzt immer im else zweig

    $check_css = mysql_query("SHOW TABLES LIKE 'prefix_tagcloudcss'");
    
    if (mysql_num_rows($check_css)) {
    	echo "existiert schon";
    } else {
    	echo "<br>Die Datenbanken werden angelegt<br>";
    	#Tag-Cloud-Css Tabelle wird angelegt
    	db_query("CREATE TABLE `prefix_tagcloudcss` (
    	`id` smallint (6) NOT NULL auto_increment,
    	`css` varchar (500) NOT NULL default '',
    	PRIMARY KEY (`id`)
    	)");	
    }
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Rock@wulf Hall Of Fame
    Registriert seit
    03.06.2004
    Beiträge
    3.282
    Beitragswertungen
    239 Beitragspunkte
    mysql_ zu db_ änder sonst wird prefix nicht ersetzt bzw wenn es außerhalb ich läuft den prefix angeben
    Meine Postings repräsentieren meine Meinung wenn nicht anders gekennzeichnet.
    MFG Rock@wulf
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    jau so gehts danke

    hatte anfangs auch db_ ... habs dann irgendwann weils nicht ging ind mysql_ geändert^^
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    sieht da jemand einen fehler? es wird nicht ausgeführt

    <?php define ( 'main' , TRUE ); error_reporting(E_ALL);
    #------------------------------------------------------------------------------------------------------------
    #Copyright	by: Felix Hohlwegler
    $support = "www.felix-hohlwegler.de";
    $mail = "felix.hohlwegler@gmx.de";
    $version = "0.3";
    $version_old = "0.2";
    $datum = "08.02.2013";
    #------------------------------------------------------------------------------------------------------------
    #Includes 
    require_once('include/includes/config.php');
    require_once('include/includes/func/db/mysql.php');
    #------------------------------------------------------------------------------------------------------------
    #Datenbank Verbindung herstellen
    db_connect();
    #------------------------------------------------------------------------------------------------------------
    #Prüfen ob Tabellen vorhanden
    $check_css = db_query("SHOW TABLES LIKE 'prefix_tagcloudcss'");
    $check_tag = db_query("SHOW TABLES LIKE 'prefix_tagcloud'");
    $check_support = db_query("SHOW TABLES LIKE 'prefix_tagcloudsupport'");
    #------------------------------------------------------------------------------------------------------------
    #Tag-Cloud-Support Tabelle wird angelegt oder upgedatet
    if (db_num_rows($check_support)) {
    	echo "<p>Update Tag-Cloud Modul-Version und Modul-Datum</p>";
    	db_query('UPDATE `prefix_tagcloudsupport` SET version = "'.$version.'", datum = "'.$datum.'" WHERE version = "'.$version_old.'"');
    } else {
    	echo "<p>Tag-Cloud Support Informationen werden eingetragen</p>";
    	db_query("CREATE TABLE `prefix_tagcloudsupport` ( 
    		`support` varchar(200) NOT NULL default '',
    		`mail` varchar(200) NOT NULL default '',
    		`version` varchar (100) NOT NULL default '',
    		`datum` varchar (100) NOT NULL default '',
    		PRIMARY KEY (`version`)
    		)");
    	db_query('INSERT INTO `prefix_tagcloudsupport` (support, mail, version, datum) VALUES ( "'.$support.'", "'.$mail'", "'.$version'","'.$datum'") ' );
    }
    #------------------------------------------------------------------------------------------------------------
    #Tag-Cloud-Css Tabelle wird angelegt
    if (db_num_rows($check_css)) {
    	echo "<p>existiert schon</p>";
    } else {
    	echo "<p>Die Datenbanken werden angelegt</p>";
    	db_query("CREATE TABLE `prefix_tagcloudcss` (
    	`id` smallint (6) NOT NULL auto_increment,
    	`css` varchar (500) NOT NULL default '',
    	PRIMARY KEY (`id`)
    	)");	
    }
    #------------------------------------------------------------------------------------------------------------
    #Tag-Cloud Tabelle wird angelegt + Modul Registrieren
    if (db_num_rows($check_tag)) {
    	echo "<p>existiert schon</p>";
    } else {
    	db_query("CREATE TABLE `prefix_tagcloud` ( 
    		`id` smallint (6) NOT NULL auto_increment,
    		`href` varchar(200) NOT NULL default '',
    		`name` varchar (100) NOT NULL default '',
    		`cssid` varchar (6) NOT NULL default '',
    		PRIMARY KEY (`id`),
    		CONSTRAINT fk_RANK FOREIGN KEY (`cssid`) REFERENCES `prefix_tagcloudcss`(`id`)
    		)");
    	echo "<p>Das Modul wird registriert</p>";
    	#Modul wird bei Ilch Registriert
    	db_query("INSERT INTO `prefix_modules` VALUES ('', 'tagcloud', 'Tag-Cloud', 1, 1, 1) ");
    }
    #------------------------------------------------------------------------------------------------------------	
    echo "<p>Die Tabellen wurden angelegt</p>";
    
    echo "<p>Die Installation is abgeschlossen</p>";
    ?>
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    holz Hall Of Fame
    Registriert seit
    17.11.2005
    Beiträge
    4.606
    Beitragswertungen
    117 Beitragspunkte
    fehler gefunden lächeln
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten