Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php/cookies] Problem z "wyłuskaniem" z tablicy
oomaster
post
Post #1





Grupa: Zarejestrowani
Postów: 305
Pomógł: 3
Dołączył: 4.08.2006
Skąd: GDA

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


Witam,

Mam problem z wyciągnięciem z tablicy każdego numera i za pomocą niego rekordu z bazy. Może wytłumacze bardziej obrazkowo (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) .

W cookies mam "koszyk" a zawartość jego 12|32|456|667|90|5|2

teraz chcę aby skrypt rozdzielił każdy numer i zastosowałem tablice.

No i teraz największy problem jak teraz wyłuskać po koleji każdy numer aby z bazy dane rekordy wyświetlić?

  1. <?php
  2.  
  3. //pobierasz do tymaczasowej zmiennej zawarość ciastka "koszyk"
  4. $_cookie=$_COOKIE['koszyk'];
  5.  
  6. //dopisujesz do zmiennej wartość: |abc|def|ghi
  7. $_cookie.='|abc|def|ghi';
  8.  
  9. $tekst = explode("|", trim($_cookie));
  10.  
  11. print_r ($tekst);
  12.  
  13. $tekst = array_flip(array_flip($tekst));
  14. ksort($tekst);
  15.  
  16. $kurde = implode("|", $tekst);
  17.  
  18. echo $kurde;
  19.  
  20. //wysyłasz ciastko "koszyk" o nowej treści (stare ciastko zostanie nadpisane)
  21. setcookie('koszyk', $kurde, time()+123456);
  22.  
  23. ?>


