Tabelle erstellen/ändern per install.php

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Tabelle erstellen/ändern per install.php

    Ich hätte da mal eine Frage!

    Wie kann ich es am besten machen, das, beim anlegen einer sql Tabelle per install script erst mal festgestellt wird ob die schon da ist, und wenn ja, dann nur die Veränderungen gemacht werden!
    Wäre Dankbar, wenn mir das einer versimpelt klar machen kann!

    Das ist Das install file jetzt:
    ------------------------------------------------------------
    <?
    require ("config.inc.php");
    require ("$userkopf");

    if(!isset($mkdb)) {
    echo "<center>Klick auf OK um die Tabellen anzulegen:<br>
    <form action=$PHP_SELF method=post><br>
    <br><input type=submit name=mkdb value=OK></form></center>";
    }
    if(isset($mkdb)) {
    $conn = mysql_connect($sql_host, $sql_user, $sql_pass);
    mysql_select_db($sql_db);


    $sqlgb = "CREATE TABLE $sql_tab (
    id tinyint(10) DEFAULT '0' NOT NULL AUTO_INCREMENT,
    name varchar(255),
    email varchar(255),
    datum varchar(255),
    betreff varchar(255),
    text varchar(255),
    leftpo varchar(255),
    toppo varchar(255),
    primary key(id));";


    $resgb = mysql_query($sqlgb, $conn);

    if($resgb) {
    echo "Die Tabelle - <b>$sql_tab</b> - wurde erfolgreich angelegt<br>
    <hr><br>
    <a href=pinnwand.php>zum $title</a>";
    }
    else {
    mysql_error();
    }
    mysql_close($conn);
    }
    ?>
    ----------------------------------------------------------
    Jetzt will ich noch eine Spalte "farbe" und "pinn" reinmachen in der nächsten version, und die alte Tabelle sollte geändert werden, oder eben eine Neue erstellt werden, dann mit allen neuen Spalten drin.
    Hoffe jemand kann mir da weiter helfen!

    Swishman

  • #2
    Wenn Du nur etwas hinzufügen willst:

    ALTER TABLE tabelle ADD feld varchar(xy)
    Greets PHPwebworks
    webmaster@phpwebworks.de

    Kommentar


    • #3
      Danke Für die Antwort

      Das ganze script sollte wenn es zB zum zweiten mal aufgerufen wird, einfach nix machen, wenn die Tabelle schon da ist, wenn weine ältere tabelle da ist, dann die veränderungen machen, und wenn noch gar nix da ist eine kommplete Tabelle rein machen incl. den Änderungen

      Meinst du das geht, oder ist es nicht möglich. Bei den scripten von powie.de funtzt das so, aber es ist so kompliziert, das ich es net peil, wie er da gemacht hat!

      Swishman

      Kommentar


      • #4
        hmm,

        also ob die DB da ist stellst du fest wenn du zu ihr connectest und es kommt ein false als antwort
        sollte so gehen
        Code:
        if (!($handle = mysql_select_db($dbname,$conn))) { die("nicht da "); }
        naja und für Felder auszulesen hier ein gutes Beispiel :
        [code]
        <?php
        mysql_connect("localhost:3306");
        mysql_select_db($dbname);
        $result = mysql_query("SELECT * FROM tabelle");
        $fields = mysql_num_fields($result);
        $intRows = mysql_num_rows($result);
        $i=0;
        $table = mysql_field_table($result,$i);
        echo "Die Tabelle $table hat $fields Felder und $intRows Datensätze <br>";
        echo "Es folgt eine Liste der Felder : <br>";
        while ($i< $fields)
        {
        $strTyp = mysql_field_type($result,$i);
        $strName = mysql_field_name($result,$i);
        $intLen = mysql_field_len($result,$i);
        $strFlags = mysql_field_flags($result,$i);
        echo"$strTyp $strName $intLen $strFlags <br>";
        $i++;
        }
        mysql_close();

        Kommentar

        Lädt...
        X