From e73a0c3a4bb805ab117e0431309597df7ae03d1a Mon Sep 17 00:00:00 2001 From: Bruno21 Date: Fri, 22 Apr 2022 15:48:30 +0200 Subject: [PATCH] 22-04-2022 --- clean_bdd.php | 432 +++++++++++++++++++++++++++++++++++++++++------ css/sls.css | 147 ++++++++++++++-- index.php | 2 +- insert_bdd.php | 8 +- maps.php | 2 +- view_bdd.php | 211 ++++++++++++++++++----- view_bdd_get.php | 174 ------------------- 7 files changed, 682 insertions(+), 294 deletions(-) delete mode 100644 view_bdd_get.php diff --git a/clean_bdd.php b/clean_bdd.php index 1b5b029..53bbe3b 100644 --- a/clean_bdd.php +++ b/clean_bdd.php @@ -28,6 +28,8 @@ +

+ match('/heic|HEIC|jpg|jpeg|JPG|JPEG|webp|WEBP$/'); -//echo '

' . count($dir) . gettext(' images found in folder') . ' photos/img/ ...

'; - -//_pr($dir); - - -/* -foreach($dir as $file){ - - //$file->getFilename() - //$file->getpathName() - - $file = $file->getpathName(); - - $x = in_bdd($file); - - if ($x == false) { //false - - } - } -*/ +echo '

' . gettext('Clean folder img...') . '