A to co widze (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

Kod
Array ( [0] => [1] => 34 [2] => 12 [3] => 786 [4] => 56 [5] => 44 [6] => 12 [7] => abc [8] => def [9] => ghi [10] => abc [11] => def [12] => ghi [13] => abc [14] => def [15] => ghi [16] => abc [17] => def [18] => ghi [19] => abc [20] => def [21] => ghi ) |34|786|56|44|12|abc|def|ghi
Warning: Cannot modify header information - headers already sent by (output started at /home/balor/domains/balor.xvo.pl/public_html/test/index.php:11) in /home/balor/domains/balor.xvo.pl/public_html/test/index.php on line 21


Ten post edytował oomaster 31.07.2007, 09:28:26
Go to the top of the page
+Quote Post
Statozor
post
Post #2





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 23.09.2006

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


setcookie() musi zostac zastosowanie przed wyslaniem jakichkolwiek informacji do przeglądarki. Zbuforuj wyjście i będzie działać
Go to the top of the page
+Quote Post
oomaster
post
Post #3





Grupa: Zarejestrowani
Postów: 305
Pomógł: 3
Dołączył: 4.08.2006
Skąd: GDA

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


Czyli jak ja mam to zrobić możesz przykład dać ?
Go to the top of the page
+Quote Post
mike
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


No pomyśl choć troszkę.
Masz dać setcookie() zanim wyślesz jakiekolwied dane do pzreglądarki, czyli zanim cokolwiek wyświetlisz, czyli zanim skorzystasz z echo()
Go to the top of the page
+Quote Post
oomaster
post
Post #5





Grupa: Zarejestrowani
Postów: 305
Pomógł: 3
Dołączył: 4.08.2006
Skąd: GDA

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


  1. <?php
  2.  
  3. //pobierasz do tymaczasowej zmiennej zawarość ciastka "koszyk"
  4. $_cookie=$_COOKIE['koszyk'];
  5.  
  6. //dopisujesz do zmiennej wartość: |abc|def|ghi
  7. $_cookie.='|abc|def|ghi';
  8.  
  9. $tekst = explode("|", trim($_cookie));
  10.  
  11. print_r ($tekst);
  12.  
  13. $tekst = array_flip(array_flip($tekst));
  14. ksort($tekst);
  15.  
  16. $kurde = implode("|", $tekst);
  17.  
  18. //wysyłasz ciastko "koszyk" o nowej treści (stare ciastko zostanie nadpisane)
  19. setcookie('koszyk', $kurde, time()+123456);
  20.  
  21. echo $kurde;
  22.  
  23. ?>


Nie działa (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Znowu ten błąd a nie moge wcześniej !
Go to the top of the page
+Quote Post
mike
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


print_r ($tekst); wywala output do przeglądarki. Nie dziw się więc, że znów jest ten błęd.
NIC nie może pójść do przeglądarki przed użyciem setcookie()
Go to the top of the page
+Quote Post
oomaster
post
Post #7





Grupa: Zarejestrowani
Postów: 305
Pomógł: 3
Dołączył: 4.08.2006
Skąd: GDA

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


EDIT:// Działa mistrzu dzięki wielkie

  1. <?php
  2.  
  3. //pobierasz do tymaczasowej zmiennej zawarość ciastka "koszyk"
  4. $_cookie=$_COOKIE['koszyk'];
  5.  
  6. //dopisujesz do zmiennej wartość: |abc|def|ghi
  7. $_cookie.='|abc|def|ghi';
  8.  
  9. $tekst = explode("|", trim($_cookie));
  10.  
  11. $kurde = implode("|", $tekst);
  12.  
  13. $tekst = array_flip(array_flip($tekst));
  14. ksort($tekst);
  15.  
  16. setcookie('koszyk', $kurde, time()+123456);
  17.  
  18. print_r ($tekst);
  19. echo "<br/><br/>";
  20. echo $kurde;
  21.  
  22. ?>


Ale teraz mi nie działa funkcja array_flip(array_flip($tekst)); która ma usuwać powtórki w tablicy i dodatkow tablica mi sie skróciła (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

Cytat
Array ( [0] => [1] => 34 [3] => 786 [4] => 56 [5] => 44 [6] => 12 [34] => abc [35] => def [36] => ghi )

|34|12|786|56|44|12|abc|def|ghi|abc|def|ghi|abc|def|ghi|abc|def|ghi|abc|def|ghi|
abc|def|ghi|abc|def|ghi|abc|def|ghi|abc|def|ghi|abc|def|ghi


Sorry ,że dwa posty na raz ale działa (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) dzięki (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

Ten post edytował oomaster 31.07.2007, 11:10:05
Go to the top of the page
+Quote Post
mike
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Działa, działa.
Pomysl jaki to ma sens:
  1. <?php
  2.  
  3. // ...
  4. $tekst = array_flip(array_flip($tekst));
  5. // ...
  6.  
  7. ?>
Odwracasz tablicę, a potem odwracasz ją raz jeszcze tak jak była (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
oomaster
post
Post #9





Grupa: Zarejestrowani
Postów: 305
Pomógł: 3
Dołączył: 4.08.2006
Skąd: GDA

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


A przepraszam nie wiesz czasami jak teraz zrobić aby teraz według tych numerków pobrać z bazy wybrane produkty (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?

Rozumiesz są |34|786|56|44|12|

i chce z bazy produkt pobrać id każdego z produktów który jest wyżej czyli 34|786|56|44|12|

Przepraszam,że 2 posty ale czy ktoś nie wie bo już mam siły kombinuje, kombinuje i nic nie wychodzi...

Ten post edytował oomaster 1.08.2007, 07:41:41
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




Cytat
z produktów który jest wyżej
Ale oco chodzi?

Ja ci podam jak pobrac rekord ktory ma taki sam ID:
  1. <?php
  2. $tab = array(4,7,2);
  3. $sql = 'select * from table where ID in ('.implode(',',$tab).')';
  4. ?>

Oto chodzi?
Go to the top of the page
+Quote Post
oomaster
post
Post #11





Grupa: Zarejestrowani
Postów: 305
Pomógł: 3
Dołączył: 4.08.2006
Skąd: GDA

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


Chodzi o to ,żebym z tablicy wyciąghną dane i je przetworzył aby wyswietliły się ekordy odpowiednie np. w tablicy jest 23|223|67|678| i che aby mysql zwróciło mi rekordy które mają id: 23|223|67|678

EDIT:Próbowałem na inne sposoby nawet bez $tekst = explode("|", trim($_cookie)); i tez kurde ten błąd

Coś nie działa (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
  1. <?php
  2.  
  3. //pobierasz do tymaczasowej zmiennej zawarość ciastka "koszyk"
  4. $_cookie=$_COOKIE['koszyk'];
  5.  
  6. $tekst = explode("|", trim($_cookie));
  7.  
  8. $QuerResult=mysql_query('select * from bal_kat where ID in ('.implode(',',$tekst).')');
  9.  
  10. while($wyk=mysql_fetch_array($QuerResult)){
  11.  
  12. echo "to moze jest ".$wyk[nazwa]." to! ";
  13. }
  14. ?>


Cytat
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/balor/domains/balor.xvo.pl/public_html/test/add.php on line 11


Ten post edytował oomaster 1.08.2007, 08:47:41
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




oj, czy zawsze trzeba te podstawy podawac? Sprawdz jak wyglada zapytanie, jaki jest blad:
  1. <?php
  2. $zap = 'select * from bal_kat where ID in ('.implode(',',$tekst).')';
  3. echo $zap;
  4. $QuerResult=mysql_query($zap) or die(mysql_error());
  5. ?>
Go to the top of the page
+Quote Post
oomaster
post
Post #13





Grupa: Zarejestrowani
Postów: 305
Pomógł: 3
Dołączył: 4.08.2006
Skąd: GDA

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


NIe wiem nie wiem (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

  1. <?
  2. $zap = 'select * from bal_kat where ID in '.implode('|',$tekst').' LIMIT 10;
  3. echo $zap;
  4. $QuerResult=mysql_query($zap) or die(mysql_error());
  5.  
  6. echo "to moze jest ".$QuerResult[nazwa]." to! ";
  7. ?>


Cytat
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/bal/domains/bal.xvo.pl/public_html/test/add.php on line 8
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




o zgrozo... ale kopiuj chociaz poprawnie....
zaraz zamkne i otworze az wkoncu sie wysilisz a nie z byle popierdulka na forum lecisz, szczegolnie ze blad leci bo kopiowac nie umiesz
Go to the top of the page
+Quote Post
wojski696969
post
Post #15





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 31.07.2007

Ostrzeżenie: (10%)
X----


Jeżeli dostajesz błąd że headers already sent...

na początku skryptu, na samej górze:

  1. <?
  2. ?>


a na samym końcu:

  1. <?
  2. ?>


Wtedy morzesz wysyłać Cookie w dowolnym momencie a ne tylko na początku.. to samo tyczy sie wysyłania headerów...

Pozdrawiam...

Ten post edytował wojski696969 1.08.2007, 09:33:23
Go to the top of the page
+Quote Post
oomaster
post
Post #16





Grupa: Zarejestrowani
Postów: 305
Pomógł: 3
Dołączył: 4.08.2006
Skąd: GDA

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


Dzięki panowie a w szczególności nospor'owi za cierpliwość i poświęcenie czasu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
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 - 20:31