Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Przekazanie danych z formularza, Undefined index: dana in ...7.php on line 35
athis
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 12.08.2012

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


Pytanie prymitywne aczkolwiek sam chciałem dojść co jest źle i nie podołałem.. Uczę się na Wampie- wirtualny serwer, mysql itd. Błąd w pogrubionej linii

  1. <form method="GET" action="7.php"> // formularz
  2. <input type="submit" value="ok" />
  3. <input type="text" name="dana"/>
  4. </form>


  1. <?php
  2. $dana=$_GET['dana'];
  3.  
  4. if (!isset($dana) || $dana==0 ) {
  5. echo('wybierz miasto'); }
  6. else {
  7.  
  8. if (!$db = mysql_connect('localhost', 'root', '')) {
  9. echo('<br />Błąd łączenia z bazą');
  10. }
  11. else {
  12. echo('<br />Połączenie nawiązane');
  13. }
  14.  
  15. if (!mysql_select_db('nauka', $db)) {
  16. echo('<br />Nie udało się załadować żądanej bazy');
  17. }
  18. else {
  19. echo('<br />Połączono z wybraną bazą');
  20. }
  21.  
  22. $dane=mysql_query("select * from miasta where nazwa_miasta=".$dana);
  23. while ($txt=mysql_fetch_assoc($dane)) {
  24. echo('<br />'.$txt['id_miasta'].' '. $txt['nazwa_miasta']);
  25. }
  26. }
  27.  
  28. ?>

  1. </body>
  2. </html>


Notice: Undefined index: dana in C:\wamp\www\7.php on line 11

Z góry dzięki za rzucenie okiem.

Ten post edytował athis 12.08.2012, 01:27:41
Go to the top of the page
+Quote Post
IceManSpy
post
Post #2





Grupa: Zarejestrowani
Postów: 1 006
Pomógł: 111
Dołączył: 23.07.2010
Skąd: Kraków

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


Wpisałeś to w ogóle w google? Albo w tutejszą wyszukiwarkę? Pierwsze wyniki po wpisaniu "Notice: Undefined index"
Temat: PHP Notice Undefined index
http://www.forumweb.pl/viewtopic.php?t=54864
Go to the top of the page
+Quote Post
athis
post
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 12.08.2012

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


Tak, sprawdzałem. Jest to tylko 'Notice' informujący, że taka dana nie jest zdefiniowana. Problem mam z tym, że nawet po podaniu danej do formularza i zatwierdzeniu, nie 'czyta' jej, czyli pozostaje na etapie oczekiwania na uzupełnienia formularza, a tego co zatwierdziłem w formularzu nie przetwarza.
Go to the top of the page
+Quote Post
IceManSpy
post
Post #4





Grupa: Zarejestrowani
Postów: 1 006
Pomógł: 111
Dołączył: 23.07.2010
Skąd: Kraków

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


Ale po wysłaniu notice znika, więc już jest ok. Jak chcesz większą pomoc to otaguj kod znacznikami [ php ] - będzie czytelniej i łatwiej coś znaleźć.
Go to the top of the page
+Quote Post
Felan
post
Post #5





Grupa: Zarejestrowani
Postów: 10
Pomógł: 6
Dołączył: 30.11.2006

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


Trudno wywnioskować z tego postu, co w ogóle jest nie tak i w czym problem. Nie wiem, co to znaczy, że "pozostaje na etapie oczekiwania na uzupełnienie formularza".

W każdym razie umieściłbym w apostrofach nazwę miasta:

  1. $dane=mysql_query("select * from miasta where nazwa_miasta='".$dana."'");
Go to the top of the page
+Quote Post
athis
post
Post #6





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 12.08.2012

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


Co do apostrofów- dzięki za słuszną uwagę.

Mam na myśli, że nawet po podaniu w formularzu poprawnej nazwy miasta która powinna moim zdaniem spowodować wyświetlenie danych wybranych przez select, nie dzieje się tak lecz skrypt nadal traktuje jakby nie wprowadzono danych do formularza.

Ten post edytował athis 12.08.2012, 01:51:17
Go to the top of the page
+Quote Post
IceManSpy
post
Post #7





Grupa: Zarejestrowani
Postów: 1 006
Pomógł: 111
Dołączył: 23.07.2010
Skąd: Kraków

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


Może jest błąd w zapytaniu? Zrób sobie tak:
  1. $select = "select * from miasta where nazwa_miasta=".$dana;
  2. echo $select;
  3. $dane=mysql_query($select);

Oczywiście jak wyślesz już formularz.
Go to the top of the page
+Quote Post
Felan
post
Post #8





Grupa: Zarejestrowani
Postów: 10
Pomógł: 6
Dołączył: 30.11.2006

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


W takiej sytuacji na początku pliku 7.php walnij
  1. var_dump($_GET);
Dowiesz się, czy cokolwiek do tego geta trafiło (chociaż łatwiej to sprawdzić po prostu rzucając okiem w pasek adresu przeglądarki (IMG:style_emoticons/default/wink.gif) ).
W każdym razie po wysłaniu formularza dostajesz komunikat, że "Połączenie nawiązane" i "Połączono z wybraną bazą"?
Go to the top of the page
+Quote Post
athis
post
Post #9





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 12.08.2012

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


Już działa. Wina była rzeczywiście po stronie komputera, zrestartowałem Wampa i działa. Dzięki za poświęcony czas, szkoda tylko, że z głupiego powodu.

Ten post edytował athis 12.08.2012, 02:35:41
Go to the top of the page
+Quote Post
Felan
post
Post #10





Grupa: Zarejestrowani
Postów: 10
Pomógł: 6
Dołączył: 30.11.2006

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


Ok, rozumiem.
Zmień w pierwszym warunku operator == na ===:
  1. if (!isset($dana) || $dana===0 ) {

Poszło?
Go to the top of the page
+Quote Post
athis
post
Post #11





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 12.08.2012

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


Wyrzuciłem ten warunek ( || $dana==0 )żeby działało ale w takiej formie jak przedstawiłeś również działa. Tylko teraz zastanawiam się dlaczego podana wartość w formularzu ma wartość 0..

Ten post edytował athis 12.08.2012, 02:47:39
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: 5.10.2025 - 09:05