26-01-2013, 20:22
Witam wszystkich,
Prosiłbym o poradę co mam zmienić, żeby dane z ankiety się zapisywały w bazie danych a następnie zapisane dane wyświetlały z bazy danych jako statystyki?
Formularz z ankietą wygląda tak:
W bazie danych mam następujące tabelki:
W 1 tabeli: odpowiedzi_ank_nr_2 zapisywane są odpowiedzi 1, i 2 z i odpowiedzi z drugiej tabeli dla pytania nr 5:
W 2 tabeli: odp_pytanie_5 zapisywane są odpowiedzi dla pytania 5:
Kod PHP z pliku zapis_ankiety.php, który zapisuje dane z ankiety do bazy danych wygląda następująco:
W pliku statystyka_ankiety.php mam statystyki dot. odpowiedzi, gdzie pojawiają się odpowiedzi do pytań,a pod nimi procenty z odpowiedzi i dalej pod nimi słupki obrazujące procent odpowiedzi w stosunku do wszystkich odpowiedzi dla danego pytania z wypełnionych ankiet.
Ten cały plik nie działa niestety, jest błąd parsowania.
Prosiłbym o poradę co mam zmienić, żeby dane z ankiety się zapisywały w bazie danych a następnie zapisane dane wyświetlały z bazy danych jako statystyki?
Formularz z ankietą wygląda tak:
Kod:
<form action="zapis_ankiety.php" method="post">
<p class="pytania">1. Twoja sieć komórkowa (można wybrać jedną opcję):</p>
<input type="radio" class="radio" name="odp_pytanie_1" value="Orange" id="pyt_2_1">Orange
<input type="radio" class="radio" name="odp_pytanie_1" value="T-mobile" id="pyt_2_2">T-Mobile
<p class="pytania">2. Ile masz dzieci?</p>
<select name="odp_pytanie_2" id="pyt_2" class="input">
<option value="">Proszę wybrać...</option>
<option value="0">0</option>
<option value="1" selected="selected">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<p class="pytania">5. Jak spędzasz wolny czas?:<br><span class="info"> (wybierz co najmniej jedną odpowiedź)</span></p>
<input type="checkbox" class="check" name="odp_pytanie_5[]" value="Siedze przed komputerem" id="siedze_przed_komputerem"><label for="id_siedze_przed_komputerem">Siedzę przed komputerem</label>
<br>
<input type="checkbox" class="check" name="odp_pytanie_5[]" value="Oglądam TV" id="ogladam_TV"><label for="id_ogladam_TV">Oglądam TV</label><br>
<input type="checkbox" class="check" name="odp_pytanie_5[]" value="Czytam książki" id="czytam_ksiazki" checked="checked"><label for="id_czytam_ksiazki">Czytam książki</label><br>
<input type="checkbox" class="check" name="odp_pytanie_5[]" value="Słucham muzyki" id="slucham_muzyki"><label for="id_slucham_muzyki">Słucham muzyki</label><br>
<input type="submit" value="Zapisz" class="zapisz"> <a href="statystyka_ankiety.php" class="link_statystyka">Statystyka</a>
</form>
W bazie danych mam następujące tabelki:
W 1 tabeli: odpowiedzi_ank_nr_2 zapisywane są odpowiedzi 1, i 2 z i odpowiedzi z drugiej tabeli dla pytania nr 5:
Kod:
id_odpowiedzi, odp_pytanie_1, odp_pytanie_2, id_odp_pyt_5
W 2 tabeli: odp_pytanie_5 zapisywane są odpowiedzi dla pytania 5:
Kod:
id_pytanie_5, id_odp_pytanie_5, pytanie_5
Kod PHP z pliku zapis_ankiety.php, który zapisuje dane z ankiety do bazy danych wygląda następująco:
Kod PHP:
<?php
include("poczatek_strony.php");
echo "Odpowiedź na pytanie 1:";
echo $_POST['odp_pytanie_1'];
echo "Odpowiedź na pytanie 2:";
echo $_POST['odp_pytanie_2'];
echo "Odpowiedź na pytanie 5:";
if(isset($_POST['odp_pytanie_5'])==true) //dla checkboxa nr 1
{
$odp_pytanie_5='Siedzę przed komputerem ';
}
if(isset($_POST['odp_pytanie_5'])==true) //dla checkboxa nr 2
{
$odp_pytanie_5='Oglądam TV ';
}
if(isset($_POST['odp_pytanie_5'])==true) //dla checkboxa nr 3
{
$odp_pytanie_5='Czytam książki ';
}
if(isset($_POST['odp_pytanie_5'])==true) //dla checkboxa nr 4
{
$odp_pytanie_5='Słucham muzyki ';
}
mysql_connect("localhost","root","haslo_do_bd");
mysql_select_db("ankieta_nr_2");
mysql_query("INSERT INTO odpowiedzi_ank_nr_2(odp_pytanie_1,odp_pytanie_2,data_dodania) VALUES ('{$_POST['odp_pytanie_1']}','{$_POST['odp_pytanie_2']}',NOW())");
mysql_query("INSERT INTO odp_pytanie_5(odp_pytanie_5) VALUES ('{$_POST['odp_pytanie_5']}')");
W pliku statystyka_ankiety.php mam statystyki dot. odpowiedzi, gdzie pojawiają się odpowiedzi do pytań,a pod nimi procenty z odpowiedzi i dalej pod nimi słupki obrazujące procent odpowiedzi w stosunku do wszystkich odpowiedzi dla danego pytania z wypełnionych ankiet.
Ten cały plik nie działa niestety, jest błąd parsowania.
Kod PHP:
<?php
mysql_connect("localhost","root","haslo_do_db");
mysql_select_db("ankieta_nr_2");
cho "Ankieta wykonana w dniu: ";
echo date('d.m.Y');
echo " o godzinie: ";
echo date('H.m');
echo "<br><br>";
//Pytanie 1
$wyniki1=mysql_query("SELECT * FROM odpowiedzi_ank_nr_2");
$odp_orange=0;
$odp_tmobile=0;
$lacznie=0;
while($odpowiedzi=mysql_fetch_assoc($wyniki1))
{
if($odpowiedzi['odp_pytanie_1']=='Orange')
$odp_orange++;
if($odpowiedzi['odp_pytanie_1']=='T-mobile')
$odp_tmobile++;
$lacznie++;
}
$procent_orange=(($odp_orange*100)/$lacznie);
$procent_tmobile=(($odp_tmobile*100)/$lacznie);
echo "<p>1. Twoja sieć komórkowa:<br>";
echo "<div style='float: left; width: 70px; text-align: center; border: 1px solid white;'>Orange<br><br><div style='width: 40px; background-color: blue; margin-left: 15px;height: {$procent_orange}%;'></div>$procent_orange %</div>";
echo "<div style='float: left; width: 70px; text-align: center; border: 1px solid white;'>T-mobile<br><br><div style='height: 60px; width: 40px; background-color: blue; margin-left: 15px; height: {$procent_tmobile}%;'></div>$procent_tmobile %</div>";
//Pytanie 2
echo "<p>2. Ile masz dzieci?:<br>";
$wyniki2=mysql_query("SELECT * FROM odpowiedzi_ank_nr_2");
$odp_0=0;
$odp_1=0;
$odp_2=0;
$odp_3=0;
$lacznie=0;
while($odpowiedzi=mysql_fetch_assoc($wyniki2))
{
if($odpowiedzi['odp_pytanie_2']=='0')
$odp_0++;
if($odpowiedzi['odp_pytanie_2']=='1')
$odp_1++;
if($odpowiedzi['odp_pytanie_2']=='2')
$odp_2++;
if($odpowiedzi['odp_pytanie_2']=='3')
$odp_3++;
$lacznie++;
}
$procent_odp_0=floor(($odp_0*100)/$lacznie);
$procent_odp_1=floor(($odp_1*100)/$lacznie);
$procent_odp_2=floor(($odp_2*100)/$lacznie);
$procent_odp_3=floor(($odp_3*100)/$lacznie);
echo "<div style='float: left; width: 70px; text-align: center; border: 1px solid white;'>Bez dzieci<br><br><div style='width: 40px; background-color: red; margin-left: 15px; height: {$procent_odp_0}%;'></div>$procent_odp_0 %</div>";
echo "<div style='float: left; width: 70px; text-align: center; border: 1px solid white;'>Jedno<br><br><div style='width: 40px; background-color: red; margin-left: 15px; height: {$procent_odp_1}%;'></div>$procent_odp_1 %</div>";
echo "<div style='float: left; width: 70px; text-align: center; border: 1px solid white;'>Dwoje<br><br><div style='width: 40px; background-color: red; margin-left: 15px; height: {$procent_odp_2}%;'></div>$procent_odp_2 %</div>";
echo "<div style='float: left; width: 70px; text-align: center; border: 1px solid white;'>Troje<br><br><div style='width: 40px; background-color: red; margin-left: 15px; height: {$procent_odp_3}%;'></div>$procent_odp_3 %</div>";
//Pytanie 5
echo "<p>5. Jak spedzasz wolny czas? (wybierz co najmniej jedną odpowiedź):<br>";
$wyniki5=mysql_query("SELECT * FROM odp_pytanie_5");
$odp_siedze_przed_komputerem=0;
$odp_ogladam_TV=0;
$odp_czytam_ksiazki=0;
$odp_slucham_muzyki=0;
$lacznie=0;
while($odpowiedzi=mysql_fetch_assoc($wyniki5))
{
if($odpowiedzi['odp_pytanie_5_1']=='Siedzę przed komputerem')
$odp_siedze_przed_komputerem++;
if($odpowiedzi['odp_pytanie_5_2']=='Oglądam TV')
$odp_ogladam_TV++;
if($odpowiedzi['odp_pytanie_5_3']=='Czytam książki')
$odp_czytam_ksiazki++;
if($odpowiedzi['odp_pytanie_5_4']=='Słucham muzyki')
$odp_slucham_muzyki++;
$lacznie++;
}
$procent_odp_siedze_przed_komputerem=floor(($odp_siedze_przed_komputerem*100)/$lacznie);
$procent_odp_ogladam_TV=floor(($odp_ogladam_TV*100)/$lacznie);
$procent_odp_czytam_ksiazki=floor(($odp_czytam_ksiazki*100)/$lacznie);
$procent_odp_slucham_muzyki=floor(($odp_slucham_muzyki*100)/$lacznie);
if(isset($_GET['odp_pytanie_5_1'])==true)
{
echo "<div style='float: left; width: 70px; text-align: center; border: 1px solid white;'>Siedzę przed komputerem<br><br><br><div style='height: 60px; width: 40px; background-color: yellow; margin-left: 15px; height: {$procent_odp_siedze_przed_komputerem}%;'></div>$procent_odp_siedze_przed_komputerem % </div>";
}
if(isset($_GET['odp_pytanie_5_2'])==true)
{
echo "<div style='float: left; width: 70px; text-align: center; border: 1px solid white;'>Oglądam TV<br><br><br><div style='height: 60px; width: 40px; background-color: yellow; margin-left: 15px; height: {$procent_odp_ogladam_TV}%;'></div>$procent_odp_ogladam_TV % </div>";
}
if(isset($_GET['odp_pytanie_5_3'])==true)
{
echo "<div style='float: left; width: 70px; text-align: center; border: 1px solid white;'>Czytam skiążki<br><br><br><div style='height: 60px; width: 40px; background-color: yellow; margin-left: 15px; height: {$procent_odp_czytam_ksiazki}%;'></div>$procent_odp_czytam_ksiazki % </div>";
}
if(isset($_GET['odp_pytanie_5_4'])==true)
{
echo "<div style='float: left; width: 70px; text-align: center; border: 1px solid white;'>Słucham muzyki<br><br><br><div style='height: 60px; width: 40px; background-color: yellow; margin-left: 15px; height: {$procent_odp_slucham_muzyki}%;'></div>$procent_odp_slucham_muzyki % </div>";
}
?>
Jeśli moglibyście prosiłbym o napisanie gdzie jest błąd i dlaczego mi te skrypty nie działają.
Za pomoc będę bardzo wdzięczny.
Pozdrawiam,
martinprz