Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP/MySQL]Jak przekazać dodatkową informację ?, Jak przekazać dodatkową informację ?
study
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 4.06.2005

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


Mam taki kod:
  1. <form action='f_11c2.php' method=post>
  2. <select name=\"Nazwa_s\">
  3. <option> ..::.Wybierz z listy.::S.. </option>
  4. <?
  5. $baza = 'xxxxx';
  6. $tab = 's_przystanek00';
  7. $connection = mysql_connect('localhost','yyyyyy','zzzzzz');
  8. $wybierz = mysql_select_db($baza, $connection) or die ('Nie udało się wybrać bazy !');
  9. $Numer = $HTTP_POST_VARS['Numer'];
  10. $Nazwa = $HTTP_POST_VARS['Nazwa'];
  11. $Typ = $HTTP_POST_VARS['Typ'];
  12. $Strefa  = $HTTP_POST_VARS['Strefa'];
  13. $Data  = $HTTP_POST_VARS['Data'];
  14. $Status  = $HTTP_POST_VARS['Status'];
  15. $pokaz_s = &#092;"SELECT Nazwa, Numer AS numers FROM $tab ORDER BY Nazwa\";
  16. $wynik = mysql_query($pokaz_s, $connection) or die ('Bład zapytania do bazy !');
  17.  if ($wynik)
  18.  {
  19. while ($wiersz = mysql_fetch_array($wynik))
  20. {
  21. $numers = $wiersz['numers'];
  22. $Nazwa  = $wiersz['Nazwa'];
  23. $Typ  = $wiersz['Typ'];
  24. $Strefa = $wiersz['Strefa'];
  25. $Data = $wiersz['Data'];
  26. $Status = $wiersz['Status'];
  27. ?>
  28. <option value=\"<?echo $wiersz['Nazwa']; ?>\"><?echo $wiersz['Nazwa']; ?></option>
  29. <?
  30. }
  31.  }
  32. $wyswietls=&#092;"<input type=hidden name='numers' value='$numers'>\"; echo\"$wyswietls\";
  33. ?>
  34. </select>

Działa to na tablicy, w której są dane:
Kod
7423    przyst1      j       I      2005-06-01      1
7424    przyst2      d       I      2005-06-01      1
7444    przyst23     d       II     2005-06-01      1
7445    przyst29     d       I      2005-06-01      1
7501    przyst48     j       I      2005-06-01      1

A teraz pytanie: Dlaczego zawsze tj. niezależnie od wybranej pozycji z listy, zmienna $wyswietls otrzymuje wartość 7501 (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Jak dopiszę kolejną pozycję gdzie numer będzie następny (większy) to zawsze wybiera wartość max zamiast wartość odpowiednią do wybranej?
Chcę aby do zmiennej $wyswietls podstawiła się wartość "7424" gdy z listy wybiorę $Nazwa_s wartość "przyst2", albo gdy $Nazwa_s="przyst29" to $wyswietls="7445".
Co źle robię i jak to powinno być (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Natomiast w formularzu (skrypcie) 'f_11c2.php' będzie wykonywane INSERT do innej tablicy właśnie tego co będzie w parametrze $wyswietls.

Ten post edytował study 7.06.2005, 11:21:13
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 22)
nospor
post
Post #2





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




po pierwsze: w sql chcesz 2 pola, a w petli pobierasz wiecej
po drugie: w selecie wstawiasz pole typu hidden
po trzecie: zmienna $wyswietls otrzymuje zawsze ostatnią wartość numers, gdyż do tej zmiennej przypisujesz dopiero po pobraniu wszystkich wartości, czyli po każdej iteracji nadpisujesz poprzednią i w rezultacie pozostaje ci ostatnia
Go to the top of the page
+Quote Post
study
post
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 4.06.2005

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


ad1.) wiem o tym, ale jeszcze nie optymalizowałem kodu (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
ad.2) to dobrze czy źle ?
ad.3) rozumiem, ale jak to poprawić ?
Go to the top of the page
+Quote Post
SongoQ
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


@study co to znaczy nie optymalizowalem kodu? Robisz kopiuj - wklej z innego projektu?
2. oczywiscie ze zle, po co CI pole ukryte?
3. petla w ktorej zwracasz rekordy.
Go to the top of the page
+Quote Post
study
post
Post #5





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 4.06.2005

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


