Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL][PHP]Status zamówienia - prosty formularz
Forum PHP.pl > Forum > Przedszkole
Petterros
Witam wszystkich serdecznie!

Napisałem taki fragment formularza:

  1.  
  2. <?php
  3.  
  4. if(empty($_POST['submit'])) {
  5. ?>
  6. <table>
  7. <form action="" method="post">
  8. <tr>
  9. <td>Nrmer zlecenia</td>
  10. <td><input type="text" name="formNumber"/></td>
  11. </tr>
  12.  
  13. <tr>
  14. <td>Status:</td>
  15. <td><output type="text" name="formStatus"/></td>
  16. </tr>
  17.  
  18.  
  19. <tr>
  20. <td> </td>
  21. <td><input type="submit" name="submit" value="Sprawdź"/></td>
  22. </tr>
  23. </form>
  24. </table>
  25. <?php
  26. } else {
  27.  
  28. //twoje dane
  29. $sql=mysql_connect("localhost", "login", "hasło");
  30. mysql_select_db("zlecenia");
  31.  
  32.  
  33. if(!empty($formNumber) {
  34.  
  35. echo 'Wprowadź numer zlecenia';
  36.  
  37.  
  38. }
  39. ?>
  40.  


Chciałbym aby po wpisaniu nr zlecenia formularz sprawdzał czy istnieje taki w bazie danych, jeśli tak to wyświetlał wartość pola status z bazy w okienku formStatus.
W bazie danych zlecenia jest tabela zlecenia z kolumnami nr zlecenia, status
Nr zlecenia to zawsze ciąg cyfr więc przydało by się również sprawdzanie poprawności wprowadzenia.

Jeśli ktoś może pomóc to bardzo bym prosił smile.gif

Pozdrawiam!
Rysh
Kod podajesz w tagach [ PHP ]. Poza tym w czym masz problem?
  1. mysql_query("SELECT status FROM zlecenia WHERE id=". $_POST['id']);

I sprawdzasz ile zwrócił rekordów.
Petterros
Nie wiem jak to dokładnie powinno wyglądać, jak mu kazać wyświetlić w polu formstatus, najlepiej zrobić je tak żeby nie było do edycji, jak zrobić sprawdzanie itd.
Rysh
To są podstawy. Zapytanie masz, teraz tylko wstawić w value dla outputa.
Petterros
Dlatego piszę w przedszkolu.

Nie mam bladego pojęcia jak to zrobić.
markonix
<input value="TUTAJ ECHO" />
Warto nadać atrybut readonly albo disabled dla tego inputa.
Petterros
Czy ktoś może mi napisać od a do z jak to powinno wyglądać, a nie mi wypisywać pojedyncze funkcje, które nie wiem gdzie i jak mam umieścić?
markonix
  1. $row = mysql_fetch_row(mysql_query("SELECT `status` FROM `zlecenia` WHERE id=". (int)$_POST['id']));
  2. $status = $row[0];


Powyższy kod pobiera wpisany ID, rzutuje na liczbę w celach bezpieczeństwa oraz przypisuje status do zmiennej $status.
Wystarczy, że wyświetlisz ten status w dowonym miejscu, jako tekst czy wartość inputa (czyli atrybut "value").

Wyświetalać zmienne chyba potrafisz?
Petterros
zrobiłem wyświetlenie zmiennej w ten sposób
  1. <input type="text" name="status" value="<?php echo $status; ?>">


I nie wyświetla się sad.gif
Rysh
Jak już piszesz że wstawiłeś taki kod, to pokaż cały kod. Żaden z nas, nie wie gdzie go wstawiłeś, a to jest dosyć ważne.
Petterros
Proszę, oto cały kod smile.gif

  1. <?php
  2.  
  3. if(empty($_POST['submit'])) {
  4. ?>
  5. <table>
  6. <form action="" method="post">
  7. <tr>
  8. <td>Nrmer zlecenia</td>
  9. <td><input type="text" name="formNumber"/></td>
  10. </tr>
  11. <tr>
  12. <td>&nbsp;</td>
  13. <td><input type="submit" name="submit" value="Sprawdź"/></td>
  14. </tr>
  15. </form>
  16. </table>
  17. <?php
  18. } else {
  19.  
  20. //twoje dane
  21. $sql=mysql_connect("localhost", "klimapro_admin", "nr1klimaproject");
  22.  
  23. $formNumber = $_POST['formNumber'];
  24. $formStatus = $_POST['formStatus'];
  25.  
  26. if(!empty($formNumber) {
  27.  
  28. echo 'Wprowadź numer zlecenia';
  29.  
  30. } else
  31.  
  32. $row = mysql_fetch_row(mysql_query("SELECT `status` FROM `zlecenia` WHERE id=". (int)$_POST['id']));
  33.  
  34. $status = $row[0];
  35.  
  36. ?>
  37. <tr>
  38. <td>Status:</td>
  39. <td> <input type="text" name="status" value="<?=$status?>"/></td>
  40. </tr>
Rysh
Daj:
  1. $row = mysql_fetch_row(mysql_query("SELECT `status` FROM `zlecenia` WHERE id=". (int)$_POST['formNumber']));

Zamiast:
  1. $row = mysql_fetch_row(mysql_query("SELECT `status` FROM `zlecenia` WHERE id=". (int)$_POST['id']));


Poprawiony kod cały:
  1. <?php
  2.  
  3. if(!isset($_POST['submit'])) {
  4. echo '<table>
  5. <form action="" method="post">
  6. <tr>
  7. <td>Nrmer zlecenia</td>
  8. <td><input type="text" name="formNumber"/></td>
  9. </tr>
  10. <tr>
  11. <td> </td>
  12. <td><input type="submit" name="submit" value="Sprawdź"/></td>
  13. </tr>
  14. </form>
  15. </table>';
  16. } else {
  17. mysql_connect("localhost", "klimapro_admin", "nr1klimaproject");
  18. mysql_select_db("test");
  19.  
  20. if(!is_numeric($_POST['formNumber'])) {
  21. echo 'Wprowadź numer zlecenia';
  22. } else {
  23. $row = mysql_fetch_row(mysql_query("SELECT `status` FROM `zlecenia` WHERE id=". (int)$_POST['formNumber']));
  24.  
  25. echo '<tr>
  26. <td>Status:</td>
  27. <td><input type="text" name="status" value="'. $row[0] .'"/></td>
  28. </tr>';
  29. }
  30. }
  31. ?>
Petterros
Nie wiem czemu ale wyświetla mi ten fragment kodu

  1. '; } else { mysql_connect("localhost", "klimapro_admin", "nr1klimaproject"); mysql_select_db("test"); if(!is_numeric($_POST['formNumber'])) { echo 'Wprowadź numer zlecenia'; } else $row = mysql_fetch_row(mysql_query("SELECT `status` FROM `zlecenia` WHERE id=". (int)$_POST['formNumber'])); echo ' Status: '; } } ?>

zamiast go wykonać.
Rysh
Nie mam w tej chwili jak sprawdzić tego kodu ponieważ jestem na uczelni, wygląda dobrze (przed chwilą poprawiłem jeszcze jeden błąd - więc sprawdź jeszcze raz w razie czego).
Petterros
Nadal nic, próbowałem sam coś poprawiać ale nic to w zasadzie nie zmieniło i wróciłem do Twojej wersji haha.gif
Rysh
Cytat(Petterros @ 22.03.2012, 14:14:56 ) *
Nadal nic, próbowałem sam coś poprawiać ale nic to w zasadzie nie zmieniło i wróciłem do Twojej wersji haha.gif

No dobra, wróciłem do domu i sprawdziłem ten kod co dałem wcześniej i o dziwo DZIAŁ!
  1. <?php
  2.  
  3. if(!isset($_POST['submit'])) {
  4. echo '<table><form method="post">
  5. <tr><td>Numer zlecenia:</td><td><input type="text" name="formNumber"/></td></tr>
  6. <tr><td> </td><td><input type="submit" name="submit" value="Sprawdź"/></td></tr>
  7. </form></table>';
  8. } else {
  9. mysql_connect("localhost", "klimapro_admin", "nr1klimaproject");
  10. mysql_select_db("test");
  11.  
  12. if(!is_numeric($_POST['formNumber'])) {
  13. echo 'Wprowadź poprawny numer zlecenia.';
  14. } else {
  15. $row = mysql_fetch_row(mysql_query("SELECT `status` FROM `zlecenia` WHERE id=". (int)$_POST['formNumber']));
  16. echo '<tr><td>Status:</td><td><input type="text" name="status" value="'. $row[0] .'"/></td></tr>';
  17. }
  18. }
  19. ?>

Pamiętaj żeby zapisywać w notepad++ w UTF-8 bez BOM.
Petterros
Zapisałem bez bom, wrzuciłem to na serwer i ciągle to samo wacko.gif
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.