'; $originals = array_map('basename', glob('photos/img/*.{jpg,jpeg,JPG,JPEG,heic,HEIC,webp,WEBP}', GLOB_BRACE)); $thumbs = array_map('basename', glob('photos/thumb/*.{jpg,jpeg,JPG,JPEG,heic,HEIC,webp,WEBP}', GLOB_BRACE)); @@ -68,6 +50,7 @@ $thumbs = array_map('basename', glob('photos/thumb/*.{jpg,jpeg,JPG,JPEG,heic,HEI $missing_thumbs = array_diff($originals, $thumbs); $a = count($missing_thumbs); echo '

' . gettext('Missing thumbs: ') . $a . '

'; + if ($a > 0) { echo '

' . gettext('Create missing thumbs...') . '

'; @@ -79,13 +62,15 @@ if ($a > 0) { } -$missing_originals = array_diff($thumbs, $originals); -$b = count($missing_originals); + +$extra_thumbs = array_diff($thumbs, $originals); +$b = count($extra_thumbs); echo '

' . gettext('Extra thumbs: ') . $b . '

'; +//_pr($extra_thumbs); if ($b > 0) { echo '

' . gettext('Delete extra thumbs...') . '

'; - foreach($missing_originals as $thumb){ + foreach($extra_thumbs as $thumb){ $file = $thumb_path . $thumb; if (unlink($file)) { echo $thumb . gettext(' was deleted successfully!') . '
'; @@ -95,10 +80,8 @@ if ($b > 0) { } } -_pr($missing_thumbs); -_pr($missing_originals); -echo '

' . gettext('Compare folder img and daatabase...') . '

'; +echo '

' . gettext('Compare folder img and database...') . '

'; try { $conn = new PDO("sqlite:db_photo.sqlite3"); @@ -112,7 +95,6 @@ try { $result = $stmt->fetchAll(PDO::FETCH_CLASS); $rowcount = count($result); - //$conn = null; } catch(PDOException $e) { echo $e->getMessage(); @@ -122,47 +104,393 @@ try { $bdd = array(); foreach($result as $file) { - //$img = $file->filename; $bdd[] = $file->filename; } + $base = array_map('basename', $bdd); -$missing_originals = array_diff($base, $originals); -$c = count($missing_originals); +echo count($base) . " entries in database". "
"; +echo count($originals) . " files on disk" . "
"; + +$extra_in_bdd= array_diff($base, $originals); +$c = count($extra_in_bdd); + echo '

' . gettext('Extra images in database: ') . $c . '

'; + if ($c > 0) { echo '

' . gettext('Delete extra images in database...') . '

'; - //foreach($missing_originals as $img){ - foreach($missing_originals as $key => $img){ - echo $key; - $query2 = "DELETE FROM photos WHERE id=:id"; - - $stmt=$conn->prepare($query2); - $stmt->bindParam(':id',$key,PDO::PARAM_INT, 5); - - if($stmt->execute()){ - echo "Successfully deleted record "; - } else { - print_r($sql->errorInfo()); - } + foreach($extra_in_bdd as $img){ + $file = $img_path . $img; + $query4 = "DELETE FROM photos WHERE filename=:filename"; + $stmt = $conn->prepare($query4); + $stmt->bindParam(':filename', $file); + $result = $stmt->execute(); + if ($result) { + echo $img . gettext(' has been deleted from database !') . "
"; + } } } -//_pr($bdd); -//_pr($base); +$missing_in_bdd = array_diff($originals, $base); +$d = count($missing_in_bdd); -_pr($missing_originals); +echo '

' . gettext('Missing images in database: ') . $d . '

'; + +if ($d > 0) { + echo '

' . gettext('Adding missing images in database...') . '

'; + + $i = 1; + $photos = array(); + + foreach($missing_in_bdd as $img){ + $file = $img_path . $img; + $query4 = "INSERT INTO photos WHERE filename=:filename"; -/* -foreach($fileList as $filename){ - echo $filename; + if ($exif = @exif_read_data($file, 0, true )) { + + $mod = isset($exif['IFD0']['Model']) ? $exif['IFD0']['Model'] : ''; + + # YYYY-MM-DD HH:MM:SS.SSS - 2019:10:01 14:03:12 + $da = isset($exif['EXIF']['DateTimeOriginal']) ? $exif['EXIF']['DateTimeOriginal'] : ''; + + if (isset($exif['EXIF']['UndefinedTag:0xA434'])) { + $w = $exif['EXIF']['UndefinedTag:0xA434']; + + $arr = array("100.0 mm" => "EF100mm f/2.8 Macro USM", "100.0-400.0 mm" => "EF100-400mm f/4.5-5.6L IS USM", "140.0-560.0 mm" => "EF100-400mm f/4.5-5.6L IS USM +1.4x II", "17.0-40.0 mm" => "EF17-40mm f/4L USM", "24-70mm" => "SIGMA 24-70mm F2.8 EX DG", "70.0-200.0 mm" => "EF70-200mm f/4L USM", "10.0-22.0 mm" => "EF-S10-22mm f/3.5-4.5 USM", "500.0 mm" => "Sigma 500mm f/4.5 EX HSM ", "500mm" => "Sigma 500mm f/4.5 EX HSM "); + + if (array_key_exists($w, $arr)) $obj= $arr[$w]; + else $obj = $w; + + } else { + $obj = ''; + } + + if (isset($exif['EXIF']['ExposureTime'])) { + $q = explode('/', $exif['EXIF']['ExposureTime']); + $sp = ($q[0] > 1) ? ($q[0] / $q[1]) . "s" : $exif['EXIF']['ExposureTime']; + } else { + $sp = ''; + } + + $iso = isset($exif['EXIF']['ISOSpeedRatings']) ? $exif['EXIF']['ISOSpeedRatings'] : ''; + + if (isset($exif['EXIF']['MeteringMode'])) { + $mm = $exif['EXIF']['MeteringMode']; + + switch ($mm) { + case 1: $mm = gettext("Average"); + break; + case 2: $mm = gettext("Center-weighted average"); // Moy. à pred. centrale + break; + case 3: $mm = gettext("Spot"); + break; + case 4: $mm = gettext("Multi-Spot"); + break; + case 5: $mm = gettext("Pattern"); // Mesure évaluative + break; + case 6: $mm = gettext("Partial"); // Mesure sélective + break; + default: $mm = gettext("Unknown") . ': ' . $mm; + // Evaluative Mesure évaluative + // Centre-weighted Average Moy. à pred. centrale + // Partial Mesure sélective + // Spot Spot + + // Pattern =Mesure évaluative (30D) + // Average Mesure évaluative + } + + } else { + $mm = ''; + } + + if (isset($exif['EXIF']['Flash'])) { + $fla = $exif['EXIF']['Flash']; + + switch ($fla) { + case 0: $fla = gettext("Off"); + break; + case 1: $fla = gettext("Auto"); + break; + case 2: $fla = gettext("On"); + break; + case 3: $fla = gettext("Red Eye Reduction"); + break; + case 4: $fla = gettext("Slow Synchro"); + break; + case 5: $fla = gettext("Auto + Red Eye Reduction"); + break; + case 6: $fla = gettext("On + Red Eye Reduction"); + break; + case 16: $fla = gettext("External Flash"); + break; + default: $fla = gettext("Unknown"); + } + + } else { + $fla = ''; + } + + if (isset($exif['EXIF']['FocalLength'])) { + $k = explode('/', $exif['EXIF']['FocalLength']); + $fl = $k[0] . " mm"; + } else { + $fl = ''; + } + + + if (isset($exif['EXIF']['WhiteBalance'])) { + $wb = $exif['EXIF']['WhiteBalance']; + + switch ($wb) { + case 0: $wb = gettext("Auto"); + break; + case 1: $wb = gettext("Daylight"); + break; + case 2: $wb = gettext("Cloudy"); + break; + case 3: $wb = gettext("Tungsten"); + break; + case 4: $wb = gettext("Fluorescent"); + break; + case 5: $wb = gettext("Flash"); + break; + case 6: $wb = gettext("Custom"); + break; + case 7: $wb = gettext("Black & White"); + break; + case 8: $wb = gettext("Shade"); + break; + case 9: $wb = gettext("Manual Temperature (Kelvin)"); + break; + default: $wb = gettext("Unknown"); + } + + } else { + $wb = ''; + } + + if (isset($exif['EXIF']['ExposureProgram'])) { + $ep = $exif['EXIF']['ExposureProgram']; + + switch ($ep) { + case 1: $ep = gettext('Manual'); + break; + case 2: $ep = gettext('Program'); + break; + case 3: $ep = gettext('Aperture Priority'); + break; + case 4: $ep = gettext('Shutter Priority'); + break; + case 5: $ep = gettext('Program Creative'); + break; + case 6: $ep = gettext('Program Action'); + break; + case 7: $ep = gettext('Portrait'); + break; + case 8: $ep = gettext('Landscape'); + break; + default: $ep = gettext('Unknown') . ': ' . $data; + break; + } + + } else { + $ep = ''; + } + + $wi = isset($exif['COMPUTED']['Width']) ? $exif['COMPUTED']['Width'] : ''; + $he = isset($exif['COMPUTED']['Height']) ? $exif['COMPUTED']['Height'] : ''; + $ht = isset($exif['COMPUTED']['html']) ? $exif['COMPUTED']['html'] : ''; + $ap = isset($exif['COMPUTED']['ApertureFNumber']) ? $exif['COMPUTED']['ApertureFNumber'] : ''; + + $gps = get_gps($exif); + + $photos[$i] = array( + 'filename' => $file, + + 'date' => $da, + 'lens' => $obj, + 'speed' => $sp, + 'iso' => $iso, + + 'width' => $wi, + 'height' => $he, + 'html' => $ht, + 'aperture' => $ap, + + 'model' => $mod, + + 'lat' => $gps['latitude'], + 'long' => $gps['longitude'], + 'alt' => $gps['altitude'], + + 'metering' => $mm, + 'flash' => $fla, + 'focal' => $fl, + 'wb' => $wb, + 'program' => $ep + + ); + } + + if ($iptc = @getimagesize($file, $info)) { + //_pr($iptc); + if (isset($info["APP13"])) { + $mots = ""; + $iptc = iptcparse ($info["APP13"]); + $legende = (isset($iptc["2#120"][0])) ? $iptc["2#120"][0] : ''; + $copyright = (isset($iptc["2#116"][0])) ? $iptc["2#116"][0] : ''; + $title = (isset($iptc["2#105"][0])) ? $iptc["2#105"][0] : ''; + $creator = (isset($iptc["2#080"][0])) ? $iptc["2#080"][0] : ''; + $mots_cles = (isset($iptc["2#025"])) ? $iptc["2#025"] : ''; + if (!empty($mots_cles)) { + foreach ($mots_cles as $key => $val) { + $mots .= $val . ","; + } + $mots = substr($mots, 0, -1); + } + + $photos[$i]['legende'] = $legende; + $photos[$i]['copyright'] = $copyright; + $photos[$i]['title'] = $title; + $photos[$i]['creator'] = $creator; + $photos[$i]['mots_cles'] = $mots; + } + else { + $photos[$i]['legende'] = ''; + $photos[$i]['copyright'] = ''; + $photos[$i]['title'] = ''; + $photos[$i]['creator'] = ''; + $photos[$i]['mots_cles'] = ''; + } + } + + $i++; } -*/ -//_pr($fileList); + + + $query5 = "SELECT MAX(id) FROM photos"; + $stmt = $conn->prepare($query5); + $stmt->execute(); + $resultat = $stmt->fetch(PDO::FETCH_ASSOC); + $avant = $resultat['MAX(id)']; + + $nb_avant = (isset($avant)) ? $avant : 0; + + + try { + $query2 = "INSERT OR IGNORE INTO photos (filename, date, lens, speed, iso, width, height, html, aperture, model, lat, long, alt, legende, copyright, title, creator, keywords, metering, flash, focal, wb, program) VALUES (:filename, :date, :lens, :speed, :iso, :width, :height, :html, :aperture, :model, :lat, :long, :alt, :legende, :copyright, :title, :creator, :keywords, :metering, :flash, :focal, :wb, :program)"; + + $stmt = $conn->prepare($query2); + $stmt->bindParam(':filename', $file); + $stmt->bindParam(':date', $da); + $stmt->bindParam(':lens', $obj); + $stmt->bindParam(':speed', $sp); + $stmt->bindParam(':iso', $iso); + $stmt->bindParam(':width', $wi); + $stmt->bindParam(':height', $he); + $stmt->bindParam(':html', $ht); + $stmt->bindParam(':aperture', $ap); + $stmt->bindParam(':model', $mod); + $stmt->bindParam(':lat', $gps['latitude']); + $stmt->bindParam(':long', $gps['longitude']); + $stmt->bindParam(':alt', $gps['altitude']); + + $stmt->bindParam(':legende', $leg); + $stmt->bindParam(':copyright', $cop); + $stmt->bindParam(':title', $tit); + $stmt->bindParam(':creator', $crea); + $stmt->bindParam(':keywords', $mot); + + $stmt->bindParam(':metering', $mm); + $stmt->bindParam(':flash', $fla); + $stmt->bindParam(':focal', $fl); + $stmt->bindParam(':wb', $wb); + $stmt->bindParam(':program', $ep); + + + if (isset($photos)) { + foreach ($photos as $item) { + $file = $item['filename']; + $da = $item['date']; + $obj = $item['lens']; + $sp = $item['speed']; + $iso = $item['iso']; + $wi = $item['width']; + $he = $item['height']; + $ht = $item['html']; + $ap = $item['aperture']; + $mod = $item['model']; + $gps['latitude'] = $item['lat']; + $gps['longitude'] = $item['long']; + $gps['altitude'] = $item['alt']; + + $leg = $item['legende']; + $cop = $item['copyright']; + $tit = $item['title']; + $crea = $item['creator']; + $mot = $item['mots_cles']; + + $mm = $item['metering']; + $fla = $item['flash']; + $fl = $item['focal']; + $wb = $item['wb']; + $ep = $item['program']; + + create_thumb($th_w, $th_h, $file); + + $stmt->execute(); + } + } + } + catch(PDOException $e) { + echo $e->getMessage(); + } + + + try { + $query4 = "SELECT filename, date, lens, speed, iso, width, height, html, aperture, model, lat, long, alt, legende, copyright, title, creator, keywords, metering, flash, focal, wb, program FROM photos WHERE id > ? ORDER BY date DESC"; + + $stmt = $conn->prepare($query4); + $stmt->bindValue(1, $nb_avant, SQLITE3_INTEGER); // (1,3...) 1=1ere valeur 3=valeur + $stmt->execute(); + + echo '

