Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]zapis do tablicy
Forum PHP.pl > Forum > Przedszkole
mirkus
Witam
Mam taki mały problem chce utworzyć tabele w MYSQL utworzylem bazę, tablicę a teraz chce nadać kolumna nazwy w tablicy. I tu się pojawia mój problem nazwy tych kolumn mam zapisane w tablicy niech to będzie tablica $tablica_zmiennych[$i];
Jak można automatycznie utworzyć nazwy tych kolumn.
  1. $tablica = "CREATE TABLE dane
  2. (
  3. probowałem tu fora wrzucic rzeczy przeleciał całą tablicę
  4. for($i=0;$i<5;$i++)
  5. {
  6. $tablica_zmiennych[$i],
  7. }
  8. )";
  9. $resulatat = mysql_query($tablica) or die(mysql_query());



ale ten sposob nie działa.
Proszę o pomoc
Pawel_W
dobra, utworzysz pola i co z tego?

brakuje ci jeszcze paru rzeczy, jak np. typu pola, indexów itp.
piotrooo89
Cytat
dobra, utworzysz pola i co z tego?

po pierwsze w taki sposób nie utworzy żadnej tabeli. nie można w stringu zrobić pętli.
mirkus
właśnie nie utworzyłem kolumn,

for($i=0;$i<5;$i++)
{
$tablica_zmiennych[$i] varchar(255),
}

a jakiś pomysł jak to zrobić, może przed CREATE dać fora?questionmark.gif
Pawel_W
Cytat(piotrooo89 @ 4.01.2010, 16:28:02 ) *
po pierwsze w taki sposób nie utworzy żadnej tabeli. nie można w stringu zrobić pętli.

sorry, myślałem że po prostu zapomniał " domknąć worriedsmiley.gif

@topic
ehh, bierzesz się za bazy danych, a widać podstaw php nie znasz winksmiley.jpg

taki kod:
  1. for($i=0;$i<5;$i++)
  2. {
  3. $tablica_zmiennych[$i] varchar(255),
  4. }

nic nie da, bo nic nie robi winksmiley.jpg

w pętli musisz dodać przypisanie do jakiejś zmiennej z zapytaniem do bazy
mirkus
a jak to można zrobićquestionmark.gifa nie dało by się tego fora wcisnąć przy poleceniu ALTER TABLE ... ADD COLUMN??
patryk9200
może zacznijmy od tego:
jak chcesz dodać string do zmiennej to robisz tak:
$zmienna='tabela1 ';
$zmienna .='tabela2;
i jak dasz echo $zmienna uzyskasz: "tabela1 tabela2"
wykorzystaj tę właściwość i zrób tak:
  1. $sql = "CREATE TABLE `dane` (
  2. `id` TINYINT( 3 ) UNSIGNED NOT NULL AUTO_INCREMENT,";
  3. for($i=0;$i<5;$i++)
  4. {
  5. $sql .= $tablica_zmiennych[$i].' varchar(255),';
  6. }
  7. $sql .='PRIMARY KEY ( `id` ))';
  8. $result = mysql_query($sql);


jeszcze jedno bo troche pogmatwałeś pokaż co byś w tej tablicy trzymał
mirkus
tabela na postawie której będą tworzył tabele w sql-u zamiera nazwy tj: marka_samochodu, typ_paliwa, pojemnosc, typ_nadowzia itp.

nazwa tej tabela jest jednowymiarowa
tab[0]="marka_samochodu";
tab[1]="pojemnosc";
.
.
.
.

a czy przy dodawaniu rowniez mozna zastosowac ta metode??
przy INSERT INTO??
Mephistofeles
Po co ci takie zapytanie? Nie lepiej będzie zapisać je na stałe, a nie bawić się w generowanie?
mirkus
a co proponujesz?? bo zbytnio nie rozumiem??
patryk9200
chodzi mu o to, że każdą tabelę mogłeś wpisywać ręcznie, ale też prowadzę serwis motoryzacyjny biggrin.gif i mam ich ponad 100 więc nie było by zbyt wygodne ręczne dodawanie jeśli mamy już w tablicy. A przy okazji wiesz już jak dodawać stringi ;-)
skowron-line
Cytat(Mephistofeles @ 4.01.2010, 20:17:10 ) *
Po co ci takie zapytanie? Nie lepiej będzie zapisać je na stałe, a nie bawić się w generowanie?



Cytat(mirkus @ 4.01.2010, 20:58:41 ) *
a co proponujesz?? bo zbytnio nie rozumiem??


Jak sobie zapiszesz to w czystym SQL do pliku to później bez odpalania jakichś phpów zaimportujesz sobie bazę z pliku tekstowego.
Moli
W przykładzie @patryk9200 zamień
  1. for($i=0;$i<5;$i++)

na
  1. foreach($tablica_zmiennych as $i)

albo
  1. $all = count($tablica_zmiennych);
  2. for($i=0;$i<$all;$i++)
skowron-line
@Moli

  1. echo 'CREATE TABLE tabela '. join( 'varchar( 255 ), ', $tablica_zmiennych ) .' PRIMARY KEY( id )';
mirkus
Dzieki @patryk9200 za informacje teraz musze jeszcze uzupelnic tabele i bedzie ok smile.gif
A z tym tez wesolo jest smile.gif ale moze dam rade smile.gif
Moli
@skowron-line - Wiem że można to inaczej zrobić, po prostu w przykładzie @patryk9200 było ograniczenie do 5, więc wolałem napisać aby uniknąć kolejnych pytań z serii czemu pobiera tylko 5 smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.