Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] zmienne
misiek172
post
Post #1





Grupa: Zarejestrowani
Postów: 656
Pomógł: 3
Dołączył: 26.10.2005
Skąd: Częstochowa

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


Witam.

Mam tablice

  1. <?php
  2. $serial = Array('nazwa', 'towar', 'ilosc', 'jm', 'termin', 'uwagi');
  3. ?>


jak stworzyć z tych nazw zmienne? Eval tu nie zabardzo mi pomaga.

Robię coś takiego:

  1. <?php
  2. $zap = "SELECT * FROM `prod` WHERE id='".$_GET['id']."'";
  3. $wyk = mysql_query($zap);
  4. $db = mysql_fetch_array($wyk);
  5.  
  6. $serial = Array('nazwa', 'towar', 'ilosc', 'jm', 'termin', 'uwagi');
  7.  
  8. foreach($serial as $x){
  9. $x = unserialize($db[$x]);
  10. }
  11. ?>


gdy dam eval($x) = unserialize($db[$x]); to wywala błąd.
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Robię coś takiego:
No i to jest ok. Evala tam nie trzeba. Co ci w tym nie dziala?
Daj print_r($db) i sprawdz czy oby masz tam takie kolumny co ci sie wydaje ze sa

edit: aaa, kumam co chciales zrobic. przeczytaj to:
http://pl.php.net/manual/pl/language.variables.variable.php
Go to the top of the page
+Quote Post
misiek172
post
Post #3





Grupa: Zarejestrowani
Postów: 656
Pomógł: 3
Dołączył: 26.10.2005
Skąd: Częstochowa

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


czyli tak? :

  1. <?php
  2. foreach($serial as $x){
  3. $$x = unserialize($db[$x]);
  4. }
  5. ?>


biorę potem echo $nazwa[0]; i nie ma błędów ale nie wyświetla...

Ten post edytował misiek172 19.02.2007, 14:52:53
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




jak juz mowilem rob rzeczy kontrolne
  1. <?php
  2. $zap = "SELECT * FROM `prod` WHERE id='".$_GET['id']."'";
  3. $wyk = mysql_query($zap);
  4. $db = mysql_fetch_array($wyk);
  5. print_r($db);
  6.  
  7. $serial = Array('nazwa', 'towar', 'ilosc', 'jm', 'termin', 'uwagi');
  8.  
  9. foreach($serial as $x){
  10. $zm = unserialize($db[$x]);
  11. print_r($zm);
  12. $$x = $zm;
  13. }
  14. ?>

i bedziesz wiedzial gdzie moze byc blad
Go to the top of the page
+Quote Post
misiek172
post
Post #5





Grupa: Zarejestrowani
Postów: 656
Pomógł: 3
Dołączył: 26.10.2005
Skąd: Częstochowa

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


wiem tylko ze ja to mam w generowaniu PDFa i tam nie można tak poprostu echo więc bede musial sobie to do innego pliku przenieść ;P
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




no to przenies a nie mi tu postem glowe zawracasz (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) odezwij sie jak bedziesz mial juz wyniki.
Pozatym ja ci tego print_r jako przyklad podalem. Rownie dobrze do pliku to se mozesz logowac i ci pdf nie ucierpi na tym
Go to the top of the page
+Quote Post
misiek172
post
Post #7





Grupa: Zarejestrowani
Postów: 656
Pomógł: 3
Dołączył: 26.10.2005
Skąd: Częstochowa

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


Gdy zrobiłem coś takiego:


  1. <?php
  2. mysql_connect('localhost:3306', 'root', '');
  3.  
  4. $zap = "SELECT * FROM `prod` WHERE id='5'";
  5. $wyk = mysql_query($zap);
  6. $db = mysql_fetch_array($wyk);
  7.  
  8. print_r($db);
  9.  
  10. $serial = Array('nazwa', 'towar', 'ilosc', 'jm', 'termin', 'uwagi');
  11.  
  12.  
  13. foreach($serial as $x){
  14. $y = unserialize($db[$x]);
  15. }
  16. echo "<br><br><br>";
  17. print_r($y);
  18. ?>


