Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][SQL] Jak utworzyć tabelę o nazwie zmiennej?
Forum PHP.pl > Forum > Przedszkole
kopek
  1. <?php
  2. include ("funkcje.php");    
  3. polacz();
  4. $data=date("Y-m-d");
  5. echo $data;
  6.  
  7. $tabela = 'CREATE TABLE $data (login VARCHAR(25), data_log DATETIME, data_wylog DATETIME )';
  8. $wynik = mysql_query($tabela);
  9.  
  10. if($wynik){
  11.  
  12. echo '
  13. Tabela utworzona pomyślnie.';
  14.  
  15. }
  16. else{
  17.  
  18. echo '
  19. Tabela nie mogła zostać utworzona.';
  20.  
  21. }
  22. rozlacz();
  23. ?>


Tworzy się tabela która nazywa się $data a ja chcę aby nazwa wyglądała na przykład: 2008-11-27.
erix
Pytanie z pracy domowej: Jaka jest różnica między pojedynczym a podwójnym cudzysłowem? snitch.gif
kopek
Apostrof informuje, że nie pojawią się w nim żadne zmienne, które trzeba by było dodatkowo przetwarzać. Natomiast cudzysłów daje nam sygnał, że takie zmienne mogą się pojawić.
Niestety zamiana apostrofu na cudzysłów nie pomogła.
bobo168
  1. <?php
  2. include ("funkcje.php");    
  3. polacz();
  4. $data=date("Y-m-d");
  5. echo $data;
  6.  
  7. $tabela = 'CREATE TABLE '.$data.' (login VARCHAR(25), data_log DATETIME, data_wylog DATETIME )';
  8. $wynik = mysql_query($tabela);
  9.  
  10. if($wynik){
  11.  
  12. Tabela utworzona pomyślnie.';
  13.  
  14. }
  15. else{
  16.  
  17. Tabela nie mogła zostać utworzona.';
  18.  
  19. }
  20. rozlacz();
  21. ?>

Powinno działac.
kopek
Niestety nie zadziałało. Pojawia się komunikat, że tabela nie mogła zostać utworzona.
bobo168
No to wpisz sobie:
  1. <?php
  2. echo $tabela;
  3. ?>

i zobacz jak wygląda zapytanie...
kopek
Taki wywala błąd na dla zmiennej $tablica:
Warning: mysql_error(): supplied argument is not a valid MySQL-Link resource in ... on line 8

Tak wygląda efekt echo $tablica:
CREATE TABLE 2008-11-27 (login VARCHAR(25), data_log DATETIME, data_wylog DATETIME )

Więc wygląda tak jak powinno ale jednak jest jakiś błąd, na którego nie wiem co mam poradzić.
bobo168
Heh powód jest bardzo prosty nazwa tabeli nie może zawierac znaku '-' smile.gif
kopek
Usunąłem znak myślnika i data wygląda teraz w następujący sposób: 20081127 (taki zbitek cyferek). Niestety nadal jest ten sam błąd, więc nie sądzę żeby myślnik był problemem.
erix
A może by tak nazwę tabeli w cudzysłów wrzucić? ;]
kopek
  1. <?php
  2. $tabela = 'CREATE TABLE "$data" (login VARCHAR(25), data_log DATETIME, data_wylog DATETIME )';
  3. ?>


Wrzuciłem w cudzysłów ale niestety nie pomogło. Nadal nie tworzy tabeli. Chyba, że źle zrozumiałem podpowiedź z cudzysłowem...
erix
Masz teraz niedozwolony znak. winksmiley.jpg

Mi zadziałało zapytanie:

  1. CREATE TABLE `20080124` (login VARCHAR(25), data_log DATETIME, data_wylog DATETIME )
kopek
Ciężka sprawa ponieważ mi to zapytanie nie działa. sadsmiley02.gif
erix
A jak je wywołujesz? Bo u mnie działa bez problemów.
bobo168
  1. <?php
  2. include ("funkcje.php");    
  3. polacz();
  4. $data=date("Y-m-d");
  5. echo $data;
  6.  
  7. $tabela = 'CREATE TABLE `'.$data.'` (login VARCHAR(25), data_log DATETIME, data_wylog DATETIME )';
  8. $wynik = mysql_query($tabela);
  9.  
  10. if($wynik){
  11.  
  12. Tabela utworzona pomyślnie.';
  13.  
  14. }
  15. else{
  16.  
  17. Tabela nie mogła zostać utworzona.';
  18.  
  19. }
  20. rozlacz();
  21. ?>

Kal dla mnie musi działac, ale nie chce mi sie sprawdzac smile.gif
kopek
Już wiem skąd nieporozumienie... Faktycznie kod bobo168 działa... Pomyliłem znaczek ' z ` i stąd całe zamieszanie...
Dziękuje za wyprostowanie całej sytuacji.
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.