![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zablokowani Postów: 34 Pomógł: 0 Dołączył: 7.06.2002 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Odetchnijmy od wielkich swiatowych problemow programistycznych i przejdzmy do banalow (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Jezeli chcialbym stworzyc baze danych z konkretna tabela jaka musze funkcje wybrac? mysql_create_db tworzy baze, a jaka funkcja stworyz mi podana tabele, bez potrzeby zdalnego laczenia sie z baza danych badz innych PHPAdminow. Enybady nołs?
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: -- Skąd: 50° 30' N, 22° 7' E Ostrzeżenie: (0%) ![]() ![]() |
Oto funkcja php tworząca tabelę napisana przeze mnie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) (Uwaga - mogą być jakieś "Parse error", bo przekonwertowałem to z mego sterownika MySQL (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ):
Kod function mysql_create_table($table,$fields){
$columns = count($fields); # Ile jest kolumn do dodania $newtable = 0; if($fields[$columns][1]=="primary key"){ $query = "CREATE TABLE $table (".$fields[1][1]." ".$fields[1][2]." ".$fields[1][3].", ".$fields[$columns][1]." (".$fields[$columns][2]."))"; $dec = 1; }else{ $query = "CREATE TABLE $table (".$fields[1][1]." ".$fields[1][2]." ".$fields[1][3].")"; $dec = 0; } if(mysql_query($query)){ $newtable = 1; $howmany++; } for($counter=2; $counter <=$columns-$dec; $counter++){ if($fields[$counter][1]!="primary key" && $fields[$counter][1]!="key"){ $query = "ALTER TABLE $table ADD ".$fields[$counter][1]." ".$fields[$counter][2]; if($fields[$counter][3]!=""){ $query .= " ".$fields[$counter][3]; } $query .= " AFTER ".$fields[$counter-1][1]; } if($fields[$counter][1]=="primary key" || $fields[$counter][1]=="key"){ if(!$newtable){ $query = "ALTER TABLE $table DROP INDEX ".$fields[$counter][1]." ADD ".$fields[$counter][1]." (".$fields[$counter][2].")"; }else{ $query = "ALTER TABLE $table ADD ".$fields[$counter][1]." (".$fields[$counter][2].")"; } } if(mysql_query($query)){ $howmany++; }else{ die("MySQL error: error in adding column $fields[$counter][1] to table $table."); } } return $howmany; } Funkcja zwraca ilość zainstalowanych poprawnie kolumn, a jako parametry przyjmuje kolejno: nazwę tworzonej tabeli, oraz tabelę pól. Przykładowa wygląda następująco: Kod $tabela = array(1=> array(1=>"id", "int(10)", "NOT NULL auto_increment"),
array(1=>"pole_textowe", "varchar(128)", ""), array(1=>"blobek", "blob", "not null"), array(1=>"primary key", "id")); Tak więc tworzymy dwuwymiarową tabelę, przy czym każdy kolejny PIERWSZY indeks oznacza kolejne pole tabeli, a drugi ineks kolejno: komórka 1 - nazwa pola komórka 2 - typ pola komórka 3 - ewentualne dodatkowe opcje (np. auto_increment). Jeśli komórka 1 ma wartość key, lub primary key, do drugiej komórki wstawiamy nazw pola, któego się to tyczy, a trzecią zostawiamy w spokoju. Mam nadzieję, że to rozwiąże twój problem, Palli (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . |
|
|
![]() ![]() |
![]() |
Aktualny czas: 28.09.2025 - 19:24 |