![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 14.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam
mam następujący problem .w poniższym kodzie chcę aby została utworzona tabela $_POST['tyt_ank'] z kolumnami $_POST['opis'][$a] z tym, że kolumn jest za każdym razem inna ilosć i mają one inne nazwy w tym przypadku po przejściu pętli wyrzuca mi ,ze tabela została utworzona i następnie że tabela taka już istnieje, wiem że wynik jest taki jak powinien być odnośnie tego zapytania, Kod for($a=1; $a<=$de; $a++){ $TA = "CREATE TABLE ".$_POST['tyt_ank']."(".$_POST['opis'][$a]." int(11) NOT NULL UNIQUE)"; $results = mysql_query($TA) or die (mysql_error()); print "Poprawnie utworzono tabelę"; } ja robię to poprzez: Kod for($a=1; $a<=$de; $a++){ $add="ALTER TABLE ".$_POST['tyt_ank']." ADD COLUMN (".$_POST['opis'][$a]." int(11) NOT NULL UNIQUE)"; $results = mysql_query($add) or die (mysql_error()); print "Poprawnie dodano kolumny z danymi"; } i jest OK ale czy można to zrobić w jednym zapytaniu?? i jak można od razu przypisać wstępne wartości w poszczególne kolumny jak robię tak: Kod for($a=1; $a<=$de; $a++){ $TA1 ="INSERT INTO ".$_POST['tyt_ank']." (".$_POST['opis'][$a].") VALUES (0)"; $results = mysql_query($TA1) or die (mysql_error()); print "Poprawnie dodano wartości z danymi"; po tym INSER-cie tworzy miwartości dla poszczególnych kolumn ale też wyrzuca mi : Kod Poprawnie dodano wartości z danymi Duplicate entry '0' for key 1 Prosze o jakieś rady Pozdrawiam Sampo511 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Co do tworzenia tabel, to wystarczy tutaj zwykłe łączenie stringów:
A co do wstępnych wartości, to nie mam pojęcia o co ci chodzi. Podejrzewam natomiast, że skopałeś strukturę bazy danych ;] Ten post edytował Kicok 21.08.2007, 13:21:18 -------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 14.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki Kicok za odpowiedź-jestem w trakie nauki
a odnośnie tych danych początkowych to chodzi o to, że jeśli stworzę w taki sposób tabelę to nie mam przypisanych żadnych wartościnie ma tam żadnego rekordu i po to mi te "dane początkowe", gdybyś mógł to pokazać dla INSERTA z mojego przykładu bo nie za bardzo rozumiem, dlaczego są te nawiasy "{" przy $_POST-ach i dlaczego Kasujemy ostatni przecinek i zamykamy nawias byłbym wdzięczny za info Ten post edytował Sampo511 21.08.2007, 18:21:22 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
1. Nawiasy klamrowe: Zmienne umieszczone w cudzysłowie zamieniane są na ich wartość. Można te zmienne zapisywać w klamrach, lub bez nich. Jest kilka różnic pomiędzy tymi dwoma zapisami, np dla tablicy wielowymiarowej:
ale w większości przypadków zapisy te będą działały identycznie. Ja się przyzwyczaiłem do zapisywania wszystkich zmiennych w klamrach - taki jest mój styl kodowania. 2. Ostatni przecinek: Przed pętlą zmienna $query będzie miała wartość: CREATE TABLE jakis_tytul ( Później przy każdym przejściu pętli dodawana będzie jedna kolumna i przecinek zaraz za nią: CREATE TABLE jakis_tytul (kolumna1 INT(11) NOT NULL UNIQUE, CREATE TABLE jakis_tytul (kolumna1 INT(11) NOT NULL UNIQUE, kolumna2 INT(11) NOT NULL UNIQUE, CREATE TABLE jakis_tytul (kolumna1 INT(11) NOT NULL UNIQUE, kolumna2 INT(11) NOT NULL UNIQUE, kolumna3 INT(11) NOT NULL UNIQUE, Przecinek oddziela kolumny w tym zapisie,więc na końcu go być nie powinno. Dlatego przy pomocy substr" title="Zobacz w manualu PHP" target="_manual kasujemy dwa ostatnie znaki (przecinek i spację) i wstawiamy na końcu nawias: CREATE TABLE jakis_tytul (kolumna1 INT(11) NOT NULL UNIQUE, kolumna2 INT(11) NOT NULL UNIQUE, kolumna3 INT(11) NOT NULL UNIQUE) 3. INSERT: Możesz go sobie "poskładać" w podobny sposób, albo podać nam szersze informacje do czego ci to jest potrzebne. Bo z tego co widzę, to chcesz mieć w bazie pełno tabel, których nazw nie znasz (bo są podawane w formularzu) i każda z tych tabel zawierać będzie tylko jeden wiersz danych -------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
--Sampo511-- |
![]()
Post
#5
|
Goście ![]() |
Dzięki Kicok za wytłumaczenie teraz to rozumiem wczoraj miałem jakąś zaćmę a jest to logiczne
Natomiast co do Inserta to jest mi to potrzebne do wprowadzenia do bazy "zer" bo przy wykonaniu formularza będę do danej bazy Updatował dopisywał cyfrę jeden dotyczy to ankiety w właściwe jej wyników które będą prezentowane po oddaniu głosu |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 14.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Jeszcze raz ja
co do INSERT-a to już sobie poradziłem jeszcze raz dzięki Pozdrawiam |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 11:01 |