Autor Zpráva
student
Profil *
Dobrý den dostal jsem za úkol z tohoto anketního systému http://lab.uzlabina.cz/~zoubema/ vytvořit skript na zápis odpovědí do databáze předpokládám do nějaké další tabulky, víc mi to nebylo specifikováno mohl by mi někdo prosím pomoct s tímto skriptem a vytvoření tabulky kam se zapisovali tyto odpovědi. Systém fungujedokonce se mi už podařilo zprovoznit výpis zadanejch hodnot teď tedy potřebuju jen dodělat zápis. Předem díky moc za pomoc jinak ještě přidávám skript jak to běží a SQL jak mám vytvořené tabulky v DB

Databáze:

CREATE TABLE IF NOT EXISTS `data` (
  `id` int(4) NOT NULL AUTO_INCREMENT,
  `id_otazky` int(4) NOT NULL,
  `id_odpovedi` int(4) NOT NULL,
  `text` text COLLATE utf8_czech_ci NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci AUTO_INCREMENT=1 ;


CREATE TABLE IF NOT EXISTS `odpovedi` (
  `id` int(4) NOT NULL AUTO_INCREMENT,
  `odpoved` text COLLATE utf8_czech_ci NOT NULL,
  `id_otazky` int(4) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci AUTO_INCREMENT=6 ;




CREATE TABLE IF NOT EXISTS `seznam_otazek` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `otazka` text COLLATE utf8_czech_ci NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci AUTO_INCREMENT=4 ;
INSERT INTO `seznam_otazek` (`id`, `otazka`) VALUES
(1, 'Byl předmět pro Vás přínosem?. '),
(2, 'Byly studijní materiály kvalitní? '),
(3, 'Jak hodnotíte obtížnost?'),
(4, 'Můj vztah k předmětu vyjadřuje'),
(5, 'Přednášející (vyučovací) byl vstřícný'),
(6, 'Která část výuky vám činila největší problémy'),
(7, 'Co Vám v předmětu chybělo? '),
(8, 'Špatné výsledky byly dány:'),
(9, 'Předmět mě nebavil:');

INSERT INTO `odpovedi` (`id`, `odpoved`, `id_otazky`) VALUES
(1, 'příliš vysoká', 3),
(2, 'trochu vysoká ', 3),
(3, 'Přiměřená', 3),
(4, 'Mohlo by to být těžší ', 3),
(5, 'zajímavé téma dobře odvykládané', 4),
(6, 'zajímavé téma, ale špatně odvykládané', 4),
(7, 'nezajímavé téma, ale dobře odvykládané', 4),
(8, 'nezajímavé téma špatně odvykládané', 4),
(9, 'ani jedna z těchto variant, neumím se rozhodnout', 4),
(10, 'rozhodně ano', 5),
(11, 'spíše ano', 5),
(12, 'spíše ne', 5),
(13, 'rozhodně ne', 5),
(14, 'nevím, neumím se vyjádřit', 5),
(15, 'neporozuměním výkladu', 8),
(16, 'mým nezájmem', 8),
(17, 'neochotou vyučujícího poradit', 8),
(18, 'neschopností vyučujícího poradit', 8),
(19, 'měl jsem výsledky dobré', 8),
(20, 'kvůli jeho náplni', 9),
(21, 'kvůli celkové atmosféře ve škole', 9),
(22, 'kvůli přístupu vyučujícího', 9),
(23, 'jiný důvod', 9),
(24, 'předmět mě bavil', 9);


Index:
 <body>
  <? require "db.php"?>
  <?$q="select * from seznam_otazek";?>
  <?$vysledek=mysql_query($q);?>
  <form action="http://vyuka.lmsoft.cz/materialy/test_form.php" method="post">
  <ol>
  <?while ($zaznam = mysql_fetch_array($vysledek)):?>
   <li>
    <dl>
      <dt><?=$zaznam["otazka"]?></dt>
          <dd>
            <?$q2="select * from odpovedi where id_otazky=".$zaznam["id"];?>
            <?$vysledek2=mysql_query($q2);?>
            <? if (!mysql_num_rows($vysledek2)):?>
            <textarea name="otazka[]"></textarea>
            <? else:?>
            <select name="otazka[]">
            <? while ($zaznam2 = mysql_fetch_array($vysledek2)):?>
              <option value="<?=$zaznam2["id"]?>">
              <?=$zaznam2["odpoved"]?></option>
            <? endwhile ?>
            </select>
            <?endif?>
          </dd>
    </dl>
   </li>
			
  <? endwhile ?>
  </ol> 
  <input type="submit" name="odesli" Value="uložit">
  </form>
   
   
    
  </body>
Majkl578
Profil
Na výsledky bych udělal asi 2 tabulky.
1.:
results
  id INT, PRIMARY KEY, auto_increment
  ipAddress varchar(40)
  time DATETIME
případně další užitečná data k sadě odpovědí;

2.:
results_answers:
  id INT, PRIMARY KEY, auto_increment
  questionId INT, cizí klíč na seznam_otazek.id
  answerId INT, cizí klíč na odpovedi.id

To by ti mělo stačit. K uložení použij standardně INSERT INTO, prvně do tabulky results, následně všechny odpovědi do results_answers.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0