Antworten: SQL-Ergebnis holen, nicht nur binden.

This commit is contained in:
Kai Blaschke 2019-06-04 14:52:25 +00:00
parent 00ed4af18b
commit fd248cc526

View File

@ -1,127 +1,131 @@
<?php <?php
/* /*
* Copyright (C) 2001 Kai Blaschke <webmaster@thw-theorie.de> * Copyright (C) 2001 Kai Blaschke <webmaster@thw-theorie.de>
* *
* The included 'THW Thema' templates, logos and the Q&A catalog are protected * The included 'THW Thema' templates, logos and the Q&A catalog are protected
* by copyright laws, and must not be used without the written permission * by copyright laws, and must not be used without the written permission
* of the * of the
* *
* Bundesanstalt Technisches Hilfswerk * Bundesanstalt Technisches Hilfswerk
* Provinzialstraße 93 * Provinzialstra<EFBFBD>e 93
* D-53127 Bonn * D-53127 Bonn
* Germany * Germany
* E-Mail: redaktion@thw.de * E-Mail: redaktion@thw.de
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
/* /*
Auflösungen zu allen Fragen Aufl<EFBFBD>sungen zu allen Fragen
*/ */
$tpl->addVars('navAntworten', 'current'); $tpl->addVars('navAntworten', 'current');
$katalog = -1; $katalog = -1;
if (isset($_REQUEST['katalog'])) { if (isset($_REQUEST['katalog'])) {
$katalog = intval($_REQUEST['katalog']); $katalog = intval($_REQUEST['katalog']);
} }
$abschnitte = getTopics(); $abschnitte = getTopics();
foreach ($abschnitte as $nr => $description) { foreach ($abschnitte as $nr => $description) {
$tpl->addVars(Array( $tpl->addVars(Array(
'abschnittNr' => $nr, 'abschnittNr' => $nr,
'abschnittName' => htmlspecialchars($description), 'abschnittName' => htmlspecialchars($description),
'navAntwortenAbschnitt' => ($katalog == $nr) ? 'current':'' 'navAntwortenAbschnitt' => ($katalog == $nr) ? 'current':''
)); ));
$tpl->parseBlock('page-body', 'NavAntworten', 'Sublinks', TRUE); $tpl->parseBlock('page-body', 'NavAntworten', 'Sublinks', TRUE);
} }
if (isset($_SESSION['zufallsfragen']) || isset($_SESSION['bogen'])) { if (isset($_SESSION['zufallsfragen']) || isset($_SESSION['bogen'])) {
if (isset($_GET['clear']) && intval($_GET['clear']) == '1') { if (isset($_GET['clear']) && intval($_GET['clear']) == '1') {
unset($_SESSION['bogen']); unset($_SESSION['bogen']);
unset($_SESSION['zufallsfragen']); unset($_SESSION['zufallsfragen']);
unset($_SESSION['frage_nr']); unset($_SESSION['frage_nr']);
unset($_SESSION['fragen_cnt']); unset($_SESSION['fragen_cnt']);
unset($_SESSION['zufallstats']); unset($_SESSION['zufallstats']);
unset($_SESSION['bogen']); unset($_SESSION['bogen']);
} }
else { else {
$tpl->addTemplates(Array('content' => 'aufloesung-error')); $tpl->addTemplates(Array('content' => 'aufloesung-error'));
return; return;
} }
} }
if ($katalog > 0) { if ($katalog > 0) {
$selectedNr = NULL;
$stmt = $GLOBALS['db']->prepare('SELECT `Nr`,`Beschreibung` FROM `abschnitte` WHERE `Nr` = ? AND `Jahr` = ?'); $selectedDescription = NULL;
$stmt->bind_param('ii', $katalog, $_SESSION['jahr']);
$stmt->execute(); $stmt = $GLOBALS['db']->prepare('SELECT `Nr`,`Beschreibung` FROM `abschnitte` WHERE `Nr` = ? AND `Jahr` = ?');
$stmt->bind_result($nr, $description); $stmt->bind_param('ii', $katalog, $_SESSION['jahr']);
$stmt->execute();
addBreadcrumb($_REQUEST['show'].'&katalog=' . $nr, $description); $stmt->bind_result($selectedNr, $selectedDescription);
$stmt->fetch();
$tpl->addTemplates(Array(
'content' => 'aufloesung-antworten' addBreadcrumb($_REQUEST['show'].'&katalog=' . $selectedNr, $selectedDescription);
));
$tpl->addTemplates(Array(
$tpl->addVars(Array( 'content' => 'aufloesung-antworten'
'abschnittNr' => $nr, ));
'abschnittName' => htmlspecialchars($description)
)); $tpl->addVars(Array(
$stmt->close(); 'abschnittNr' => $selectedNr,
'abschnittName' => htmlspecialchars($selectedDescription)
$stmt = $GLOBALS['db']->prepare('SELECT * FROM `fragen` WHERE `Abschnitt` = ? AND `Jahr` = ? ORDER BY Abschnitt,Nr ASC'); ));
$stmt->bind_param('ii', $katalog, $_SESSION['jahr']);
$stmt->execute(); $stmt->close();
$questions = $stmt->get_result();
$stmt = $GLOBALS['db']->prepare('SELECT * FROM `fragen` WHERE `Abschnitt` = ? AND `Jahr` = ? ORDER BY Abschnitt,Nr ASC');
$I = 1; $stmt->bind_param('ii', $katalog, $_SESSION['jahr']);
$stmt->execute();
while ($question = $questions->fetch_array(MYSQLI_ASSOC)) { $questions = $stmt->get_result();
ShowAnswer($question);
$tpl->parseBlock('content', 'Antworten', 'Row', TRUE, TRUE); $I = 1;
if ($I%10==0) {
$tpl->parseBlock('content', 'Antworten', 'Topline', TRUE); while ($question = $questions->fetch_array(MYSQLI_ASSOC)) {
} ShowAnswer($question);
$I++; $tpl->parseBlock('content', 'Antworten', 'Row', TRUE, TRUE);
} if ($I%10==0) {
$questions->close(); $tpl->parseBlock('content', 'Antworten', 'Topline', TRUE);
$stmt->close(); }
} $I++;
else { }
$questions->close();
$tpl->addTemplates('content', 'aufloesung-abschnitte'); $stmt->close();
}
$stmt = $GLOBALS['db']->prepare('SELECT `Nr`,`Beschreibung` FROM `abschnitte` WHERE `Jahr` = ? ORDER BY Nr ASC'); else {
$stmt->bind_param('i', $_SESSION['jahr']);
$stmt->execute(); $tpl->addTemplates('content', 'aufloesung-abschnitte');
$stmt->bind_result($nr, $description);
$stmt = $GLOBALS['db']->prepare('SELECT `Nr`,`Beschreibung` FROM `abschnitte` WHERE `Jahr` = ? ORDER BY Nr ASC');
while ($stmt->fetch()) { $stmt->bind_param('i', $_SESSION['jahr']);
$tpl->addVars(Array( $stmt->execute();
'abschnittNr' => $nr, $stmt->bind_result($nr, $description);
'abschnittName' => $description
)); while ($stmt->fetch()) {
$tpl->addVars(Array(
$tpl->parseBlock('content', 'Abschnitte', 'Row', TRUE); 'abschnittNr' => $nr,
} 'abschnittName' => $description
));
}
?> $tpl->parseBlock('content', 'Abschnitte', 'Row', TRUE);
}
}
?>