Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL]Przypisanie kolumnom zmiennych
stefan9209
post 24.12.2015, 16:26:06
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 24.12.2015

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


Witam,

Mam taki kod do pobierania nazw kolumn z tabeli:

  1. $sql = mysql_query( $nazwa_polecenia_sql );
  2.  
  3. //sprawdzam czy jest wynik
  4. if( mysql_num_rows($sql) > 0 ){
  5.  
  6. //pobieram kolumny i przypisuje do nich zmienne
  7. while( $tabela = mysql_fetch_array($sql) ){
  8.  
  9. //sprawdzam ile jest kolumn
  10. $liczbaKolumn = mysql_num_fields($sql);
  11.  
  12. for ($i=0; $i < $liczbaKolumn; $i++) {
  13.  
  14.  
  15. }
  16.  
  17. }
  18. }


Wszystko działa. Wypisuje po kolei jakie mam kolumny w tabeli. Mogę się do nich odwoływać poprzez $tabela[nazwa_kolumny].

Chciałbym się odwoływać do nich za pomocą $nazwa_kolumny. Chcę po prostu przypisać zmienne danym kolumnom. Jak to można zrobić?

Pozdrawiam.
Go to the top of the page
+Quote Post
Fred1485
post 24.12.2015, 16:38:50
Post #2





Grupa: Zarejestrowani
Postów: 361
Pomógł: 22
Dołączył: 10.02.2015

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


  1. <?php
  2.  
  3. $a = array('var1', 'var2', 'var3');
  4.  
  5. foreach ($a as $value) {
  6. ${$value} = rand(1,5);
  7. }
  8.  
  9. echo $var1 . '<br>';
  10. echo $var2 . '<br>';
  11. echo $var3;
  12.  
  13.  
  14. ?>


Taki prosty przykładzik, pewnie cię naprowadzi wink.gif


--------------------
  1. echo 'I was trying';
  2. die ();
Go to the top of the page
+Quote Post
stefan9209
post 24.12.2015, 16:57:30
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 24.12.2015

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


Super, działa, dzięki!

Mam jeszcze pytanie. Chciałem skrócić kod w różnych plikach i ten poniższy kod dałem w funkcji. Potem w innych plikach, gdzie będę chciał pobrać nazwy to zamiast dublować kodu dam
  1. function pobierzKolumny ( $nazwa_polecenia_sql );


Ale.. te zmienne typu $nazwa_kolumny dają wartości, ale tylko, jeśli wywołam je bezpośrednio w function(). Jeśli wywołam je właśnie w innym pliku (gdzie załączam funkcję), to nie działa.. Zmienne nie są przekazywane..

  1. function pobierzKolumny( $nazwa_polecenia_sql ){
  2. $sql = mysql_query( $nazwa_polecenia_sql );
  3.  
  4. //sprawdzam czy jest wynik
  5. if( mysql_num_rows($sql) > 0 ){
  6.  
  7. //pobieram kolumny i przypisuje do nich zmienne
  8. while( $tabela = mysql_fetch_array($sql) ){
  9.  
  10. //sprawdzam ile jest kolumn
  11. $liczbaKolumn = mysql_num_fields($sql);
  12.  
  13. for ($i=0; $i < $liczbaKolumn; $i++) {
  14. $nazwa_pola = mysql_field_name($sql, $i);
  15. ${$nazwa_pola} = $tabela[$nazwa_pola];
  16. }
  17.  
  18.  
  19. }
  20. }
  21. }
Go to the top of the page
+Quote Post
Fred1485
post 24.12.2015, 17:28:32
Post #4





Grupa: Zarejestrowani
Postów: 361
Pomógł: 22
Dołączył: 10.02.2015

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


Bo zmienne sobie deklarujesz tylko lokalnie w funkcji. Musiałbyś zwrócić je pewnie w postaci tablicy ale to zatacza koło na nowo smile.gif

Może ktoś bardziej doświadczony się odezwie.

Ten post edytował Fred1485 24.12.2015, 17:29:24


--------------------
  1. echo 'I was trying';
  2. die ();
Go to the top of the page
+Quote Post
stefan9209
post 24.12.2015, 18:14:39
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 24.12.2015

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


Ok, rozumiem smile.gif
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: 12.06.2025 - 21:14