' . gettext('Reading added photos') . ':

'; + echo '
'; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { + $thumbnail = host() . str_replace("photos/img", "photos/thumb", $row['filename']); + $full = host() . $row['filename']; + + echo ''; + } + echo '
' . gettext('Thumb') . '' . gettext('Filename') . '' . gettext('Date') . '' . gettext('Lens') . '' . gettext('Speed') . '' . gettext('Iso') . '' . gettext('Width') . '' . gettext('Height') . '' . gettext('Html') . '' . gettext('Aperture') . '' . gettext('Model') . '' . gettext('Latitude') . '' . gettext('Longitude') . '' . gettext('Alttitude') . '' . gettext('Legende') . '' . gettext('Copyright') . '' . gettext('Title') . '' . gettext('Creator') . '' . gettext('Keywords') . '' . gettext('Metering') . '' . gettext('Flash') . '' . gettext('Focal') . '' . gettext('Wb') . '' . gettext('Program') . '
' . '' . '' . $row['filename'] . '' . $row['date'] . '' . $row['lens'] . '' . $row['speed'] . '' . $row['iso'] . '' . $row['width'] . '' . $row['height'] . '' . $row['html'] . '' . $row['aperture'] . '' . $row['model'] . '' . $row['lat'] . '' . $row['long'] . '' . $row['alt'] . '' . $row['legende'] . '' . $row['copyright'] . '' . $row['title'] . '' . $row['creator'] . '' . $row['keywords'] . '' . $row['metering'] . '' . $row['flash'] . '' . $row['focal'] . '' . $row['wb'] . '' . $row['program'] . '
'; + echo '
'; + + $conn = null; + } + catch(PDOException $e) { + echo $e->getMessage(); + } + + $conn = null; + +} + + +//echo '

