Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Wypełnianie pól typu txt danymi z bazy MySQL w istniejącym formularzu
Forum PHP.pl > Forum > Przedszkole
zbysiusp
Witam!

Proszę o pomoc w następującym temacie. Na stronie czujniki.html mam 4 pola tekstowe: ID, dataczas, temzew, temwew. Dane ID, dataczas, temzew i temwew przechowywane są w bazie MySQL, do której trafiają z mikrokontrolera AVR. Chciałbym, aby na stronie czujniki.html znalazły się dwa przyciski: pobierz pierwszy rekord z bazy oraz pobierz ostatni rekord z bazy, po kliknięciu których pola tekstowe wypełniły się odpowiednimi danymi. Napisałem skrypt prezentacja.php, który odczytuje dane z bazy, ale prezentuje je niestety poprzez tworzenie nowego formularza i to po uruchomieniu skryptu, a nie wpisanie danych do formularza istniejącego po klknięciu przycisku. Jak to zrealizować?
Skrypt: prezentacja.php
  1. <?
  2. /* nawiazujemy polaczenie */
  3. $connection = @mysql_connect('host', 'user', 'login')
  4. /* w przypadku niepowodznie wyświetlamy komunikat */
  5. or die('Brak połączenia z serwerem MySQL.<br />Błąd: '.mysql_error());
  6. /* połączenie nawiązane ;-) */
  7. echo "Udało się połączyć z serwerem!<br />";
  8. /* nawiązujemy połączenie z bazą danych */
  9. $db = @mysql_select_db('STACJA_POGODOWA', $connection)
  10. /* w przypadku niepowodzenia wyświetlamy komunikat */
  11. or die('Nie mogę połączyć się z bazą danych<br />Błąd: '.mysql_error());
  12. /* połączenie nawiązane ;-) */
  13. echo "Udało się połączyć z bazą danych!";
  14.  
  15. $query="SELECT * FROM tab_czujniki";
  16. $result=mysql_query($query);
  17.  
  18. $num=mysql_numrows($result);
  19.  
  20.  
  21. echo "<b><center>Struktura bazy danych</center></b><br><br>";
  22.  
  23. $i=0;
  24. while ($i < $num) {
  25.  
  26. $ID=mysql_result($result,$i,"ID");
  27. $dataczas=mysql_result($result,$i,"dataczas");
  28. $tempwew=mysql_result($result,$i,"tempwew");
  29. $tempzew=mysql_result($result,$i,"tempzew");
  30. ?>
  31.  
  32. <tr>
  33. <td align="center"><font face="Arial, Helvetica, sans-serif"><? echo $ID; ?></font></td>
  34. <td align="center"><font face="Arial, Helvetica, sans-serif"><? echo $dataczas; ?></font></td>
  35. <td align="center"><font face="Arial, Helvetica, sans-serif"><? echo $tempwew; ?></font></td>
  36. <td align="center"><font face="Arial, Helvetica, sans-serif"><? echo $tempzew; ?></font></td>
  37. </tr>
  38.  
  39.  
  40. <?
  41. $i++;
  42. }
  43.  
  44. echo "</table>";
patwoj98
1. Łączymy się z bazą w osobnym pliku.
2. Nie używamy mysql, a mysqli lub PDO.
3. Gdzie masz tu jakikolwiek formularz bo nie widzę.
zbysiusp
Cytat(patwoj98 @ 14.04.2016, 22:12:25 ) *
1. Łączymy się z bazą w osobnym pliku.
2. Nie używamy mysql, a mysqli lub PDO.
3. Gdzie masz tu jakikolwiek formularz bo nie widzę.


Bardzo dziękuję. Jestem na samym początku nauki więc proszę o wyrozumiałość. Problem w tym, że jak zauważyłeś w punkcie 3 nie mam żadnego formularza i wyświetlam dane poprzez "pisanie php". Nie wiem w jaki sposób przekazać dane pobrane z bazy do konkretnego pola formularza np. w pliku index.html.

Mam np. index.html, a na nim "formularz A z polami tekstowymi 1, 2, 3" oraz "przycisk pobierz dane" z przypisaną akcją uruchomienia skryptu php jak w pierwszym poście. Klikam ten przycisk i chciałbym aby dane odczytane z bazy pojawiły się w równoimiennych polach tabeli A. Teraz po kliknięciu przycisku "pobierz" otwiera się nowa strona w przeglądarce z oczekiwanymi danymi. Chodzi o to aby skrypt wywołany z poziomu formularza A w index.html, "wrócił" do index.html i wpisał dane do pól 1, 2, 3.
patwoj98
Jak wygląda Twój znacznik form? Dobrze by było jak by odniósł się do aktualnej strony:
<form action=""> lub <form action="index.html">

I wtedy sprawdzasz w ifie, czy przesłane są dane (wystarczy na jednej, którą zawsze wysyłasz), jeśli jest to wyświetlasz dane.
zbysiusp
Cytat(patwoj98 @ 14.04.2016, 22:52:18 ) *
Jak wygląda Twój znacznik form? Dobrze by było jak by odniósł się do aktualnej strony:
<form action=""> lub <form action="index.html">

I wtedy sprawdzasz w ifie, czy przesłane są dane (wystarczy na jednej, którą zawsze wysyłasz), jeśli jest to wyświetlasz dane.


Tak wysyłam dane z formularza do bazy:
  1. <form action="czujniki.php" method="get">
  2. <h1> Stacja pogodowa </h1>
  3. Temperatura IN:<br />
  4. <input type="text" name="tempwew"/>
  5. <br /><br />
  6. Temperatura OUT:<br />
  7. <input type="text" name="tempzew"/>
  8. <br /><br />
  9. <input type="submit" value="Wyślij..."/>
  10. </form>

Chciałbym wprowadzić przycisk "Pobierz...", który uruchomi skrypt jak w pierwszym poście (prezentacja_danych.php) i zwróci wybrane dane do do pól temwew i temzew np. ostatni rekord.
patwoj98
Twój skrypt wyśle się do czujniki.php i tam będzie dalej pracował.
Jeśli dane mają być dynamiczne - AJAX Ci się przyda.
zbysiusp
Dziękuję.
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.