odp.1) tak - robię ^C ^V ale ze swojego projektu bo jest mi tak łatwiej - a co (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) nie wolno ?!?! (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) - po za tym to nic nie wnosi do mojego pytania :/
odp.2) proszę przeczytać DOKŁADNIE mojego pierwszego posta !
odp.3) hmm, ale to nie jest oczekiwana odpowiedź (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) - co to pętla to wiem, ale jak rozwiązać ten problem (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
SongoQ
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


ad 1. to nie jest zle, tak tylko skojarzylem ze to pewnie pozostalosc po kopiuj - wklej, sam nieraz tak robie i takie rzeczy sa nieuniknione.
ad 2. chodzilo mi o zastosowanie czegos innego niz ukrytego pola, ale ok.
ad 3. tak jak pisal @nospor $wyswietls="<input type=hidden name='numers' value='$numers'>"; echo"$wyswietls"; zawiera zawsze ostatni rekord.
Cytat
Chcę aby do zmiennej $wyswietls podstawiła się wartość "7424" gdy z listy wybiorę $Nazwa_s wartość "przyst2", albo gdy $Nazwa_s="przyst29" to $wyswietls="7445"

W jaki sposob wybierasz? zapytaniem? Mozesz troszeczke jasniej opisac mechanizm dzialania?
Go to the top of the page
+Quote Post
study
post
Post #7





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 4.06.2005

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


odp.1) - ok (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
odp.2) to przyszło mi do głowy
odp.3) ma to działać tak:
poszczególne pozycje wybieram z listy (SELECT z bazy) po jej wybraniu, a następnie kliknięciu "wyślij" (type submit) ma nastąpić przesłanie dwóch informacji:
a.) pozycja z listy - zmienna $Nazwa_s
b.) numerek odpowiedni do tej pozycji - zmienna $numers
Dlatego tak ponieważ ten następny formularz (skrypt) ma zrealizować INSERT do bazy właśnie ten numerek z b.) a nie nazwę z a.) .

Ten post edytował study 6.06.2005, 21:24:01
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




Nie rozumiem? Dla danej nazwy masz kilka odpowedzi ($numers)? Ale widać se skryptu że $nuemrs pobierasz z tego samego rekordu co nazwa, więc chyba jest to relacja jeden do jeden. W takim wypadku $numers wystarczy dać jako wartość w <option value="$numers"> i już będziesz mial numer dla nazwy
Go to the top of the page
+Quote Post
study
post
Post #9





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 4.06.2005

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


Ciężko tu mówić o "relacji" w jednej tablicy, ale fakt, że $numers jest z tego samego rekordu w tablicy co $Nazwa_s (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Wygląda na to, że wiesz o co mi "biega" (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) A możesz pomóc wstawić <option value="$numers"> do mojego skryptu (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) - Proszę Cię (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował study 7.06.2005, 10:40:38
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




źle użylem slowa relacje (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) chodzilo mi oto, oco mi chodzilo, i niepotrzebnie te relacje wstawilem

  1. <?php
  2.  
  3. //.....
  4. while ($wiersz = mysql_fetch_array($wynik))
  5.  {
  6. //........
  7.  echo &#092;"<option value=\"$numers\">$Nazwa</option>\";
  8.  }
  9. //....
  10.  
  11. ?>

i juz tego pola hidden nie dodawaj
Go to the top of the page
+Quote Post
study
post
Post #11





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 4.06.2005

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


(IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Jest prawie, że oki tylko jak wstawię to tak:
  1. <?
  2. //.......[ciach]......
  3.  
  4. $Status = $wiersz['Status'];
  5.  
  6. echo &#092;"<option value=\"$numers\">$Nazwa</option>\";
  7. ?>
  8. <?
  9. }
  10.  }
  11. ?>
  12. </select>

to zmienna $Nazwa_s jest pusta (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) a też jest mi potrzebna ! :|
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




jaka $Nazwa_s. Wcześniej pisales $Nazwa. Się zdecyduj bo już nie wiem o co ci chodzi (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Jeśli nazwe teżchcesz przekazywać, możesz też dodać do option razem z numers tylko oddzielić np |:
  1. <?php
  2.  
  3. echo &#092;"<option value=\"$numers|$Nazwa\">$Nazwa</option>\";
  4.  
  5. ?>

przy odbieraniu zrobisz explode:
  1. <?php
  2.  
  3. $select=explode('|',$_POST['twojselect']);
  4. $numers=$select[0];
  5. $Nazwa=$select[1];
  6.  
  7. ?>
Go to the top of the page
+Quote Post
study
post
Post #13





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 4.06.2005

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


(IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Jest coraz lepiej ale to jeszcze nie jest to (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
A dlatego, że:
a.) $Nazwa - to nazwa zmiennej, pobieranej z tablicy;
b.) $Nazwa_s - to nazwa, w której przechowywana jest wartość wybrana z pkt. a.) wg "<select name="Nazwa_s" " - dlatego zrobiłem tak, ponieważ na tej samej stronie jeszcze raz wybieram $Nazwa, ale zapisuję pod $Nazwa_d - troszku może dziwne, ale tak jest mi to potrzebne, a nie chcę opisywać całego mojego projektu;
c.) o sposobie w jaki "odbieram" nie pisałem, a teraz to napiszę:
  1. <?
  2.  
  3. $Nazwa_s =$HTTP_POST_VARS['Nazwa_s'];
  4. $numers  =$HTTP_POST_VARS['numers'];
  5.  
  6. $wyswietl=&#092;"
  7. <p style='position:absolute; top:130px; left:220px;'><b>Skąd:</b></p>
  8. <p style='position:absolute; top:160px; left:130px;'><font size=1>$numers</font> $Nazwa_s</p><input type=hidden name='Nazwa_s' value='$Nazwa_s'>
  9. &#092;";
  10. echo &#092;"$wyswietl\";
  11. ?>

