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
    387 Beitragspunkte
    1
    2
    3
    4
    $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

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $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:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $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
    387 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

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $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

    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