Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nazwa zmiennej przechowywana w MySql
Forum PHP.pl > Forum > PHP
Wielebny.pl
W bazie przechowuję nazwę zmiennej sesyjnej np $_SESSION['TEST'] i w przypadku kiedy jak potrzebuje to wyciągam nazwę zmiennej z bazy danych lecz wykonując echo(dane_z_bazy('Pole_1')); echo zwraca mi $_SESSION['TEST'] nie zaś wartość owej zmiennej sesyjnej. Czy ktoś wie jak przekształcić to w wartość którą potrzebuje?

PS
dokładnie chodzi o to ,że w bazie będę miał wpis w bazie np Zmienna 1 ma wartość: $_SESSION['TEST'] lub $zmienna
Fifi209
Pokaż kod, albo napisz mniej chaotycznie. ;p Bo zrozumiałem tyle co nic.
zend
Z tego co zrozumiałem to mówisz o kolumnach, że każda kolumna w tabeli ma inną wartość, poszukaj w google "mysql kolumny". Jeśli chodzi Ci o co innego to możesz serializować tablice, wrzucić do bazy, potem ściągnąć i odserializować i zwrócić żądane pole
jajcarzd1
Cytat(Wielebny.pl @ 5.06.2010, 04:52:20 ) *
W bazie przechowuję nazwę zmiennej sesyjnej np $_SESSION['TEST'] i w przypadku kiedy jak potrzebuje to wyciągam nazwę zmiennej z bazy danych lecz wykonując echo(dane_z_bazy('Pole_1')); echo zwraca mi $_SESSION['TEST'] nie zaś wartość owej zmiennej sesyjnej. Czy ktoś wie jak przekształcić to w wartość którą potrzebuje?

PS
dokładnie chodzi o to ,że w bazie będę miał wpis w bazie np Zmienna 1 ma wartość: $_SESSION['TEST'] lub $zmienna


Hmm no bo wychodzi na to że to co wyciągasz z bazy jest stringiem i robisz echo dla stringa. Spróbuj może tak

  1.  
  2. $zmienna = dane_z_bazy('Pole');
  3.  
  4. echo $$zmienna;
  5.  


Zwróć uwagę na podwójnego dolara. Czyli robisz echo dla zmiennej która orzyjmuje nazwę taką jaka jest w $zmienna

Pozdro.
Wielebny.pl
Niestety echo z podwójnym dolarem nie działa.