i teraz to by było na tyle (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Co teraz zrobić po stronie "wysyłającej" ?
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




Nazwa_s to nazwa selecta? tak. oki. Chcesz pobrać, to co gościu wybral, czyli nazwę i numer dla tej nazwy. Czyli robisz jak pisalem:
  1. <?php
  2.  
  3. echo &#092;"<option value=\"$numers|$Nazwa\">$Nazwa</option>\";
  4.  
  5. ?>


a pobierasz tez jak pisalem:
  1. <?php
  2.  
  3. $select=explode('|',$_POST['Nazwa_s']);
  4. $numers=$select[0];
  5. $Nazwa_s=$select[1];
  6.  
  7. ?>
Go to the top of the page
+Quote Post
study
post
Post #15





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 4.06.2005

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


Wszystko gra (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif)
Dzięki (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif)
(IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Jednak nie do końca (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Jak zmodyfikować kod:
  1. <form action=\"f_11c3.php\" method=post>
  2. <?
  3. $selects =explode('|',$HTTP_POST_VARS['Nazwa_s']);
  4. $numers  =$selects[0];
  5. $Nazwa_s =$selects[1];
  6. $wyswietl  =&#092;"
  7. <p style='position:absolute; top:130px; left:220px;'><b>Skąd:</b></p>
  8. <p style='position:absolute; top:160px; left:130px;'><font size=1>$numers</font> $Nazwa_s</p><input type=hidden name='Nazwa_s' value='$Nazwa_s'>
  9. &#092;";
  10. echo &#092;"$wyswietl\";
  11. ?>

aby móc dalej przekazać nie tylko to co jest w zmiennej $Nazwa_s ale również, (a zwłaszcza) to co jest w zmiennej $numers ?
Najlepiej by było, aby można było przekazać tak jedną jak i drugą zmienną.

Ten post edytował study 8.06.2005, 10:46:00
Go to the top of the page
+Quote Post
nospor
post
Post #16





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




no tak jak zrobiles z Nazwa_s. Dodaj jeszcze jedno pole ukryte dla $numers
Go to the top of the page
+Quote Post
study
post
Post #17





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 4.06.2005

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


Ale właśnie nie wiem jak (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) (różnie kombinowałem i nic) i dlatego proszę Cię o pomoc (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
I to musi być z $HTTP_POST_VARS - tylko gdzie ?
Jak w explode dopisać inny parametr?

Ten post edytował study 8.06.2005, 12:22:13
Go to the top of the page
+Quote Post
nospor
post
Post #18





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




Jak to nie wiesz jak? Ktoś Ci pisal ten skrypt? Masz przecież jak wól wstawione pole ukryte dla NAzwa_S

proszę (juz też z $numers):
  1. <?php
  2.  
  3. $wyswietl  =&#092;"
  4.  .... 
  5. <input type=&#092;"hidden\" name=\"Nazwa_s\" value=\"$Nazwa_s\">
  6. <input type=&#092;"hidden\" name=\"numers\" value=\"$numers\">
  7. &#092;";
  8. echo &#092;"$wyswietl\";
  9.  
  10. ?>
Go to the top of the page
+Quote Post
study
post
Post #19





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 4.06.2005

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


hmm :|
Albo czegoś nie rozumiem (możliwe) albo coś nie tak z tym kodem:
  1. <form action=\"f_11c3.php\" method=post>
  2. <?
  3. $selects =explode('|',$HTTP_POST_VARS['Nazwa_s']);
  4. $numers  =$selects[0];
  5. $Nazwa_s =$selects[1];
  6. $wyswietl  =&#092;"
  7. <p style='position:absolute; top:130px; left:220px;'><b>Skąd:</b></p>
  8. <p style='position:absolute; top:160px; left:130px;'><font size=1>$numers</font> $Nazwa_s</p><input type=&#092;"hidden\" name=\"Nazwa_s\" value=\"$Nazwa_s\">
  9. <input type=&#092;"hidden\" name=\"numers\" value=\"$numers\">
  10. &#092;";
  11. echo &#092;"$wyswietl\";
  12. ?>

A może źle odbieram tym skryptem (f_11c3.php):
  1. <?
  2. $baza = &#092;"zzz\";
  3. $tab = &#092;"s_czas00\";
  4. $connection = mysql_connect(&#092;"localhost\",\"xxx\",\"yyy\");
  5. $wybierz = mysql_select_db($baza, $connection) or die (&#092;"Nie udało się wybrać bazy !\");
  6.  
  7.  $numers =$HHTP_POST_VARS['numers'];
  8.  $Nazwa_s  =$HTTP_POST_VARS['Nazwa_s'];
  9.  
  10. $wstaw = &#092;"INSERT INTO $tab
  11.  (Skad)
  12.  VALUES
  13.  ('$numers')
  14.  &#092;";
  15. $wynik = mysql_query($wstaw, $connection);
  16.  
  17. if ($wynik)
  18.  {
  19. &#092;"
  20. <p style='position:absolute; top:130px; left:220px;'><b>Skąd:</b></p>
  21. <p style='position:absolute; top:160px; left:130px;'><font size=1>$numers</font>$Nazwa_s</p>
  22.  
  23. <input type=button value='Powrót' OnClick=&#092;"self.location.href='f_11_czasiodleglosc.php'\" style='width: 80px; height: 30px; position:absolute; top:290px; left:500px;'>
  24. &#092;";
  25.  }
  26. else { echo &#092;"<h2>Nie dopisano do słownika :(</h2>
  27.  
  28. <input type=button value='Powrót' OnClick='history.back()' style='width: 80px; height: 30px; position:absolute; top:290px; left:500px;'>
  29. &#092;";
  30.  }
  31. ?>

Proszę poradź co zrobić (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #20





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




1)Ale co? jakis blad ci wywala?
2) czy ty wogóle zamykasz ten formualrz gdzie masz ola ukryte?
3)daj se echo w tym f_11c3.php i powiedz czy otrzymales te zmienne:
echo "Numers: $numers; Nazwa_s: $Nazwa_s";
Go to the top of the page
+Quote Post
study
post
Post #21





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 4.06.2005

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


ad.1) nie, błedu nie wywala tylko w tablicę polecenie INSERT wstawia "0" natomiast gdy zastąpię VALUES ('$numers') tym VALUES ('789') to wstawia właśnie "789", więc na tej podstawie twierdzę, że $numers jest puste, a ponadto pkt.3.) poniżej
ad.2) formularz jest zamykany tylko tego tutaj nie widać ponieważ po tym skrypcie są jeszcze inne skrypty - wiem wiem, nie ma obawy o "przesłanianie" zmiennych bo nazwy są inne - sprawdziłem (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
ad.3) dodatkowego echo nie ma potrzeby wstawiać bo jest już realizowane przez 22 i 23 linię kodu skryptu f_11c3.php:
Kod
<font size=1>$numers</font>$Nazwa_s</p>

i w $Nazwa_s jest tekst, w w $numers jest puste.
Go to the top of the page
+Quote Post
nospor
post
Post #22





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




Mistrzu, ty sięprzyjrzyj w jaki sposób pobierasz zmienną numers:
$numers =$HHTP_POST_VARS['numers'];
widzisz błąd? nie? powinno być tak:
$numers =$HTTP_POST_VARS['numers'];
widać różnicę?no, to dobrze (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

daj se error_reporting(E_ALL); i powinienes wówczas wychwytywać takie rzeczy.

A tak przy okazji czemu nie korzystasz z $_POST?
Go to the top of the page
+Quote Post
study
post
Post #23





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 4.06.2005

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


O kurcze (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Ale gafa - wstyd mi (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
A jest to mój pierwszy i na dokładkę cholernie (jak dla mnie) duży projekt i zdaję sobie sprawę, że jeszcze duuuużo nie wiem o php :| ale ..... cały czas rzeźbię, a jak przećwiczę (i się obronię (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ) to na pewno będę ...... więcej wiedział. Oczywiście kolosalne znaczenie mają takie odpowiedzi jak Twoje "nospor" i bardzo sobie je cenię (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
A dlaczego stosuję $HTTP_POST_VARS zamiast $_POST? - ano dlatego, że serwer, na którym ma to być (oceniane) ma php v4.0 a nie 4.1 (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

Pozdrowionka i BIG WIELKIE DZIEKUJE ! (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

ps. Dlaczego nie można pisać DUŻEGO "ę" (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 24.08.2025 - 15:28