Forum CDRinfo.pl

Forum CDRinfo.pl (https://forum.cdrinfo.pl/)
-   Off topic (https://forum.cdrinfo.pl/f5/)
-   -   Ankieta w PHP - nigdzie nie ma (https://forum.cdrinfo.pl/f5/ankieta-php-nigdzie-nie-ma-51735/)

Kasprzak 29.04.2005 23:56

Więc tak...
Mam plik z głosowaniem:
http://www.informatyczna.xlo.poznan.pl/ankieta.html
Kod:

<html>
<form name="ankieta" action="glosowanie.php" method="post"><br>
<b>Twoj ulubiony kolor:</b><br>
Zolty<input type="radio" name="kolor" value="zolty"><br>
Niebieski <input type="radio" name="kolor" value="niebieski"><br>
Czerwony <input type="radio" name="kolor" value="czerwony"><br>
Fioletowy <input type="radio" name="kolor" value="fioletowy"><br>
Zielony <input type="radio" name="kolor" value="zielony"><br>
<b>Plec:</b><BR>
mężczyzna <input type="radio" name="plec" value="M"><BR>
kobieta <input type="radio" name="plec" value="K"><BR>
nie wiem <input type="radio" name="nie wiem" value="?"><BR>
<input type="submit" name="dodaj" value="OK!"> </form>
</html>


No i mam plik glosowanie.php
Kod:

<?php
$polaczenie=mysql_connect('localhost','login do bazy','haslo do bazy');
if (!$polaczenie) echo ('Wystąpił błąd przy łączeniu się z bazą danych MySQL<BR>');
$stat=mysql_select_db('informatyczna',$polaczenie);
if (!$stat) echo ('Nie mogę się połączyć z wybraną bazą danych!!!<BR>');
$efekt=mysql_db_query("informatyczna","insert into kolory (niebieski,czerwony,fioletowy,zielony,plec,data) values('$niebieski','$czerwony','$fioletowy','$zielony',
'$wiek','$plec',now());");
if ($efekt) echo ('Głos oddany');
mysql_close($polaczenie);

?>

No i zobaczcie sami, jak glosuje co sie dzieje, puste pole. Nie wiem dlaczego baza utworzona jest na 100%
patrzcie:
http://www.informatyczna.xlo.poznan.pl/baza.JPG

Bartez 29.04.2005 22:43

To wyżej, to było tylko do zapisania.

A wyciąga się tak:

Kod:

<?php

// Pobieramy dane z bazy
$sql_dane = "SELECT * FROM nazwa_tabeli";
//lub tak, jezeli chcesz wyciagnac rekordy ze wzgledu na jakies kryterium
$sql_dane = "SELECT * FROM nazwa_tabeli WHERE pytanie1='1'";
//mozesz tez pogrupowac wyniki i policzyc - w tym przypadku 'ilosc' jest traktowane jak normalne pole
$sql_dane = "SELECT pytanie1, COUNT(pytanie1) AS ilosc FROM nazwa_tabeli  GROUP BY pytanie1";

$query_dane = mysql_query($sql_dane) or die(mysql_error());

//Sprawdzamy, ile rekordow zwrocilo zapytanie do bazy
$ileRekordow = mysql_num_rows($query_dane);

if($ileRekordow > 0)
{
  echo "<table>
              <tr>
                  <td>Pytanie 1</td>
                  <td>Pytanie 2</td>
                  <td>Pytanie 3</td>
            </tr>
  ";
  while($dane = mysql_fetch_array($query_dane))
  {
        //w petli wyswietlamy interesujace nas pola z bazy
        //do kazdego pola dobiera sie przez $dane['nazwa_pola'], czyli np. $dane['pytanie1']

        echo "
          <tr>
                <td>".$dane['pytanie1']."</td>
                <td>".$dane['pytanie2']."</td>
                <td>".$dane['pytanie3']."</td>
          </tr>
              ";
  }

}

?>

Jak poprzednio, mogą być błędy :) Jak coś, to pisz, a postaram się pomóc. Tylko jakieś konkretne pytania plz :) Resztę polecam manuala do mysql i www.php.net do php :)

