Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL] Dodanie kolumny z poziomu PHP
Kshyhoo
post 19.09.2016, 17:35:04
Post #1





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Jak mam dodać z poziomu PHP nową kolumnę o nazwie nazwaX, gdzie X to kolejny numer istniejących kolumn?
  1. ALTER TABLE tabela ADD kolumnaX TINYINT(3) NOT NULL


--------------------
Go to the top of the page
+Quote Post
KsaR
post 19.09.2016, 17:45:52
Post #2





Grupa: Zarejestrowani
Postów: 520
Pomógł: 102
Dołączył: 15.07.2014
Skąd: NULL

Ostrzeżenie: (0%)
-----


  1. SELECT COUNT(*)
  2. FROM `information_schema`.`columns`
  3. WHERE `table_name` = 'tabela'

Tym pobierzesz ilość kolumn.
W zapytaniu tylko zmienisz.


--------------------
Go to the top of the page
+Quote Post
kapslokk
post 19.09.2016, 17:49:19
Post #3





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Z ciekawości - po co Ci tyle kolumn?
Go to the top of the page
+Quote Post
Kshyhoo
post 19.09.2016, 17:52:07
Post #4





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Trzymam tak statystyki. Inaczej musiałbym trzymać w jednym polu i trudniej mi uaktualniać.


--------------------
Go to the top of the page
+Quote Post
kapslokk
post 19.09.2016, 18:00:38
Post #5





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Czasem trudniej == lepiej tongue.gif
Go to the top of the page
+Quote Post
Kshyhoo
post 19.09.2016, 18:13:52
Post #6





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Tyle, że trzeba się znać. Ja jestem amatorem, dłubię na swoje potrzeby i czasem trudno mi coś skręcić. Otóż, użytkownicy i ich statystyki ich działań - jak trzymać?


--------------------
Go to the top of the page
+Quote Post
KsaR
post 19.09.2016, 18:17:06
Post #7





Grupa: Zarejestrowani
Postów: 520
Pomógł: 102
Dołączył: 15.07.2014
Skąd: NULL

Ostrzeżenie: (0%)
-----


Cytat(Kshyhoo @ 19.09.2016, 19:13:52 ) *
(...)użytkownicy i ich statystyki ich działań - jak trzymać?

Przedstaw jak to obecnie działa, jakie są te statystyki ?
I po co w sumie te dodatkowe kolumny ? - pokaż jak kombinujesz z tym to pewnie da się coś poradzić.


--------------------
Go to the top of the page
+Quote Post
Kshyhoo
post 19.09.2016, 18:22:46
Post #8





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




users: id, name
przygody: id, name
staty: id, p1, p2, p3, ...
statystyki (liczby dodatnie i ujemne), pierwsza kolumna id usera, ile przygód, tyle kolumn


--------------------
Go to the top of the page
+Quote Post
KsaR
post 19.09.2016, 18:30:16
Post #9





Grupa: Zarejestrowani
Postów: 520
Pomógł: 102
Dołączył: 15.07.2014
Skąd: NULL

Ostrzeżenie: (0%)
-----


Pokaż jeszcze przykładowe zapytania.

-- Rozumiem że tabela przygody została zastąpiona przez to z początku tematu ?


--------------------
Go to the top of the page
+Quote Post
Kshyhoo
post 19.09.2016, 18:32:08
Post #10





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Ta, to o nią mi chodziło. O jakie zapytania pytasz? Te ze statystykami?


--------------------
Go to the top of the page
+Quote Post
KsaR
post 19.09.2016, 18:33:11
Post #11





Grupa: Zarejestrowani
Postów: 520
Pomógł: 102
Dołączył: 15.07.2014
Skąd: NULL

Ostrzeżenie: (0%)
-----


Przykładowe zapytania jak to obecnie funkcjonuje, żeby jakoś lepiej obmyślić


--------------------
Go to the top of the page
+Quote Post
Kshyhoo
post 19.09.2016, 19:10:10
Post #12





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Proste, bo zwykłymi selektami pobieram z tabel i łączę w jedną tablicę, by uniknąć skomplikowanych zapytań.

Cytat(KsaR @ 19.09.2016, 18:45:52 ) *
  1. SELECT COUNT(*)
  2. FROM `information_schema`.`columns`
  3. WHERE `table_name` = 'tabela'

Pod phpMyAdmin:
  1. 5

W php:
  1. mysqli_result Object ( [current_field] => 0 [field_count] => 1 [lengths] => [num_rows] => 1 [type] => 0 )


--------------------
Go to the top of the page
+Quote Post
kapslokk
post 19.09.2016, 19:35:46
Post #13





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Result trzeba jeszcze fetchować.
Go to the top of the page
+Quote Post
Kshyhoo
post 22.09.2016, 20:44:20
Post #14





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Czyli tak?
  1. $sql = "SELECT COUNT(*) FROM `information_schema`.`columns` AS nradv WHERE `table_name`='stat'";
  2. $result = mysqli_query($con, $sql);
  3. $row = mysqli_fetch_array($result, MYSQLI_NUM);
  4. $na = 'adv'.$row[0];
  5. mysqli_query($con, "ALTER TABLE stat ADD ".$na." TINYINT(3) NOT NULL");


A jak inaczej mógłbym trzymać statystyki? Gdy dochodzi user i przygoda... sprawa się komplikuje.


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 20.04.2024 - 03:09