' . gettext('Find duplicate images in database: ') . '

'; + ?> +

© 2013- sur-le-sentier.fr

diff --git a/css/sls.css b/css/sls.css index cb92ed4..fa3e212 100644 --- a/css/sls.css +++ b/css/sls.css @@ -1,6 +1,18 @@ @import url('https://fonts.googleapis.com/css2?family=Ubuntu:wght@300&display=swap'); -h1, +body { + font-family: sans-serif; +} +h1 { + font-family: sans-serif; + font-weight: 400; + text-align: center; +} + +h2, h3, h4 { + font-family: sans-serif; +} + p { text-align: center; } @@ -9,10 +21,31 @@ a:link, a:visited { color: #858585; } - a:hover { +a:hover { color: #373737; } +a:active { + color: #c91717; + } + +pre { + background: #f4f4f4; + border: 1px solid #ddd; + border-left: 3px solid #f36d33; + color: #666; + page-break-inside: avoid; + font-family: monospace; + font-size: 15px; + line-height: 1.6; + margin-bottom: 1.6em; + max-width: 100%; + overflow: auto; + padding: 1em 1.5em; + display: block; + word-wrap: break-word; + } + /* The grid itself needs only 4 CSS declarations: */ @@ -149,10 +182,6 @@ body { font-size: 1rem; } -._h1 { - font-family: sans-serif; - font-weight: 400; -} .month { font-family: sans-serif; font-weight: 400; @@ -186,11 +215,24 @@ body { color: #ffffff; text-align: left; } - +/* .sort a:link, .sort a:visited, .sort a:hover { color: #ffffff !important; text-decoration: none; } +*/ +table a:visited { + color: #ffffff; +} +table a:link { + color: #ffffff; + text-decoration: none; +} +table a:hover { + color: #373737; +} + + .styled-table th, .styled-table td { padding: 12px 15px; @@ -242,20 +284,16 @@ button.myButton{ opacity: 0.4 !important; */ } -.myForm { +.indexForm { position: absolute; bottom: 0px; left: 10px; - /* - color: #fff; - font: 12px "Lucida Grande", Lucida, Verdana, sans-serif; - - -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=60)"; - filter:alpha(opacity=60); - -moz-opacity:0.6; - opacity: 0.6; - */ } +.myForm { + /**/ + display: inline-block; + margin-left: 16px; +} /* maps2.php @@ -276,4 +314,77 @@ maps2.php .nav_bar { text-align: center; } -*/ \ No newline at end of file +*/ + +/* +view +*/ + + select, button { + + /* styling */ + background-color: white; + border: thin solid PaleGoldenrod; + border-radius: 4px; + display: inline-block; + font: inherit; + font-size: smaller; + color: darkgray; + line-height: 1em; + + /* reset */ + + margin: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-appearance: none; + -moz-appearance: none; +} + +select { + padding: 0.25em 3.5em 0.25em 1em; +} +/* arrows */ + +select.classic { + background-image: + linear-gradient(45deg, transparent 50%, tan 50%), + linear-gradient(135deg, tan 50%, transparent 50%), + linear-gradient(to right, Beige, Beige); + background-position: + calc(100% - 20px) calc(0.5em + 2px), + calc(100% - 15px) calc(0.5em + 2px), + 100% 0; + + background-size: + 5px 5px, + 5px 5px, + 2.5em 2.5em; + background-repeat: no-repeat; +} + +select.classic:focus { + background-image: + linear-gradient(45deg, white 50%, transparent 50%), + linear-gradient(135deg, transparent 50%, white 50%), + linear-gradient(to right, silver, silver); + background-position: + calc(100% - 15px) 0.5em, + calc(100% - 20px) 0.5em, + 100% 0; + background-size: + 5px 5px, + 5px 5px, + 2.5em 2.5em; + background-repeat: no-repeat; + border-color: darkgrey; + outline: 0; +} + +select:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #000; +} + + diff --git a/index.php b/index.php index 4ae26c6..bc27474 100644 --- a/index.php +++ b/index.php @@ -135,7 +135,7 @@ $("#exemple, body").vegas({ -
+
+ + ' . $select[4]["$i"] . ''; + } + ?> + + +
+
+ +
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
- /* - ' . gettext('Date') . ' - ' . gettext('Lens') . ' - ' . gettext('Iso') . ' - ' . gettext('Model') . ' - ' . gettext('Latitude') . ' - */ + '; echo ''; echo ''; @@ -90,16 +197,19 @@ try { echo ''; echo ''; echo ''; + while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { $thumbnail = host() . str_replace("photos/img", "photos/thumb", $row['filename']); $full = host() . $row['filename']; echo ''; } + echo '
' . gettext('Creator') . '' . gettext('Keywords') . '' . gettext('Metering') . '' . gettext('Flash') . '' . gettext('Focal') . '' . gettext('Wb') . '' . gettext('Program') . '
' . $row['id'] . '' . '' . '' . $row['filename'] . '' . $row['date'] . '' . $row['lens'] . '' . $row['speed'] . '' . $row['iso'] . '' . $row['width'] . '' . $row['height'] . '' . $row['html'] . '' . $row['aperture'] . '' . $row['model'] . '' . $row['lat'] . '' . $row['long'] . '' . $row['alt'] . '' . $row['legende'] . '' . $row['copyright'] . '' . $row['title'] . '' . $row['creator'] . '' . $row['keywords'] . '' . $row['metering'] . '' . $row['flash'] . '' . $row['focal'] . '' . $row['wb'] . '' . $row['program'] . '
'; echo '
'; - $conn = null; + //$stmt = $conn->reset(); + //$conn = null; } catch(PDOException $e) { echo $e->getMessage(); @@ -107,37 +217,54 @@ try { ?> prepare($query4); + //$conn4 = new PDO('sqlite:db_photo.sqlite3'); + $query4 = "SELECT COUNT(*) AS count FROM photos " . $req; + + $stmt = $conn->prepare($query4); $stmt->execute(); $result = $stmt->fetch(PDO::FETCH_ASSOC); $numRows = $result['count']; - $conn4 = null; + $conn = null; } catch(PDOException $e) { echo $e->getMessage(); diff --git a/view_bdd_get.php b/view_bdd_get.php deleted file mode 100644 index 30338b2..0000000 --- a/view_bdd_get.php +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - <?php gettext('View photos in Sqlite base'); ?> - - - - - - - - - - - - - - - -match('/heic|HEIC|jpg|jpeg|JPG|JPEG|webp|WEBP$/'); - -echo '

' . count($dir) . gettext(' images found in folder') . ' photos/img/ ...

'; - -$conn = new PDO("sqlite:db_photo.sqlite3"); -$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); - -try { - $columns = array('date','lens','model','iso','lat'); - $column = isset($_GET['column']) && in_array($_GET['column'], $columns) ? $_GET['column'] : $columns[0]; - //$_SESSION['column'] = $column; - $sort_order = isset($_GET['order']) && strtolower($_GET['order']) == 'desc' ? 'DESC' : 'ASC'; - //$_SESSION['sort_order'] = $sort_order; - - $query4 = "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 FROM photos ORDER BY " . $column . " " . $sort_order . " LIMIT ? OFFSET ?"; - - //$query4 = "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 FROM photos ORDER BY date DESC LIMIT ? OFFSET ?"; - $perpage = 50; - $offset = $perpage * ($page -1); - - echo $query4 . "
"; - echo $perpage . " - " . $offset . "
"; - - $stmt = $conn->prepare($query4); - $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"; - $stmt->execute(); - - //$row = $stmt->fetchAll(PDO::FETCH_ASSOC); - //_pr($result); - //echo '

' . gettext('Reading added photos') . ':

'; - $up_or_down = str_replace(array('ASC','DESC'), array('up','down'), $sort_order); - $asc_or_desc = $sort_order == 'ASC' ? 'desc' : 'asc'; - $add_class = ' class="highlight"'; - - /* - ' . gettext('Date') . ' - ' . gettext('Lens') . ' - ' . gettext('Iso') . ' - ' . gettext('Model') . ' - ' . gettext('Latitude') . ' - */ - echo '
'; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { - $thumbnail = host() . str_replace("photos/img", "photos/thumb", $row['filename']); - $full = host() . $row['filename']; - - echo ''; - } - echo '
' . gettext('Id') . '' . gettext('Thumb') . '' . gettext('Filename') . '' . gettext('Date') . ' ' . gettext('Lens') . ' ' . gettext('Speed') . '' . gettext('Iso') . ' ' . gettext('Width') . '' . gettext('Height') . '' . gettext('Html') . '' . gettext('Aperture') . '' . gettext('Model') . ' ' . gettext('Latitude') . ' ' . gettext('Longitude') . '' . gettext('Alttitude') . '' . gettext('Legende') . '' . gettext('Copyright') . '' . gettext('Title') . '' . gettext('Creator') . '' . gettext('Keywords') . '' . gettext('Metering') . '' . gettext('Flash') . '' . gettext('Focal') . '' . gettext('Wb') . '' . gettext('Program') . '
' . $row['id'] . '' . '' . '' . $row['filename'] . '' . $row['date'] . '' . $row['lens'] . '' . $row['speed'] . '' . $row['iso'] . '' . $row['width'] . '' . $row['height'] . '' . $row['html'] . '' . $row['aperture'] . '' . $row['model'] . '' . $row['lat'] . '' . $row['long'] . '' . $row['alt'] . '' . $row['legende'] . '' . $row['copyright'] . '' . $row['title'] . '' . $row['creator'] . '' . $row['keywords'] . '' . $row['metering'] . '' . $row['flash'] . '' . $row['focal'] . '' . $row['wb'] . '' . $row['program'] . '
'; - echo '
'; - - $conn = null; - } - catch(PDOException $e) { - echo $e->getMessage(); - } -?> - - - -prepare($query4); - $stmt->execute(); - - $result = $stmt->fetch(PDO::FETCH_ASSOC); - $numRows = $result['count']; - - $conn4 = null; - } - 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 ''; - ?> - - - -

© 2013- sur-le-sentier.fr

- - - - - - -