Änderungen vom Wochenende

This commit is contained in:
aschwarz
2023-03-19 19:59:36 +01:00
parent 15ec7a0a34
commit a6850ffff8
5 changed files with 521 additions and 280 deletions

View File

@ -1,182 +1,257 @@
<?php
## INDEX gegen DB
if(!isset($_SESSION)) { session_start(); }
if (!isset($_SESSION)) {
session_start();
}
#$_SESSION['sessionid'] = session_id();
include_once '../classes/TestProjektSmarty.class_subdir.php';
#require_once("../config.inc.php");
require_once("../config/datenbankanbindung.php");
$smarty = new SmartyAdmin();
$templatename = substr(basename($_SERVER['PHP_SELF']),0,-3)."html";
$smarty = new SmartyAdmin();
$templatename = substr(basename($_SERVER['PHP_SELF']), 0, -3) . "html";
require_once "../language/german.inc.php";
$action = $_GET['action'];
if($action == ''){
$db = dbconnect();
// Datendefinition
$start = (isset($_POST['start'])) ? abs((int)$_POST['start']) : 0;
$ip = $_SERVER["REMOTE_ADDR"];
$limit = 1; // Fragen pro Seite
#############################################################################
$umid=1;
#############################################################################
####################### Speichern der Antworten #############################
if(isset($_POST['save'])){
$frage = $_POST['save'];
$result_multiple = $db->query("SELECT multiple
FROM jumi_umfragen_fragen
WHERE ufid = $frage;");
$row_multiple = $result_multiple->fetch_array();
if($row_multiple['multiple'] == '0'){
# echo "Antwort: $_POST[antwort]<br>";
}
if($row_multiple['multiple'] == '1'){
$query = "SELECT uaid
FROM jumi_umfragen_antworten
WHERE ufid = $frage
ORDER BY ufid ASC";
$result = $db->query( $query);
while ($row = $result->fetch_array()){
$antwort = $_POST['antwort_'.$row['uaid']];
if($antwort != ''){
# echo "Antwort: $antwort<br>";
}
}
if ($action == '') {
$db = dbconnect();
$datum=date("Y-m-d H:i:s");
$query_umid = $db->query("SELECT max(umid) umid
FROM jumi_umfragen
WHERE datum_von < '$datum'
AND datum_bis > '$datum'
");
$row_umid = $query_umid->fetch_array();
if($row_umid['umid'] == NULL ){
$smarty->assign('umfrage_anzeigen', "0");
}else{
$smarty->assign('umfrage_anzeigen', "1");
$smarty->assign('umfrage_umid', "$row_umid[umid]");
}
}
$rowperpage = 1;
$row1234 = 0;
// Previous Button
if(isset($_POST['but_prev'])){
$row1234 = $_POST['row'];
$row1234 -= $rowperpage;
if( $row1234 < 0 ){
$row1234 = 0;
if ($action == 'umfrage') {
$db = dbconnect();
// Datendefinition
$limit = 1; // Fragen pro Seite
#############################################################################
if (isset($_POST['umid'])) {
$umid = $_POST['umid'];
$_SESSION['umid'] = $umid;
}else{
$umid = $_SESSION['umid'];
}
####################### Abfrage, ob Umfrage schon teilgenommen ##############
####################### Speichern der Antworten #############################
if (isset($_POST['but_next'])) {
$frage = $_POST['save'];
$session = session_id();
$ip = $_SERVER["REMOTE_ADDR"];
if (!isset($_POST['freitext'])) {
$result_multiple = $db->query("SELECT multiple
FROM jumi_umfragen_fragen
WHERE ufid = $frage");
$row_multiple = $result_multiple->fetch_array();
$del1 = $db->query("DELETE FROM jumi_umfragen_ergebnisse WHERE ufid = $frage AND ip='$ip' AND session='$session'");
if ($row_multiple['multiple'] == '0') {
# echo "Antwort: $_POST[antwort]<br>";
$antwort = $_POST['antwort'];
$sql1 = $db->query("INSERT INTO jumi_umfragen_ergebnisse (ip, session, ufid, uaid)
VALUES ('$ip', '$session', '$frage', '$antwort')
");
}
if ($row_multiple['multiple'] == '1') {
$query = "SELECT uaid
FROM jumi_umfragen_antworten
WHERE ufid = $frage
ORDER BY ufid ASC";
$result = $db->query($query);
while ($row = $result->fetch_array()) {
$antwort = $_POST['antwort_' . $row['uaid']];
if ($antwort != '') {
# echo "Antwort: $antwort<br>";
$sql1 = $db->query("INSERT INTO jumi_umfragen_ergebnisse (ip, session, ufid, uaid)
VALUES ('$ip', '$session', '$frage', '$antwort')
");
}
}
}
// Next Button
if(isset($_POST['but_next'])){
$row1234 = $_POST['row'];
$allcount = $_POST['allcount'];
$val = $row1234 + $rowperpage;
if( $val < $allcount ){
$row1234 = $val;
}
}
$smarty->assign('pagination_row', $row1234);
####################### Ausgabe der Fragen #####################################
$last = floor($total/$limit)*$limit; //Sprungziel zur letzten Seite BSP abrunden(1954/13)*13 ==> 150*13=1950 Sprungmarke auf Zeile 1950, 4 DS werden angezeigt
$akt = round((($start-$limit)/$limit+2),0);
$result0 = $db->query("SELECT headline
}
if (isset($_POST['freitext'])) {
$freitext = $_POST['freitext'];
$del1 = $db->query("DELETE FROM jumi_umfragen_erg_freitext WHERE ip='$ip' AND session='$session'");
$sql1 = $db->query("INSERT INTO jumi_umfragen_erg_freitext (umid, ip, session, freitext)
VALUES ('$umid', '$ip', '$session', '$freitext')
");
}
if ($_POST['exit'] == '1') {
$smarty->assign('umfrage_showende', "1");
}
}
$rowperpage = 1;
$row_page = 0;
// Previous Button
if (isset($_POST['but_prev'])) {
$row_page = $_POST['row'];
$row_page -= $rowperpage;
if ($row_page < 0) {
$row_page = 0;
$smarty->assign('umfrage_start0', "2");
} else {
$smarty->assign('umfrage_start0', "1");
}
}
// Next Button
if (isset($_POST['but_next'])) {
$row_page = $_POST['row'];
$allcount = $_POST['allcount'];
$val = $row_page + $rowperpage;
if ($val < $allcount) {
$row_page = $val;
}
}
$smarty->assign('pagination_row', $row_page);
####################### Ausgabe der Fragen #####################################
# $last = floor($total/$limit)*$limit; //Sprungziel zur letzten Seite BSP abrunden(1954/13)*13 ==> 150*13=1950 Sprungmarke auf Zeile 1950, 4 DS werden angezeigt
$akt = round((($row_page - $limit) / $limit + 2), 0);
$result0 = $db->query("SELECT headline, freitext
FROM jumi_umfragen
WHERE umid = $umid;");
$row0 = $result0->fetch_array();
$smarty->assign('umfrage_headline', $row0['headline']);
$result = $db->query("SELECT count(*)-1 Anz_limit, round(100/count(*)*$akt,1) progress, count(*) total
$row0 = $result0->fetch_array();
if ($row0['freitext'] == '0') {
$freitext = 0;
} else {
$freitext = 1;
}
$smarty->assign('umfrage_headline', $row0['headline']);
$result = $db->query("SELECT count(*)-1 Anz_limit, round(100/(count(*)+$freitext)*$akt,1) progress, count(*) total
FROM jumi_umfragen_fragen
WHERE umid = $umid;");
$row = $result->fetch_array();
$smarty->assign('umfrage_progress', $row['progress']);
$allcount = $row['total'];
$smarty->assign('pagination_allcount', $allcount);
#$show = ceil($total/$limit); //Seitenzahlen aufrunden
if(isset($_POST['start'])){
#echo "hier|$total|$limit|$start";
$start = ($_POST['start'] >= $total) ? $total - $limit : $start;
}else{
$start = 0;
}
#echo "$row[Anz_limit]<br>";
// Datenbankabfrage ausführen.
$query = "SELECT ufid, frage, multiple
$row = $result->fetch_array();
$smarty->assign('umfrage_progress', $row['progress']);
if ($row0['freitext'] == '0') {
$allcount = $row['total'];
} else {
$allcount = $row['total'] + $freitext;
}
$smarty->assign('pagination_allcount', $allcount);
// Zurück- und Vorblättern Buttons
if ($row_page > 0) {
$smarty->assign('umfrage_start0', "1");
} else {
$smarty->assign('umfrage_start0', "2");
}
if ($row_page + $limit < $allcount) {
$smarty->assign('umfrage_end0', "1");
} else {
$smarty->assign('umfrage_end0', "2");
}
#echo "$row[Anz_limit]<br>";
// Datenbankabfrage ausführen.
$query = "SELECT ufid, frage, multiple
FROM jumi_umfragen_fragen
WHERE umid = 1
ORDER BY ufid ASC
LIMIT ".$row1234.",1";
$result = $db->query( $query);
// Ergebnisse lesen und an den Client ausgeben
while ($row = $result->fetch_array()){
$value2 = '';
$query2 = "SELECT uaid, antwort
LIMIT " . $row_page . ",1";
$result = $db->query($query);
# Letzte Frage ggf. Freitext, wenn Ergebnis der Abfrage 0 ist und Freitext=1
if (mysqli_num_rows($result) == '0' AND $row0['freitext'] == '1') {
# Jetzt Freitext einblenden, auf letzter Seite
$smarty->assign('umfrage_showfreitext', "1");
$result_antw = $db->query("SELECT freitext
FROM jumi_umfragen_erg_freitext
WHERE umid = $umid
AND ip = '$ip'
AND session = '$session'");
$row_antw = $result_antw->fetch_array();
$smarty->assign('umfrage_value_freitext', "$row_antw[freitext]");
} else {
$smarty->assign('umfrage_showfreitext', "0");
}
// Ergebnisse lesen und an den Client ausgeben
while ($row = $result->fetch_array()) {
$value2 = '';
$query2 = "SELECT uaid, antwort
FROM jumi_umfragen_antworten
WHERE ufid = $row[ufid]
ORDER BY userorder ASC
";
$result2 = $db->query( $query2)
or die ("Cannot execute query2");
$ln2 = 0;
while ($row2 = $result2->fetch_array()){
$inner1[$ln2]['uaid'] = $row2['uaid'];
$inner1[$ln2]['antwort'] = $row2['antwort'];
$value2 = $inner1;
$ln2++;
}
$row['inner'] = $value2;
$table_data[] = $row;
}
$smarty->assign('table_data', $table_data);
#echo"<pre>";
#print_r($table_data);
#echo"</pre>";
// Zurück- und Vorblättern
if ($start > 0){
$newStart = ($start - $limit < 0) ? 0 : ($start-$limit); // wenn $start-$limit kleiner 0 dann $newstart=0 sonst $start-$limit
echo "<br>1: ".$newStart;
$smarty->assign('umfrage_start0', "1");
$smarty->assign('umfrage_start_newstart', "$newStart");
}else{
$smarty->assign('umfrage_start0', "2");
}
if ($start + $limit < $total){
$newStart = $start + $limit;
echo "<br>2: ".$newStart;
$smarty->assign('umfrage_end0', "1");
$smarty->assign('umfrage_end_newstart', "$newStart");
$smarty->assign('umfrage_end_last', "$last");
}else{
$smarty->assign('umfrage_end0', "2");
}
$result2 = $db->query($query2) or die("Cannot execute query2");
$ln2 = 0;
while ($row2 = $result2->fetch_array()) {
$session = session_id();
$ip = $_SERVER["REMOTE_ADDR"];
$result_antw = $db->query("SELECT count(*) Anz
FROM jumi_umfragen_ergebnisse
WHERE ufid = $row[ufid]
AND uaid = $row2[uaid]
AND ip = '$ip'
AND session = '$session'");
$row_antw = $result_antw->fetch_array();
if ($row_antw['Anz'] == '0') {
$selected = 0;
} else {
$selected = 1;
}
$inner1[$ln2]['selected'] = $selected;
$inner1[$ln2]['uaid'] = $row2['uaid'];
$inner1[$ln2]['antwort'] = $row2['antwort'];
$value2 = $inner1;
$ln2++;
}
$row['inner'] = $value2;
$table_data[] = $row;
}
$smarty->assign('table_data', $table_data);
#echo"<pre>";
#print_r($table_data);
#echo"</pre>";
}
$smarty->assign('action', "$action");
$smarty->display("modern/survey/$templatename");
?>
?>