Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Cos lekkiego, strawnego i przyjemnego :)
Palli
post
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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
zyxwvu
post
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) .
Go to the top of the page
+Quote Post

Posty w temacie
- Palli   Cos lekkiego, strawnego i przyjemnego :)   19.06.2002, 17:37:19
- - hyper   RTFM! Masz tutaj liste wszystkich funkcji związan...   19.06.2002, 17:42:21
- - Palli   rili? Albo ja jestem slepy, albo nie widze tam te...   19.06.2002, 18:11:06
- - Seth   Kolejny bezsensowny topic Jak mozesz czlowieku...   19.06.2002, 18:29:46
- - point6000   CytatKolejny bezsensowny topic  :evil: ...   19.06.2002, 18:44:00
- - Palli   Nie, nie nie, albo mi juz na muzg te 35 stopni pad...   19.06.2002, 19:10:26
- - Palli   Btw: thx za komplementy pod adresem avatara   19.06.2002, 19:11:13
- - castor   @all bla bla... bez sen ...po co to tu ...czego ...   19.06.2002, 19:17:38
- - point6000   Niewiadomo czy Palli zrozumie wiec trzeba dodać że...   19.06.2002, 19:25:47
- - Seth   Castor ales mu wytlumaczyl: CREATE... A tak wog...   19.06.2002, 19:26:33
- - Palli   no wiec tak: Thx od Castora za LUDZKA odpowiedz, ...   19.06.2002, 19:29:18
- - castor   CytatCastor ales mu wytlumaczyl: CREATE...  :...   19.06.2002, 19:34:21
- - point6000   Cytatno wiec tak: Thx od Castora za LUDZKA odpowi...   19.06.2002, 19:35:21
- - Palli   O to wlasnie mi chodzilo co Castor powiedzial - ni...   19.06.2002, 19:36:59
- - Seth   Cytat... Cytat A tak wogole to chyba nie przeczyta...   19.06.2002, 19:41:13
- - castor   no tez tak zrozumialem i twa odpowiedz rowniez ......   19.06.2002, 19:47:13
- - Palli   Byc moze faktycznie popelnilem blad niekonkretyzuj...   19.06.2002, 19:50:17
- - Seth   Chodzilo mi o to co powiedziales: "Siedz cicho jak...   19.06.2002, 19:56:13
- - zyxwvu   Oto funkcja php tworząca tabelę napisana przeze mn...   19.06.2002, 20:15:41
- - Palli   Ok, z gory thx za ten "kawalek" kodu - jutro potes...   19.06.2002, 20:48:56
- - Sir Blade   kolejny argument za tym aby powstal nowy dzial typ...   20.06.2002, 02:17:36
- - castor   CytatChodzilo mi o to co powiedziales: "Siedz cich...   20.06.2002, 14:43:17
- - zyxwvu   Do licha, nie kłóćta się. Wściekacie się z tak bła...   20.06.2002, 15:09:27


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 28.09.2025 - 19:24