Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Przekazanie danych z formularza
Forum PHP.pl > Forum > Przedszkole
athis
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.
IceManSpy
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
athis
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.
IceManSpy
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źć.
Felan
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."'");
athis
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.
IceManSpy
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.
Felan
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 wink.gif ).
W każdym razie po wysłaniu formularza dostajesz komunikat, że "Połączenie nawiązane" i "Połączono z wybraną bazą"?
athis
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.
Felan
Ok, rozumiem.
Zmień w pierwszym warunku operator == na ===:
  1. if (!isset($dana) || $dana===0 ) {

Poszło?
athis
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..
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.