Kasprzak 29.04.2005 22:15

MySQL będzie.
A znasz cos prostszego np. na plikach txt, albo ogolnie na plikach.
Wiec tak...no polaczyc sie z baza

utworzenie polaczenia:
$db = mysql_connect (serwer, użytkownik, hasło);
mysql_select_db ("jakaś_baza");

tzn zapisac daloby rade, ale jak np. wydobyc z bazy do tabelek w htmlu?
Nie kumam tego - sorka pewnie to podstawy ale nie łapie

Bartez 29.04.2005 19:24

Jeżeli masz możliwość wykorzystania bazy MySQL lub PostgreSQL lub czegoś podobnego, to żaden problem.

Jak zrobić formularz mam nadzieję, że wiesz.
Kod:

<form action="skrypt.php" method="post">
Pytanie 1:
<input type="radio" name="pytanie1" value="1"> Odp1 <br />
<input type="radio" name="pytanie1" value="2"> Odp2 <br />
...
<input type="radio" name="pytanie2" value="1">
itd...
<input type="submit" name="wyslij" value="Wyślij">
</form>

Wszystko można wpakować do tabeli, żeby było ładnie sformatowane, ale myślę, że to nie problem.

W pliku skrypt.php:
Kod:

if(isset($_POST['wyslij']))
{
    // Do danych wyslanych przez formularz dobierasz sie tak: $_POST['pytanie1']

    // Zapis do bazy danych - jak utworzyć połączenie i samą bazę - poczytaj :)
$sql = "INSERT INTO nazwa_bazy (pytanie1, pytanie2, pytanie3) VALUES('{$_POST['pytanie1']}', '{$_POST['pytanie2']}', '{$_POST['pytanie3']}')";
$query = mysql_query($sql) or die (mysql_error());
}

Tym sposobem będziesz miał dane z formularza w bazie danych :) Mogą być błędy, bo piszę bez sprawdzania (Zend Studio rules :)), ale tak to mniej więcej wygląda :) Oczywiście dodać do tego można jeszcze sprawdzanie, czy wszystkie pola zostały wypełnione, ale na początek tyle powinno Ci wystarczyć ;)

Kasprzak 29.04.2005 19:16

dzieki za szybka odpowiedz.
Gotowe skrypty tez znalazlem - fakt do ankiet mało, dużo jest takich typowych sond.
PS. Głownie chce to sam napisac, jakies wskazowki, ale moze z gotowca cos sie naucze.

gallus 29.04.2005 19:14

hmm, ja się nie znam i nie próbowałem tychskryptów, ale moze tutaj coś znajdziesz: :)
http://www.hotscripts.pl/PHP/Skrypty_i_komponenty/Quizy
http://www.hotscripts.pl/PHP/Skrypty...onenty/Sondaze

Kasprzak 29.04.2005 19:00

Ankieta w PHP - nigdzie nie ma
 
Witam!
Potrzebuję zrobić ankietę w PHP Tak zeby ona zbierała informację, przekazywala je i gromadzila na jednej stronie
Moglaby wygladac tak http://www.bet.pl/ankieta.php

Kumpel zrobil z kolei tak : http://www.icpnet.pl/~alcoholic/anki...p?user=grzechu

Wyglada dobrze, ale nie chce mi dac kodu :D
Takze prosilbym o pomoc w tej sprawie.

Utworzenie formularza z polami radio to pikuś, chodzi mi o przekazanie do pliku (czyli skrypt php z zapisem,odczytem) i potem odtworzenie tego w ramkach jak na w/w stronie.

Czy ktos orientuje sie jak to zrobic, bo wiem ze jak ktos biegle programuje a nie tak jak ja dorywczo to takie cos dla niego to no - problem.

Z gory dzieki,
pozdrawiam!


Wszystkie czasy w strefie CET. Aktualna godzina: 21:02.

Powered by vBulletin® Version 3.9.0 LTS
Copyright ©2000 - 2026, vBulletin Solutions Inc.