to ładnie wywaliło mi $db, lecz $y juz nie, wydaje sie że wogóle na to: $y = unserialize($db[$x]); niereaguje :|
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




$y moj ty kochany to ty w petli miales wyswietlac. przeciez poza petla print_r wyswietli ci tylko ostatnie przypisanie.
A skoro nic ci nei wyswietlil, to albo $db['uwagi'] jest puste, albo jest nie zserializowane
Go to the top of the page
+Quote Post
misiek172
post
Post #9





Grupa: Zarejestrowani
Postów: 656
Pomógł: 3
Dołączył: 26.10.2005
Skąd: Częstochowa

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


ano racja (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) ups szkolny błąd ;P

//edit

blee i tak coś nie tak ;/

  1. <?php
  2. for($i=0;$i<count($y);$i++){
  3. echo "<br><br><br>";
  4. print_r($y[$i]);
  5. }
  6. ?>


i tak nie chula a wartość są uzupełnione w całej tabeli mysql, założe się że chodzi tu o jakiś prosty błąd

Ten post edytował misiek172 19.02.2007, 15:16:40
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




zalamka.... (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
  1. <?php
  2. foreach($serial as $x){
  3. $y = unserialize($db[$x]);
  4. print_r($y);
  5. }
  6. ?>


a najlepiej:
  1. <?php
  2. foreach($serial as $x){
  3. $y = unserialize($db[$x]);
  4. if ($y===false)
  5. echo 'zle dane'; 
  6. else
  7. print_r($y);
  8. }
  9. ?>
Go to the top of the page
+Quote Post
misiek172
post
Post #11





Grupa: Zarejestrowani
Postów: 656
Pomógł: 3
Dołączył: 26.10.2005
Skąd: Częstochowa

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


ojej jedno i to samo tylko sobie utrudniłem ;P

ale i tak pusto, nie chodzi (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

edit:
hmmm wszędzie mi złe dane wyświetliło... (IMG:http://forum.php.pl/style_emoticons/default/happy.gif)

Ten post edytował misiek172 19.02.2007, 15:23:08
Go to the top of the page
+Quote Post
nospor
post
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
ojej jedno i to samo tylko sobie utrudniłem ;
(IMG:http://forum.php.pl/style_emoticons/default/blinksmiley.gif) Nie sobie utrudniles, a do zlych danych sie dobierales a to duuuza roznica.

Cytat
hmmm wszędzie mi złe dane wyświetliło...
No to masz zle dane, ktore do unserialize sie nie nadaja (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
A jak serializowales to? i ze tak zapytam: print_r($db) oby napewno poprawna tablice ci wyswietlal? Mozesz ja pokazac?
Go to the top of the page
+Quote Post
misiek172
post
Post #13





Grupa: Zarejestrowani
Postów: 656
Pomógł: 3
Dołączył: 26.10.2005
Skąd: Częstochowa

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


$y = unserialize($db[$x]); to nie chodzi sprawdzalem na sucho a tablica napewno sie git a wygląda tak:

  1. <?php
  2. Array ( [0] => 6 [id] => 6 [1] => a:21:{i:0;s:10:"ashdbasdhb";i:1;s:10:"zhbfdajsdb";i:2;s:6:"asdasd";i:3;s:0:"";i:4;s:0:"";i:5;s:0:"";i:6;s:0:"";i:7;s:0:"";i:8;s:0:"";i:9;s:0:"";i:10;s:0:"";i:11;s:0:"";i:12;s:0:"";i:13;s:0:"";i:14;s:0:"";i:15;s:0:"";i:16;s:0:"";i:17;s:0:"";i:18;s:0:"";i:[nazwa] => a:21:{i:0;s:10:"ashdbasdhb";i:1;s:10:"zhbfdajsdb";i:2;s:6:"asdasd";i:3;s:0:"";i:4;s:0:"";i:5;s:0:"";i:6;s:0:"";i:7;s:0:"";i:8;s:0:"";i:9;s:0:"";i:10;s:0:"";i:11;s:0:"";i:12;s:0:"";i:13;s:0:"";i:14;s:0:"";i:15;s:0:"";i:16;s:0:"";i:17;s:0:"";i:18;s:0:"";i:[2] => a:21:{i:0;s:1:"j";i:1;s:10:"asbdjsahbd";i:2;s:3:"s [towar] => a:21:{i:0;s:1:"j";i:1;s:10:"asbdjsahbd";i:2;s:3:"[3] => 0 [ilosc] => 0 [4] => a:21:{i:0; [jm] => a:21:{i:0; [5] => a:21:{i:0;s:10:"ashbdjasbd";i:1;s:9:"ashdbasjd";i: [termin] => a:21:{i:0;s:10:"ashbdjasbd";i:1;s:9:"ashdbasjd";i: [6] => a:21:{i:0;s:8:"dasbhdbj";i:1;s:4:"sadf";i:2;s:4:"asdf";i:3;s:0:"";i:4;s:0:"";i:5;s:0:"";i:6;s:0:"";i:7;s:0:"";i:8;s:0:"";i:9;s:0:"";i:10;s:0:"";i:11;s:0:"";i:12;s:0:"";i:13;s:0:"";i:14;s:0:"";i:15;s:0:"";i:16;s:0:"";i:17;s:0:"";i:18;s:0:"";i:19;s:4:"asdf" [uwagi] => a:21:{i:0;s:8:"dasbhdbj";i:1;s:4:"sadf";i:2;s:4:"asdf";i:3;s:0:"";i:4;s:0:"";i:5;s:0:"";i:6;s:0:"";i:7;s:0:"";i:8;s:0:"";i:9;s:0:"";i:10;s:0:"";i:11;s:0:"";i:12;s:0:"";i:13;s:0:"";i:14;s:0:"";i:15;s:0:"";i:16;s:0:"";i:17;s:0:"";i:18;s:0:"";i:19;s:4:"asdf" [7] => asdf [nr] => asdf [8] => 1169161200 [dd] => 1169161200 [9] => Andrzej Antosiewicz [osoba] => Andrzej Antosiewicz [10] => asdf [adres] => asdf )
  3. ?>


dodaje tym:

  1. <?php
  2. $zap = "INSERT INTO `prod` SET nazwa='".serialize($nazwa)."', towar='".serialize($towar)."', ilosc='".serialize($ilosc)."', jm='".serialize($jm)."', termin='".serialize($termin)."', uwagi='".serialize($uwagi)."', nr='".$nr."', dd='".$data."', osoba='".$osoba."', adres='".$adres."'";
  3. $wyk = mysql_query($zap);
  4. ?>


ogólem to dodawanie jest barzdziej rozbudowane ale nie potrzebne były tamte rzeczy (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) w każdym wypadku dobrze się dodaje (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował misiek172 19.02.2007, 15:38:34
Go to the top of the page
+Quote Post
nospor
post
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ja przy probie unserialize tych twoich danych dostaje same bledy, tak jakby te dane byly niekompletne. Czy dlugosc pola, jaka zarezerwowales na daną wartosc w bazie jest wystarczajaca? Moze on ci poprostu w bazie ucina, bo zadeklarowales ze dane pole moze miec np. max. 50 znakow,a ma 60
Go to the top of the page
+Quote Post
misiek172
post
Post #15





Grupa: Zarejestrowani
Postów: 656
Pomógł: 3
Dołączył: 26.10.2005
Skąd: Częstochowa

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


jaaaaaaaaaaaaa no tak! zapomniałem że dałem varchar, zawsze daje TEXT jak uzwam serialize neiwiem co mnie podkusiło do varchar

OMG debil ze mnie, z chęcią zapadłbym się teraz pod ziemie...
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 14:54