Twoje PC  
Zarejestruj się na Twoje PC
TwojePC.pl | PC | Komputery, nowe technologie, recenzje, testy
B O A R D
   » Board
 » Zadaj pytanie
 » Archiwum
 » Szukaj
 » Stylizacja

 
M E N U
  0
 » Nowości
0
 » Archiwum
0
 » Recenzje / Testy
0
 » Board
0
 » Rejestracja
0
0
 
Szukaj @ TwojePC
 

w Newsach i na Boardzie
 
OBECNI NA TPC
 
 » Martens 04:21
 » selves 03:38
 » Bonifacyz 03:06
 » piszczyk 01:43
 » Chavez 01:26
 » Chrisu 01:25
 » metacom 01:21
 » BoloX 01:16
 » Dzban 01:02
 » Qjanusz 00:53
 » Irys 00:51
 » ulan 00:41
 » RaPToRR 00:22
 » zibi13 00:10

 Dzisiaj przeczytano
 36867 postów,
 wczoraj 25433

 Szybkie ładowanie
 jest:
włączone.

 
ccc
TwojePC.pl © 2001 - 2025
A R C H I W A L N A   W I A D O M O Ś Ć
    

[PHP] Pytanie do programistów , Raphi 31/03/08 14:11
Hej, mam takie zadanie i potrzebuje wskazowki jak to najlepiej zrobic w PHP.
Jest ankieta z 5 pytaniami i odpowiedziami TAK i NIE.
Na podstawie odpowiedzi generowanych jest 24 rozne raporty, np.
odpowiedz na pytanie 1 = 0
odpowiedz na pytanie 2 = 1
odpowiedz na pytanie 3 = 1
odpowiedz na pytanie 4 = 1
odpowiedz na pytanie 5 = 0

Zalozenie jest takie, ze musza byc wypelnione wszystkie pola.

Ja wymyslilem ze zrobie tak:
if (empty($_POST['pytanie1']) || empty($_POST['pytanie2']) || empty($_POST['pytanie3']) || empty($_POST['pytanie4']) || empty($_POST['pytanie5'])) {

echo "ODPOWIEDZ NA WSZYSTKIE PYTANIA";
}
else
{
if ($pytanie1==0 && $pytanie2==1 && $pytanie3==1 && $pytanie4==1 && $pytanie5==0) { echo $profil1; }

if ($pytanie1==1 && $pytanie2==0 && $pytanie3==0 && $pytanie4==0 && $pytanie5==1) { echo $profil2; }

itd...

}

Po pierwsze nie dziala mi pierwszy warunek ze sprawdzaniem czy empty czy nie empty (nazwy formularzy sie zgadzaja i generalnie wszystko sie zgadza) - po prostu kiedy odpowiadam na wszystkie pytania to nadal nie mam odpowiedzi.

Czy jest na to jakis sprytniejszy sposob - bo ja to zaprogramowalem jak to sie mowi "po babsku" nie ujmujac wybitnym programistkom :)

To przeciez nie moze byc trudne!

