Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MSSQL][PHP]przesyłanie $_GETem kilku wartosci przy porcjowaniu wyników
tom66
post 3.06.2011, 10:48:01
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 28.03.2011

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


witam,

mam taki oto problem.
Jest sobie pole :
  1. <select name="sp[]" style="{width:9em}" multiple='multiple'>
  2. <?
  3. mysql_connect()
  4. i inne "pierdy" do polączenia...
  5. $result = mysql_query("SELECT pw.status
  6. FROM status pw order by pw.status");
  7. while ($row = mysql_fetch_array($result,MYSQL_BOTH) ) {?>
  8. <option value="<?= $row['status'] ?>"><?= $row['status'] ?></option>
  9. <?}?>

po wybraniu kilku wartosci wysylam je $_GETem na inna stronę....

gdzie odbieram dane:
  1. if(isset($_GET['sp']))
  2. {
  3. $a = $_GET['sp'];
  4. $N = count($a);
  5. $array = array();
  6. for($i=0; $i < $N; $i++)
  7. {
  8. $array[$i]=($a[$i]);}
  9.  
  10. $sp=implode("','",$array);
  11. $sp1="status in ('".$sp."')";
  12.  
  13. }
  14. else {
  15. $sp1=1;
  16.  
  17. }


dodając $sp1 do zapytania sql-owego ładnie mi wyświetla wyniki które chciałem,
ale mam porcjowanie wyników na stronie po 50,

teraz gdy będę chciał przejsc na drugą stronę z kolejna porcją wyników
  1. echo "<a href='ss.php?strona=".($i)."&sp=".$sp."' >".($i+1)." </a>


mam błąd. Zauważyłem ze GET wysłając wartosci pola select przy pierwzsym wyslaniu wynikow wyszkuania mam w linku
ss.php?sp=1&sp=2&sp=3

natomiast przechodząc na 2 stronę mam ss.php?strona=2&sp=1

problem jest taki.. jak zrobic aby w kolejnych wynikach stron byly przekazywane wszsyktie wartosci z wybranego pola select
mam nadzieję ze jasno to opisalem smile.gif




Go to the top of the page
+Quote Post
Hpsi
post 3.06.2011, 10:56:24
Post #2





Grupa: Zarejestrowani
Postów: 483
Pomógł: 50
Dołączył: 15.03.2005
Skąd: Poznań

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


1. wysyłałbym w poscie
2. do sessji zapisałbym dane serialize($_POST); dzięki temu miałbym dostęp do tego w każdym kroku


--------------------
Daiquiri: T1 = (dx/dt * s)^hpsi
Daiquiri: gdzie T1 - Twój czas przybycia na miejsce, dx/dt - prędkość, s droga
Daiquiri: brb trzeba by to poprawić T1 - Czas jaki Ci to zajmie
Daiquiri: Zatem T - czas dotarcia p T1 + T2 gdzie T2 = aktualny czas

===
po prostu kocham ją :D haha
Go to the top of the page
+Quote Post
tom66
post 3.06.2011, 13:32:26
Post #3





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 28.03.2011

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


Cytat(Hpsi+ @ 3.06.2011, 11:56:24 ) *
1. wysyłałbym w poscie
2. do sessji zapisałbym dane serialize($_POST); dzięki temu miałbym dostęp do tego w każdym kroku


co do pierwszego ok, zmieniłem .
Natomist mam problem z drugim....
po zserializowaniu mam:
  1.  
  2. if(isset($_POST['sp']))
  3. {
  4. $a = $_POST['sp'];
  5. $N = count($a);
  6. $array = array();
  7. for($i=0; $i < $N; $i++)
  8. {
  9. $array[$i]=($a[$i]);}
  10. $sp2=serialize($_POST['sp']);
  11. $sp=implode("','",$array);
  12. $sp1="status in ('".$sp."')";
  13.  
  14. } // status projektu
  15. else { $sp1=1;
  16. $sp='';
  17.  
  18. }

wartosc print_r($sp2); -> s:46:"a:2:{i:0;s:7:"Aktywny";i:1;s:10:"Odłożony";}";
w inpucie typu hidden mam
  1. echo "<input type='hidden' name='sp' value=".$sp2." >";


i po przeladowaniu i przejsciu na stonę nr 2 wartosc zmiennej $sp mam a

coś mi nie wychodzi z tym serialized....



Go to the top of the page
+Quote Post
Hpsi
post 3.06.2011, 13:41:19
Post #4





Grupa: Zarejestrowani
Postów: 483
Pomógł: 50
Dołączył: 15.03.2005
Skąd: Poznań

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


serialize
unserialize
zapomniałem ci podać liste potrzebnych funkcji - sorry smile.gif


--------------------
Daiquiri: T1 = (dx/dt * s)^hpsi
Daiquiri: gdzie T1 - Twój czas przybycia na miejsce, dx/dt - prędkość, s droga
Daiquiri: brb trzeba by to poprawić T1 - Czas jaki Ci to zajmie
Daiquiri: Zatem T - czas dotarcia p T1 + T2 gdzie T2 = aktualny czas

===
po prostu kocham ją :D haha
Go to the top of the page
+Quote Post
tom66
post 3.06.2011, 13:46:50
Post #5





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 28.03.2011

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


Cytat(Hpsi+ @ 3.06.2011, 14:41:19 ) *
serialize
unserialize
zapomniałem ci podać liste potrzebnych funkcji - sorry smile.gif



nie no, w manula już sobie je znalazłem ale jakoś do mnie te przyklady nie trafiają.....

dlaczego

kod :
  1.  
  2. if(isset($_POST['sp']))
  3. {
  4. $a = $_POST['sp'];
  5. $N = count($a);
  6. $array = array();
  7. for($i=0; $i < $N; $i++)
  8. {
  9. $array[$i]=($a[$i]);}
  10. print_r ($a);
  11. $sp2=$a;
  12. $sp=implode("','",$array);
  13. $sp1="status in ('".$sp."')";
  14.  
  15. } // status projektu
  16. else { $sp1=1;
  17. $sp='';
  18.  
  19. }


nie przyjmuje wartości z pola hidden ? gdy przechodzę na stronę drugąquestionmark.gif
jak wykorzystac to serialize i unserialize

Go to the top of the page
+Quote Post
Hpsi
post 3.06.2011, 13:53:41
Post #6





Grupa: Zarejestrowani
Postów: 483
Pomógł: 50
Dołączył: 15.03.2005
Skąd: Poznań

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


hmm jeśli dałeś serialize do inputa type hidden , to sprawdz sobie co sie stanie jak w "value" dasz jakis ciag znaków z cudzysłowiem bez htmlspecialchars...


--------------------
Daiquiri: T1 = (dx/dt * s)^hpsi
Daiquiri: gdzie T1 - Twój czas przybycia na miejsce, dx/dt - prędkość, s droga
Daiquiri: brb trzeba by to poprawić T1 - Czas jaki Ci to zajmie
Daiquiri: Zatem T - czas dotarcia p T1 + T2 gdzie T2 = aktualny czas

===
po prostu kocham ją :D haha
Go to the top of the page
+Quote Post
tom66
post 3.06.2011, 14:13:06
Post #7





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 28.03.2011

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


Cytat(Hpsi+ @ 3.06.2011, 14:53:41 ) *
hmm jeśli dałeś serialize do inputa type hidden , to sprawdz sobie co sie stanie jak w "value" dasz jakis ciag znaków z cudzysłowiem bez htmlspecialchars...


no dobra a ta sie wyslac array w polu hidden bez serialize?

Go to the top of the page
+Quote Post
Hpsi
post 3.06.2011, 14:16:35
Post #8





Grupa: Zarejestrowani
Postów: 483
Pomógł: 50
Dołączył: 15.03.2005
Skąd: Poznań

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


możesz zawsze sobie ja przefiltrować w odpowiadający Tobie sposób, ale powiem Ci ze ja nigdy bym nie wrzucał tego typu rozwiązania bym nie polecał.
Czemu sie wzbraniasz od zapamiętywania tych danych w sesji ?


--------------------
Daiquiri: T1 = (dx/dt * s)^hpsi
Daiquiri: gdzie T1 - Twój czas przybycia na miejsce, dx/dt - prędkość, s droga
Daiquiri: brb trzeba by to poprawić T1 - Czas jaki Ci to zajmie
Daiquiri: Zatem T - czas dotarcia p T1 + T2 gdzie T2 = aktualny czas

===
po prostu kocham ją :D haha
Go to the top of the page
+Quote Post
tom66
post 3.06.2011, 14:23:14
Post #9





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 28.03.2011

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


Cytat(Hpsi+ @ 3.06.2011, 15:16:35 ) *
możesz zawsze sobie ja przefiltrować w odpowiadający Tobie sposób, ale powiem Ci ze ja nigdy bym nie wrzucał tego typu rozwiązania bym nie polecał.
Czemu sie wzbraniasz od zapamiętywania tych danych w sesji ?



Nie wzbraniam smile.gif szukam po prostu szybkiego rozwiązania tego problemu smile.gif

a sesją jak to załatwic ?

Go to the top of the page
+Quote Post
Hpsi
post 3.06.2011, 14:27:00
Post #10





Grupa: Zarejestrowani
Postów: 483
Pomógł: 50
Dołączył: 15.03.2005
Skąd: Poznań

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


jak masz już sesje rozpoczętą (a podejrzewam ze masz)
  1. $_SESSION['tmp_dane'] = serialize($_POST['zmiena']);

w dalszej cześci kodu odczytujesz
  1. $dane = $_SESSION['tmp_dane'];


--------------------
Daiquiri: T1 = (dx/dt * s)^hpsi
Daiquiri: gdzie T1 - Twój czas przybycia na miejsce, dx/dt - prędkość, s droga
Daiquiri: brb trzeba by to poprawić T1 - Czas jaki Ci to zajmie
Daiquiri: Zatem T - czas dotarcia p T1 + T2 gdzie T2 = aktualny czas

===
po prostu kocham ją :D haha
Go to the top of the page
+Quote Post
tom66
post 3.06.2011, 14:50:21
Post #11





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 28.03.2011

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


Cytat(Hpsi+ @ 3.06.2011, 15:27:00 ) *
jak masz już sesje rozpoczętą (a podejrzewam ze masz)
  1. $_SESSION['tmp_dane'] = serialize($_POST['zmiena']);

w dalszej cześci kodu odczytujesz
  1. $dane = $_SESSION['tmp_dane'];


hmm dodałem dane do sesji i mam :
  1. if(isset($_SESSION['sp']))
  2. {
  3. $d=unserialize($_SESSION['sp']);
  4. $N = count($d);
  5. $array = array();
  6. for($i=0; $i < $N; $i++)
  7. {
  8. $array[$i]=($d[$i]);}
  9. $sp=implode("','",$array);
  10. $sp1="status in ('".$sp."')";
  11.  
  12. }
  13. else{
  14. if(isset($_POST['sp']))
  15. {
  16. $a = $_POST['sp'];
  17. $N = count($a);
  18. $array = array();
  19. for($i=0; $i < $N; $i++)
  20. {
  21. $array[$i]=($a[$i]);}
  22. $_SESSION['sp'] = serialize($_POST['sp']);
  23. $sp=implode("','",$array);
  24. $sp1="status in ('".$sp."')";
  25.  
  26. } // status projektu
  27. else { $sp1=1;
  28. $sp='';
  29.  
  30. }}
  31.  


a calośc wygalda tak.... działa... w polowie.
przerzuca mnie na 2 strone z wynikami ( super) ale na trzeciej mam taki komunikat
unserialize() [function.unserialize]: Error at offset 0 of 20 byte w linii-> $d=unserialize($_SESSION['sp']);

dlaczego tak się dzieje...

Ten post edytował tom66 3.06.2011, 14:52:52
Go to the top of the page
+Quote Post
Hpsi
post 3.06.2011, 14:55:50
Post #12





Grupa: Zarejestrowani
Postów: 483
Pomógł: 50
Dołączył: 15.03.2005
Skąd: Poznań

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


zrob var_dump $_SESSION['sp'] na każdym kroku


--------------------
Daiquiri: T1 = (dx/dt * s)^hpsi
Daiquiri: gdzie T1 - Twój czas przybycia na miejsce, dx/dt - prędkość, s droga
Daiquiri: brb trzeba by to poprawić T1 - Czas jaki Ci to zajmie
Daiquiri: Zatem T - czas dotarcia p T1 + T2 gdzie T2 = aktualny czas

===
po prostu kocham ją :D haha
Go to the top of the page
+Quote Post
tom66
post 3.06.2011, 15:06:56
Post #13





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 28.03.2011

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


Cytat(Hpsi+ @ 3.06.2011, 15:55:50 ) *
zrob var_dump $_SESSION['sp'] na każdym kroku



to pokazuje mi dlugosc stringu... a co dalej ?
Go to the top of the page
+Quote Post
Hpsi
post 3.06.2011, 15:11:44
Post #14





Grupa: Zarejestrowani
Postów: 483
Pomógł: 50
Dołączył: 15.03.2005
Skąd: Poznań

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


Co ci pokazuje? jak wyglądają dane? coś wiecej?tongue.gif


--------------------
Daiquiri: T1 = (dx/dt * s)^hpsi
Daiquiri: gdzie T1 - Twój czas przybycia na miejsce, dx/dt - prędkość, s droga
Daiquiri: brb trzeba by to poprawić T1 - Czas jaki Ci to zajmie
Daiquiri: Zatem T - czas dotarcia p T1 + T2 gdzie T2 = aktualny czas

===
po prostu kocham ją :D haha
Go to the top of the page
+Quote Post
tom66
post 3.06.2011, 15:16:11
Post #15





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 28.03.2011

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


Cytat(Hpsi+ @ 3.06.2011, 16:11:44 ) *
Co ci pokazuje? jak wyglądają dane? coś wiecej?tongue.gif

za pierwszym razem
string(66) "a:3:{i:0;s:7:"Aktywny";i:1;s:10:"Odłożony";i:2;s:9:"Śmietnik";}"

za drugim:

string(32) "Aktywny','Odłożony','Śmietnik"

a za trzecim(błąd):
string(0) ""

smile.gif


ok dodałem w warunku $_SESSION['sp']
aby to unserialize zrobil ponownie
$_SESSION['sp'] = serialize($array);

i działa smile.gif



jednak coś sie pier%$# nadal ten komunkat .. nie zawsze ale jest ;(

przed każdą rezerwają sesji dodaję unset($_SESSION['sp']);
i już sie nie wywala smile.gif

dziękuję za pomoc

Ten post edytował tom66 3.06.2011, 15:29:24
Go to the top of the page
+Quote Post
Hpsi
post 3.06.2011, 15:29:07
Post #16





Grupa: Zarejestrowani
Postów: 483
Pomógł: 50
Dołączył: 15.03.2005
Skąd: Poznań

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


Przeanalizuj sobie skrypt dokładnie coś musisz robić nie tak - ja niestety w tej chwili zaczynam weekend tongue.gif wiec więcej ci nie będę w stanie pomóc, bo nie zamierzam na kompie siedzieć smile.gif
A błędu jako tako nie widzę, musiałbym zrobić sobie podobny skrypcik jak ty i testowac...


--------------------
Daiquiri: T1 = (dx/dt * s)^hpsi
Daiquiri: gdzie T1 - Twój czas przybycia na miejsce, dx/dt - prędkość, s droga
Daiquiri: brb trzeba by to poprawić T1 - Czas jaki Ci to zajmie
Daiquiri: Zatem T - czas dotarcia p T1 + T2 gdzie T2 = aktualny czas

===
po prostu kocham ją :D haha
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: 26.05.2024 - 21:37