Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]Skrypt jaka to choroba
Forum PHP.pl > Forum > Przedszkole
albertusek
Chciałem napisać taki skrypt żeby za pomocą danych z formularza wyświetliło jaka może to być choroba.
Więc zrobiłem tak:

<html>
<head><title>Aplikacja chorobowa</title></head>
<body>
<form name="chorobowa" method="post">
<label for="objaw">wprowadz objaw:</label<br />
<input type="text" name="objaw" /><br />
<input type="submit" value="sprawdz" />
</form>
</body>
</html>
<?php
if (isset($_post['objaw']))
$objaw = "brzuch";
{
echo "uwaga";
}
?>

Jakby ktoś mi mógł tylko napisać żeby ten skrypt wyświetlił tylko następujące funkcje:
Ktoś wprowadza dane do formularza ból brzucha i pojawia się komunikat na stronie "Możliwe zapalenie wyrostka"
to byłbym wdzięczny.
pozdrawiam
CuteOne
  1. if (isset($_post['objaw'])) {
  2.  
  3. if($_POST['objaw'] == 'brzuch') {
  4.  
  5. ........
  6.  
  7. }
  8. }


ps. $objaw = "brzuch"; powinnien znajdować się przed if (isset($_post['objaw'])) lub pomiędzy klamrami { }

thek
Najprościej? Zrób sobie powiązania między jednostką chorobową a objawem. Dobrze swoją rolę tutaj spełnia baza danych i połączenie wiele-do-wielu. Jedna choroba może mieć wiele objawów, a jeden objaw pasować może do wielu chorób. To jak to zapisać i odczytać to kwestia własnego pomysłu i tego czym realizujesz sprawdzenie. Jeśli baza danych to podana przeze mnie możliwość jest wygodna bo wyszukujesz konkretne objawy i grupujesz je po chorobie, dając wyżej te, które mają większa ilość pasujących objawów. Jako że PHP-owa tablica może mieć jedynie jeden taki sam klucz, to możesz choćby utworzyć tablicę gdzie choroba to będzie klucz a jej objawy to wartości kolejnej tablicy. Można użyć ID by zająć ciut mniej miejsca i odrobinę szybciej wyszukiwać. Przykładowo:
  1. $choroby = array(
  2. ['0'] => 'Wyrostek',
  3. ['1'] => 'Grypa',
  4. ['2'] => 'Zatrucie pokarmowe'
  5. );
  6. $objawy = array(
  7. ['0'] => 'Ból brzucha',
  8. ['1'] => 'Gorączka',
  9. ['2'] => 'Omdlenia',
  10. ['3'] => 'Wymioty',
  11. ['4'] => 'Pocenie się',
  12. ['5'] => 'Osłabienie ogólne',
  13. ['6'] => 'Dreszcze'
  14. );
  15. $laczenie = array(
  16. ['0'] => array( 0, 1 ),
  17. ['1'] => array( 1, 4, 5, 6 ),
  18. ['2'] => array( 0, 2, 3 )
  19. );
Teraz jedynie musisz w pętli sprawdzać sobie objawy i dopisywać sobie znalezione choroby, przy czym jeśli objawów więcej to dopisujesz albo ilość trafionych objawów, albo ich nazwy. Jak najprościej? Przekazujesz do skryptu $objawy zawierającą identyfikatory objawów
  1. $rozpoznane = array();
  2. foreach( $laczenia AS $id_ch => $choroba ) {
  3. foreach( $objawy AS $id_objawu ) {
  4. if( in_array( $id_objawu, $choroba ) ) {
  5. $rozpoznane[ $id_ch ][] = $id_objawu;
  6. }
  7. }
  8. }
Na koniec jedynie sprawdzasz czy tablica jest pusta czy nie. Jeśli nie to jaka choroba i jaki objaw wyciągniesz już prostym podstawieniem z tablic chorób i objawów.
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.