W celu naświetlenia całej sprawy wrzucę kod tak jak prosiliście.

  1.  
  2. function zapytanie_do_bazy($zapytanie)
  3. {
  4.  
  5. include_once "./bazad/bazadconnect.php";
  6. $wynik_zapytania = mysql_query ($zapytanie);
  7. $_SESSION['zapytanie']=stripslashes($zapytanie);
  8. $_SESSION['wynik_zapytania']=$wynik_zapytania;
  9. if (!$wynik_zapytania)
  10. {
  11. //message_window('zapytanie failed');
  12. return false;
  13. }
  14. else
  15. {
  16. //message_window("zapytanie ok");
  17. return true;
  18. }
  19.  
  20. function pobierz_z_admin_panel($pole)
  21. {
  22. zapytanie_do_bazy("select * from ADMIN_PANEL where ID_ADMIN_PANEL = 1");
  23.  
  24. while ($rekord = mysql_fetch_assoc($_SESSION['wynik_zapytania']))
  25. {
  26. return $rekord['MAIL_REJESTRACJA'];
  27. }
  28.  
  29. usun_zmienna_sesyjna('zapytanie');
  30. usun_zmienna_sesyjna('wynik_zapytania');
  31. }
  32.  

W rekordzie 'MAIL_REJESTRACJA' jest wartość - Twój login to $zmienna a kod aktywacyjny: $aktywacja

jak zrobię sobie
  1. echo ('Twój login to "$zmienna" a kod aktywacyjny: "$aktywacja"');
to php zwraca mi prawidłowy ciąg znaków podmieniając dane odpowiednio.

Zaś sama funkcja
  1. pobierz_z_admin_panel('MAIL_AKTYWACJA');
zwraca ciąg znaków -Twój login to $zmienna a kod aktywacyjny: $aktywacja
Niestety jeśli w rekordzie bazy jest tylko np $zmienna zaś ja robię taki myk:

  1. $test=pobierz_z_admin_panel('MAIL_AKTYWACJA');
  2. echo $$test;


to zwrotem jest
  1. Notice: Undefined variable: $zmienna in /var/www/serwis/index.php on line 53
zend
  1. $test=pobierz_z_admin_panel('MAIL_AKTYWACJA');
  2. $zmienna = 'xxx';
  3. $aktywacja = 'yyy';
  4. echo $test; //albo $$test;
Wielebny.pl
Tak jak pisałem wcześniej
dla kodu:
  1. $a="kasia";
  2. $test=pobierz_z_admin_panel('MAIL_REJESTRACJA');
  3. echo $test;


wynik jest
tw�j kod aktywacyjny to '$a'

zaś dla kodu:
  1. $a="kasia";
  2. $test=pobierz_z_admin_panel('MAIL_REJESTRACJA');
  3. echo $$test;


wynik jest
Notice: Undefined variable: tw�j kod aktywacyjny to '$a' in /var/www/konik/index.php on line 52
jajcarzd1
Cytat(Wielebny.pl @ 5.06.2010, 22:46:54 ) *
Niestety jeśli w rekordzie bazy jest tylko np $zmienna zaś ja robię taki myk:

  1. $test=pobierz_z_admin_panel('MAIL_AKTYWACJA');
  2. echo $$test;


to zwrotem jest
  1. Notice: Undefined variable: $zmienna in /var/www/serwis/index.php on line 53


No bo w tym miejscu będziesz miał od jednego dolara akurat za dużo. Bo jeśli funkcja zwracałaby wartość 'zmienna' a nie '$zmienna' to byłoby ok, czyli bez dolara.
Wielebny.pl
Cytat(jajcarzd1 @ 6.06.2010, 01:16:05 ) *
No bo w tym miejscu będziesz miał od jednego dolara akurat za dużo. Bo jeśli funkcja zwracałaby wartość 'zmienna' a nie '$zmienna' to byłoby ok, czyli bez dolara.

Czytałeś mojego jednego posta powyżej gdzie opisałem 2 warunki czyli echo $test oraz echo $$test ?
jajcarzd1
Cytat(Wielebny.pl @ 6.06.2010, 00:38:08 ) *
Tak jak pisałem wcześniej
dla kodu:
  1. $a="kasia";
  2. $test=pobierz_z_admin_panel('MAIL_REJESTRACJA');
  3. echo $test;


wynik jest
tw�j kod aktywacyjny to '$a'

zaś dla kodu:
  1. $a="kasia";
  2. $test=pobierz_z_admin_panel('MAIL_REJESTRACJA');
  3. echo $$test;


wynik jest
Notice: Undefined variable: tw�j kod aktywacyjny to '$a' in /var/www/konik/index.php on line 52


Jeśli będziesz chciał aby cały string został przetworzony i podmienione nazwy zmiennych na ich wartości to spróbuj evalem. W manualu jest taki przykład który akurat pasuje do tego co Ty potrzebujesz

  1. $string = 'cup';
  2. $name = 'coffee';
  3. $str = 'This is a $string with my $name in it.';
  4. echo $str. "\n";
  5. eval("\$str = \"$str\";");
  6. echo $str. "\n";
Wielebny.pl
Wszystko teraz działa. Dziękuje za pomoc. klikam pomógł.


DOPIS

Niestety nie działa to na zmienne sesyjne $_SESSION['zmienna'] i trzeba w bazie wpisać $_SESSION[zmienna]
jajcarzd1
Cytat(Wielebny.pl @ 6.06.2010, 02:14:17 ) *
Wszystko teraz działa. Dziękuje za pomoc. klikam pomógł.


DOPIS

Niestety nie działa to na zmienne sesyjne $_SESSION['zmienna'] i trzeba w bazie wpisać $_SESSION[zmienna]



Heh no to próbujemy dalej innym sposobem smile.gif Ja właśnie wstawiłem nazwe zmiennej dodatkowo w nawiasy i wtedy działa z apostrofami. Przykład poniżej

  1.  
  2. $login["a"] = 'Mariano Italiano';
  3. $aktywacja["b"] = 'nr 125';
  4. $ciag = 'Twoj login to {$login["a"]} a kod aktywacyjny to {$aktywacja["b"]}';
  5.  
  6.  
  7. echo $ciag."\n";
  8. eval("\$ciag = \"$ciag\";");
  9. echo $ciag;
  10.  
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.