Najlepsze pomysły przychodzą
zawsze w najdziwniejszych
miejscach. http://hoonda.pl

  1. po co php? , myszon 31/03/08 14:23
    w HTMLu robisz tzw. radio buttons "Tak" i "Nie" oddzielnie dla każdego pytania.

    1. oczywiscie ze tak , Raphi 31/03/08 14:28
      ale potem maja sie wyswietlac odpowiedzi - jest ich 24 rozne w zaleznosci od tego jaki zestaw odpowiedzi zostal zaznaczony, np.
      1-1-1-0-0
      1-1-0-1-0
      0-1-0-0-0

      i tak 24 razy...

      Najlepsze pomysły przychodzą
      zawsze w najdziwniejszych
      miejscach. http://hoonda.pl

      1. ladnie bitowo wyglada .) , Deus ex machine 31/03/08 15:02
        zrob na formie i checkbox, pozniej posklejaj wartosci $_POST w zalozonej kolejnosci, tak zebys mial zapisane bitowo i na koniec switchem.
        Zkladam, ze checkbox maja nazwy odp1 - odp5

        $bit = '';
        for ($i = 0; $i < 5 ; $i++) if ( isset( $_POST['odp'.$i] ) && ( $_POST['odp'.$i] == 'on' ) ) $bit .= '1'; else $bit .= '0';
        switch ( bindec($bit)) {
        case 1:
        break
        /*
        i tu dalej sobie piszesz jakie maja byc odpowiedzi na zalozone wartosci
        */
        }

        "Uti non Abuti"

        1. tak, to tez dobre :) , Raphi 31/03/08 15:05
          Wlasnie o cos takiego mi chodzilo ;)

          Przy okazji... ile trzeba programowac aby umiec takie rzeczy?
          Bo nie wiem czy mi zycia starczy ;)

          Najlepsze pomysły przychodzą
          zawsze w najdziwniejszych
          miejscach. http://hoonda.pl

          1. do programowania , Deus ex machine 31/03/08 15:51
            podstawa to myslenie, a myslec wiekszosc potrafi .) pozniej juz tylko poznajesz knify z zadanego jezyka. A zycia spokojnie starczy. Ja sie tym bawie juz od poznej podstawowki, czyli jakies 17 lat ,)

            "Uti non Abuti"

  2. hmm , akustyk 31/03/08 14:36
    $test = TRUE;
    for($i=1;$i<=5;$i++){ if (!isset($_POST["pytanie" . $i])) $test = FALSE; };

    if (!$test) /* nieodpowiedziano na co najmniej jedno z pytanpytania */ ;

    echo "odpowiedzi: ";
    for($i=1;$i<=5;$i++) echo "pyt" . $i . ": " $_POST["pytanie" . $i] . " ";

    http://akustyk.magma-net.pl

    1. :-) , Raphi 31/03/08 15:03
      Powiem tylko tyle... genialne w swej prostocie :) Dzieki!

      Najlepsze pomysły przychodzą
      zawsze w najdziwniejszych
      miejscach. http://hoonda.pl

    2. heh , Raphi 31/03/08 15:09
      Zapomniales kropeczki w ostatniej linii przed $_POST ;D

      Najlepsze pomysły przychodzą
      zawsze w najdziwniejszych
      miejscach. http://hoonda.pl

    3. mozna , WooKy 31/03/08 16:20
      jeszcze troszke optymalniej - nie robic zmiennej $test, i dac w forze break;
      pozniej tylko sprawdzic czy licznik jest mniejszy od 5 -> error.

      bitnoi.se

  3. z warunkiem if ok=true, ok=false , TheW@rrior 31/03/08 14:38
    Maly przyklad kodu ktory dziala z kontrola wprowadzonych danych:
    if($tytul && $rodzaj && $opis && $cena && $czas && $data && $godzina) $ok=TRUE; else $ok=FALSE;
    if(!$tytul || !$rodzaj || !$opis || !$cena || !$czas || !$data || !$godzina) //brakuje kompletu danych
    if($tytul || $rodzaj || $opis || $cena || $czas || $data || $godzina)
    echo "<p style=\"color: red;\">Musisz wypełnić wszystkie pola</p>";

    //Pozniej dorzucasz tylko
    if($ok)
    {
    //tu piszesz instrukcje jaka ma byc wykonana po sprawdzeniu wszystkich pol
    }

    People who fear free software are those
    whose products are worth even less

    1. ten przyklad jest super dla formularzy tekstowych , Raphi 31/03/08 15:07
      I tez mi sie przyda przy innych okazjach, ale ten konkretny przypadek z pytanie1-5 to koledzy pomogli z "for"ami ;)

      Najlepsze pomysły przychodzą
      zawsze w najdziwniejszych
      miejscach. http://hoonda.pl

    
All rights reserved ® Copyright and Design 2001-2025, TwojePC.PL