12-08-2022
This commit is contained in:
186
view_bdd.php
186
view_bdd.php
@@ -1,3 +1,4 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
@@ -18,6 +19,9 @@
|
||||
header("location:admin/login.php");
|
||||
exit;
|
||||
}
|
||||
echo "_SESSION<br>";
|
||||
_pr($_SESSION);
|
||||
//echo $_SESSION['query'];
|
||||
|
||||
$domain = 'sentier';
|
||||
localize($domain);
|
||||
@@ -36,11 +40,24 @@
|
||||
$base = 'db_photo.sqlite3';
|
||||
$perpage = 20;
|
||||
|
||||
echo "<a href='close.php'> close session </a>";
|
||||
|
||||
if (!isset($_GET['page'])) $page = 1;
|
||||
else $page = intval($_GET['page']);
|
||||
|
||||
//echo $req;
|
||||
echo "_POST<br>";
|
||||
_pr($_POST);
|
||||
if (!empty($_POST)) {
|
||||
$_SESSION['query'] = $_POST;
|
||||
echo "post query non vide";
|
||||
echo gettype($_POST);
|
||||
echo gettype($_SESSION['query']);
|
||||
}
|
||||
echo "_SESSION['query']<br>";
|
||||
_pr($_SESSION['query']);
|
||||
$gps = (isset($_SESSION['query']['gps'])) ? $_SESSION['query']['gps'] : "off";
|
||||
echo $gps;
|
||||
// form option <selected>
|
||||
|
||||
$dir = (new AdvancedFilesystemIterator('photos/img/'))->match('/heic|HEIC|jpg|jpeg|JPG|JPEG|webp|WEBP$/');
|
||||
|
||||
@@ -51,15 +68,30 @@ $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||
|
||||
|
||||
// Construction des requêtes
|
||||
# SELECT * FROM photos WHERE dateoriginal LIKe '2021%'
|
||||
# SELECT * FROM photos WHERE strftime('%Y', dateoriginal) = '2021' ORDER BY dateoriginal
|
||||
# SELECT * FROM photos WHERE strftime('%Y', dateoriginal) = '2015' ORDER BY dateoriginal
|
||||
|
||||
# SELECT DISTINCT strftime('%Y', dateoriginal) FROM photos WHERE dateoriginal <> "" ORDER BY dateoriginal
|
||||
|
||||
$request = array(
|
||||
'lens' => 'SELECT DISTINCT lens FROM photos WHERE lens <> "" ORDER BY lens',
|
||||
'model' => 'SELECT DISTINCT model FROM photos WHERE model <> "" ORDER BY model',
|
||||
'iso' => 'SELECT DISTINCT iso FROM photos WHERE iso <> "" ORDER BY iso',
|
||||
'speed' => 'SELECT DISTINCT speed FROM photos WHERE speed <> "" ORDER BY speed',
|
||||
'keywords' => 'SELECT DISTINCT keywords FROM photos WHERE keywords <> ""'
|
||||
'keywords' => 'SELECT DISTINCT keywords FROM photos WHERE keywords <> ""',
|
||||
'strftime("%Y", dateoriginal)' => 'SELECT DISTINCT strftime("%Y", dateoriginal) FROM photos WHERE dateoriginal <> "" ORDER BY dateoriginal DESC'
|
||||
);
|
||||
|
||||
/*
|
||||
$req = 'SELECT DISTINCT strftime("%Y", dateoriginal) FROM photos WHERE dateoriginal <> "" ORDER BY dateoriginal';
|
||||
$query = $conn->query($req);
|
||||
$res = $query->fetchAll(PDO::FETCH_ASSOC);
|
||||
preprint($res);
|
||||
$res = array_column($res,'strftime("%Y", dateoriginal)');
|
||||
preprint($res);
|
||||
*/
|
||||
|
||||
$select = array();
|
||||
$i = 0;
|
||||
foreach ($request as $key => $val){
|
||||
@@ -83,22 +115,59 @@ foreach ($request as $key => $val){
|
||||
$i++;
|
||||
}
|
||||
|
||||
//preprint($select);
|
||||
|
||||
// Affichage des photos
|
||||
|
||||
try {
|
||||
$columns = array('date','lens','model','iso','lat');
|
||||
$columns = array('dateoriginal','lens','model','iso','lat');
|
||||
$column = isset($_GET['column']) && in_array($_GET['column'], $columns) ? $_GET['column'] : $columns[0];
|
||||
$sort_order = isset($_GET['order']) && strtolower($_GET['order']) == 'desc' ? 'DESC' : 'ASC';
|
||||
|
||||
// SELECT id,filename, date, lens, speed, iso, width, height, html, aperture, model, lat, long, alt, legende, copyright, title, creator, keywords, metering, flash, focal, wb, program
|
||||
|
||||
/*
|
||||
if (isset($_POST['lens'])) $req = "WHERE lens = '" . $_POST['lens'] . "' ";
|
||||
elseif (isset($_POST['model'])) $req = "WHERE model = '" . $_POST['model'] . "' ";
|
||||
elseif (isset($_POST['iso'])) $req = "WHERE iso = '" . $_POST['iso'] . "' ";
|
||||
elseif (isset($_POST['speed'])) $req = "WHERE speed = '" . $_POST['speed'] . "' ";
|
||||
elseif (isset($_POST['keyword'])) $req = "WHERE keywords LIKE '%" . str_replace("'","''", $_POST['keyword']) . "%' ";
|
||||
else $req = "";
|
||||
*/
|
||||
$req1 = "";
|
||||
$req2 = "";
|
||||
$req3 = "";
|
||||
$req4 = "";
|
||||
$req5 = "";
|
||||
$req6 = "";
|
||||
$req7 = "";
|
||||
if (!empty($_SESSION['query']['lens'])) $req1 = "lens = '" . $_SESSION['query']['lens'] . "'";
|
||||
if (!empty($_SESSION['query']['model'])) $req2 = "model = '" . $_SESSION['query']['model'] . "'";
|
||||
if (!empty($_SESSION['query']['iso'])) $req3 = "iso = '" . $_SESSION['query']['iso'] . "'";
|
||||
if (!empty($_SESSION['query']['speed'])) $req4 = "speed = '" . $_SESSION['query']['speed'] . "'";
|
||||
if (!empty($_SESSION['query']['keyword'])) $req5 = "keywords LIKE '%" . str_replace("'","''", $_SESSION['query']['keyword']) . "%'";
|
||||
if (!empty($_SESSION['query']['all']) && ($_SESSION['query']['all'] == "all")) $req = "";
|
||||
if (isset($_SESSION['query']['operator'])) $operator = " " . $_SESSION['query']['operator'] . " ";
|
||||
if (!empty($_SESSION['query']['gps'])) $req6 = "lat != '' AND long != ''";
|
||||
if (!empty($_SESSION['query']['date'])) $req7 = "strftime('%Y', dateoriginal) = '" . $_SESSION['query']['date'] . "'";
|
||||
|
||||
if (($req1 != "") || ($req2 != "") || ($req3 != "") || ($req4 != "") || ($req5 != "")) {
|
||||
$req = "WHERE " . ($req1 != "" ? $req1 . $operator : "") . ($req2 != "" ? $req2 . $operator : "") . ($req3 != "" ? $req3 . $operator : "") . ($req4 != "" ? $req4 . $operator : "") . ($req5 != "" ? $req5 . $operator : "");
|
||||
$req = substr_replace($req, " ", (strlen($req) - strlen($operator)), strlen($operator));
|
||||
}
|
||||
// add
|
||||
elseif ($req6 != "") {
|
||||
$req = "WHERE " . $req6 . " ";
|
||||
}
|
||||
elseif ($req7 != "") {
|
||||
$req = "WHERE " . $req7 . " ";
|
||||
}
|
||||
//
|
||||
else $req = "";
|
||||
|
||||
//echo '<pre><code>' . $req . '</code></pre>';
|
||||
|
||||
|
||||
|
||||
|
||||
$query = "SELECT * FROM photos " . $req . "ORDER BY " . $column . " " . $sort_order . " " . "LIMIT ? OFFSET ?";
|
||||
|
||||
@@ -107,8 +176,8 @@ try {
|
||||
$offset = $perpage * ($page -1);
|
||||
|
||||
$stmt = $conn->prepare($query);
|
||||
$stmt->execute(array($perpage, $offset));// (1,3...) 1=1ere valeur 3=valeur
|
||||
# id 1 -> 3
|
||||
$stmt->execute(array($perpage, $offset)); // (1,3...) 1=1ere valeur 3=valeur
|
||||
// id 1 -> 3
|
||||
//$stmt->execute(array(1, 3)); // WHERE id >= ? AND id <= ? ORDER BY date DESC";
|
||||
|
||||
//$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
@@ -121,8 +190,11 @@ try {
|
||||
$add_class = ' class="highlight"';
|
||||
?>
|
||||
|
||||
<div class="myForm">
|
||||
<form name="keywordSelect" action="view_bdd.php" method="post" >
|
||||
<form id="keywordSelect" name="keywordSelect" action="view_bdd.php" method="post" class="myForm" >
|
||||
<fieldset>
|
||||
<legend>APN</legend>
|
||||
|
||||
|
||||
<select name="keyword" id="keyword" class="classic">
|
||||
<option value=""><?php echo gettext('keywords'); ?></option>
|
||||
<?php
|
||||
@@ -131,12 +203,6 @@ try {
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
<button type="submit" class="myButton">ok</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="myForm">
|
||||
<form name="modelSelect" action="view_bdd.php" method="post" >
|
||||
<select name="model" id="model" class="classic">
|
||||
<option value=""><?php echo gettext('model'); ?></option>
|
||||
<?php
|
||||
@@ -145,11 +211,6 @@ try {
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
<button type="submit" class="myButton">ok</button>
|
||||
</form>
|
||||
</div>
|
||||
<div class="myForm">
|
||||
<form name="lensSelect" action="view_bdd.php" method="post" >
|
||||
<select name="lens" id="lens" class="classic">
|
||||
<option value=""><?php echo gettext('lens'); ?></option>
|
||||
<?php
|
||||
@@ -158,11 +219,6 @@ try {
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
<button type="submit" class="myButton">ok</button>
|
||||
</form>
|
||||
</div>
|
||||
<div class="myForm">
|
||||
<form name="isoSelect" action="view_bdd.php" method="post" >
|
||||
<select name="iso" id="iso" class="classic">
|
||||
<option value=""><?php echo gettext('iso'); ?></option>
|
||||
<?php
|
||||
@@ -171,11 +227,6 @@ try {
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
<button type="submit" class="myButton">ok</button>
|
||||
</form>
|
||||
</div>
|
||||
<div class="myForm">
|
||||
<form name="speedSelect" action="view_bdd.php" method="post" >
|
||||
<select name="speed" id="speed" class="classic">
|
||||
<option value=""><?php echo gettext('speed'); ?></option>
|
||||
<?php
|
||||
@@ -184,27 +235,67 @@ try {
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
<button type="submit" class="myButton">ok</button>
|
||||
<span class="operateur"><?php echo gettext('Operator:'); ?></span>
|
||||
<input type="radio" id="operator1" name="operator" value="AND" checked>
|
||||
<label for="ope1"><?php echo gettext('AND'); ?></label>
|
||||
<input type="radio" id="operator2" name="operator" value="OR">
|
||||
<label for="ope1"><?php echo gettext('OR'); ?></label>
|
||||
|
||||
|
||||
<button type="submit" class="myButton">OK</button>
|
||||
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
|
||||
<form id="allSelect" name="allSelect" action="view_bdd.php" method="post" class="myForm" >
|
||||
<fieldset>
|
||||
<legend>All</legend>
|
||||
<button type="submit" name = "all" value="all" class="myButton all"> <?php echo gettext('All photos'); ?> </button>
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
<form id="dateSelect" name="dateSelect" action="view_bdd.php" method="post" class="myForm" >
|
||||
<fieldset>
|
||||
<legend>Divers</legend>
|
||||
<select name="date" id="date" class="classic">
|
||||
<option value=""><?php echo gettext('year'); ?></option>
|
||||
<?php
|
||||
for( $i = 0; $i < count($select[5]); $i++) {
|
||||
echo '<option>' . $select[5]["$i"] . '</option>';
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
|
||||
<input type="checkbox" id="gps" name="gps">
|
||||
<label for="gps">gps</label>
|
||||
|
||||
|
||||
<button type="submit" name = "all" value="all" class="myButton all"> <?php echo gettext('OK'); ?> </button>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
echo '<div id="view_bdd">';
|
||||
echo '<table class="styled-table">';
|
||||
echo '<thead>';
|
||||
echo '<th>' . gettext('Id') . '</th><th>' . gettext('Thumb') . '</th><th>' . gettext('Filename') . '</th><th><a class="sort" href="view_bdd.php?column=date&order=' . $asc_or_desc . '">' . gettext('Date') . ' <i class="fas fa-sort' . ($column == 'date' ? '-' . $up_or_down : '') . '"></i></a></th><th><a href="view_bdd.php?column=lens&order=' . $asc_or_desc . '">' . gettext('Lens') . ' <i class="fas fa-sort' . ($column == 'lens' ? '-' . $up_or_down : '') . '"></i></a></th><th>' . gettext('Speed') . '</th><th><a href="view_bdd.php?column=iso&order=' . $asc_or_desc . '">' . gettext('Iso') . ' <i class="fas fa-sort' . ($column == 'iso' ? '-' . $up_or_down : '') . '"></i></a></th><th>' . gettext('Width') . '</th><th>' . gettext('Height') . '</th><th>' . gettext('Html') . '</th>';
|
||||
echo '<th>' . gettext('Aperture') . '</th><th><a href="view_bdd.php?column=model&order=' . $asc_or_desc . '">' . gettext('Model') . ' <i class="fas fa-sort' . ($column == 'Model' ? '-' . $up_or_down : '') . '"></i></a></th><th><a href="view_bdd.php?column=lat&order=' . $asc_or_desc . '">' . gettext('Latitude') . ' <i class="fas fa-sort' . ($column == 'lat' ? '-' . $up_or_down : '') . '"></i></a></th><th>' . gettext('Longitude') . '</th><th>' . gettext('Alttitude') . '</th><th>' . gettext('Legende') . '</th><th>' . gettext('Copyright') . '</th><th>' . gettext('Title') . '</th>';
|
||||
echo '<th>' . gettext('Creator') . '</th><th>' . gettext('Keywords') . '</th><th>' . gettext('Metering') . '</th><th>' . gettext('Flash') . '</th><th>' . gettext('Focal') . '</th><th>' . gettext('Wb') . '</th><th>' . gettext('Program') . '</th>';
|
||||
echo '<th>' . gettext('Id') . '</th><th>' . gettext('Thumb') . '</th><th>' . gettext('Filename') . '</th><th><a class="sort" href="view_bdd.php?column=date&order=' . $asc_or_desc . '">' . gettext('Date') . ' <i class="fas fa-sort' . ($column == 'date' ? '-' . $up_or_down : '') . '"></i></a></th><th><a href="view_bdd.php?column=lens&order=' . $asc_or_desc . '">' . gettext('Lens') . ' <i class="fas fa-sort' . ($column == 'lens' ? '-' . $up_or_down : '') . '"></i></a></th><th>' . gettext('Speed') . '</th><th>' . gettext('Aperture') . '</th><th><a href="view_bdd.php?column=iso&order=' . $asc_or_desc . '">' . gettext('Iso') . ' <i class="fas fa-sort' . ($column == 'iso' ? '-' . $up_or_down : '') . '"></i></a></th><th>' . gettext('Width') . '</th><th>' . gettext('Height') . '</th>';
|
||||
echo '<th><a href="view_bdd.php?column=model&order=' . $asc_or_desc . '">' . gettext('Model') . ' <i class="fas fa-sort' . ($column == 'Model' ? '-' . $up_or_down : '') . '"></i></a></th><th><a href="view_bdd.php?column=lat&order=' . $asc_or_desc . '">' . gettext('Latitude') . ' <i class="fas fa-sort' . ($column == 'lat' ? '-' . $up_or_down : '') . '"></i></a></th><th>' . gettext('Longitude') . '</th><th>' . gettext('Alttitude') . '</th><th>' . gettext('Legende') . '</th><th>' . gettext('Copyright') . '</th><th>' . gettext('Title') . '</th>';
|
||||
echo '<th>' . gettext('Creator') . '</th><th>' . gettext('Keywords') . '</th><th>' . gettext('Metering') . '</th><th>' . gettext('Flash') . '</th><th>' . gettext('Focal') . '</th><th>' . gettext('Wb') . '</th><th>' . gettext('Program') . '</th><th>' . gettext('Html') . '</th>';
|
||||
echo '</thead>';
|
||||
echo '<tbody>';
|
||||
|
||||
$nRows = 0;
|
||||
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
|
||||
$thumbnail = host() . str_replace("photos/img", "photos/thumb", $row['filename']);
|
||||
$full = host() . $row['filename'];
|
||||
|
||||
echo '<tr><td>' . $row['id'] . '</td><td>' . '<a href="' . $full . '"><img src="'.$thumbnail.'" /></a>' . '</td><td>' . $row['filename'] . '</td><td>' . $row['date'] . '</td><td>' . $row['lens'] . '</td><td>' . $row['speed'] . '</td><td>' . $row['iso'] . '</td><td>' . $row['width'] . '</td><td>' . $row['height'] . '</td><td>' . $row['html'] . '</td><td>' . $row['aperture'] . '</td><td>' . $row['model'] . '</td><td>' . $row['lat'] . '</td><td>' . $row['long'] . '</td><td>' . $row['alt'] . '</td><td>' . $row['legende'] . '</td><td>' . $row['copyright'] . '</td><td>' . $row['title'] . '</td><td>' . $row['creator'] . '</td><td>' . $row['keywords'] . '</td><td>' . $row['metering'] . '</td><td>' . $row['flash'] . '</td><td>' . $row['focal'] . '</td><td>' . $row['wb'] . '</td><td>' . $row['program'] . '</td></tr>';
|
||||
echo '<tr><td>' . $row['id'] . '</td><td>' . '<a href="' . $full . '"><img src="'.$thumbnail.'" /></a>' . '</td><td>' . $row['filename'] . '</td><td>' . $row['dateoriginal'] . '</td><td>' . $row['lens'] . '</td><td>' . $row['speed'] . '</td><td>' . $row['aperture'] . '</td><td>' . $row['iso'] . '</td><td>' . $row['width'] . '</td><td>' . $row['height'] . '</td><td>' . $row['model'] . '</td><td>' . $row['lat'] . '</td><td>' . $row['long'] . '</td><td>' . $row['alt'] . '</td><td>' . $row['legende'] . '</td><td>' . $row['copyright'] . '</td><td>' . $row['title'] . '</td><td>' . $row['creator'] . '</td><td>' . $row['keywords'] . '</td><td>' . $row['metering'] . '</td><td>' . $row['flash'] . '</td><td>' . $row['focal'] . '</td><td>' . $row['wb'] . '</td><td>' . $row['program'] . '</td><td>' . $row['html'] . '</td></tr>';
|
||||
$nRows++;
|
||||
}
|
||||
|
||||
if ($nRows == 0) echo '<tr><td colspan="25" class="noimg">' . gettext("No image found !") .'</td></tr>';
|
||||
|
||||
echo '</tbody></table>';
|
||||
echo '</div>';
|
||||
|
||||
@@ -254,6 +345,7 @@ try {
|
||||
</script>
|
||||
|
||||
<?php
|
||||
|
||||
try {
|
||||
//$conn4 = new PDO('sqlite:db_photo.sqlite3');
|
||||
$query4 = "SELECT COUNT(*) AS count FROM photos " . $req;
|
||||
@@ -269,24 +361,26 @@ try {
|
||||
catch(PDOException $e) {
|
||||
echo $e->getMessage();
|
||||
}
|
||||
|
||||
|
||||
// calcul du nombre de pages (arrondi a l'entier supérieur)
|
||||
$nbpages = ceil($numRows / $perpage);
|
||||
$prec = $page - 1;
|
||||
$suiv = $page + 1;
|
||||
|
||||
echo '<div class="navPage">' . gettext("Page") . ': ';
|
||||
if ($page >= 2) echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$prec.'&column='.$column.'&order='.$sort_order.'" title="'.gettext("Previous Page").'">« '.gettext("prev").'</a> ';
|
||||
for ($i = 1; $i <= $nbpages; $i++) {
|
||||
if ($i != $page) {
|
||||
echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$i.'&column='.$column.'&order='.$sort_order.'" title="'.gettext("Page").' '.$i.'">'.$i.' </a> ';
|
||||
}
|
||||
else {
|
||||
echo "<span class='gras'>".$i."</span> ";
|
||||
if ($numRows > 0) {
|
||||
echo '<div class="navPage">' . gettext("Page") . ': ';
|
||||
if ($page >= 2) echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$prec.'&column='.$column.'&order='.$sort_order.'" title="'.gettext("Previous Page").'">« '.gettext("prev").'</a> ';
|
||||
for ($i = 1; $i <= $nbpages; $i++) {
|
||||
if ($i != $page) {
|
||||
echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$i.'&column='.$column.'&order='.$sort_order.'" title="'.gettext("Page").' '.$i.'">'.$i.' </a> ';
|
||||
}
|
||||
else {
|
||||
echo "<span class='gras'>".$i."</span> ";
|
||||
}
|
||||
}
|
||||
if ($page < $nbpages) echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$suiv.'&column='.$column.'&order='.$sort_order.'" title="'.gettext("Next Page").'">'.gettext("next").' »</a> ';
|
||||
echo '</div>';
|
||||
}
|
||||
if ($page < $nbpages) echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$suiv.'&column='.$column.'&order='.$sort_order.'" title="'.gettext("Next Page").'">'.gettext("next").' »</a> ';
|
||||
echo '</div>';
|
||||
?>
|
||||
|
||||
<p class="navPage"><a href="index.php" title="<?php echo gettext("Home"); ?>"><?php echo gettext("Home"); ?></a> | <a href="maps.php" title="<?php echo gettext("Maps"); ?>"><?php echo gettext("Maps"); ?></a> | <a href="photo-du-mois.php" title="<?php echo gettext("Picture of the month"); ?>"><?php echo gettext("Picture of the month"); ?></a> | <a href="admin/index.php" title="<?php echo gettext("Admin"); ?>"><?php echo gettext("Admin"); ?></a></p>
|
||||
|
||||
Reference in New Issue
Block a user