Onderwerp bekijken
Algemene support omtrent algemene gebruik- en installatieproblemen.
 Onderwerp afdrukken
Controleren of afbeelding aanwezig in database
AvSan
Ik heb in de fotogalerij een album aangemaakt en hier wat plaatjes ingezet.

Nu heb ik een aantal pagina's waarbij sommige wel een afbeelding moeten hebben en andere dan weer niet, afhankelijk van de naam van de pagina en dus of de afbeelding aanwezig is. Hoe kan ik controleren of de afbeelding (of de link naar de afbeelding, want de afbeelding staat uiteraard gewoon in images/photoalbum/etc. map) in de database aanwezig is?

Ik had al geprobeerd om het zonder de check op de database, met if (file_exists(afbeelding.jpg)) te doen, maar dat werkt alleen als de afbeeldingen in dezelfde map als de pagina staan.

Eventueel een andere oplossing waarbij de aanwezigheidscheck niet via de database hoeft te lopen en de afbeeldingen in een andere map dan de pagina kunnen staan is uiteraard ook goed Smile
 
www.andre-priscila.nl
AvSan
Ik denk dat ik zelf al de oplossing heb gevonden:

[geshi=php]$page = basename($_SERVER["PHP_SELF"]);
$page = explode('.', $page);
$page = $page[0];
$filename = "$page.jpg";

$query = "SELECT * FROM fusion_photos WHERE photo_filename = '$filename'";

$result = mysql_query($query) or die (mysql_error());
$num = mysql_num_rows($result);

if ($num > 0) {
echo "\"picture";
} else {
echo "geen bestand";
} [/geshi]

Echter eventuele suggesties voor verbeteringen zijn altijd welkom, ben nog een redelijke noob wat php betreft.
 
www.andre-priscila.nl
Steff
Eerst een aantal suggesties om je coding wat simpeler te maken.
PHP_SELF wordt al door fusion gefilterd en wordt uiteindelijk FUSION_SELF (constante)
Query's worden uitgevoerd door de dbquery() functie, en de rijen worden geteld mbv de dbrows() functie.

// Als de foto enkel in album 1 mag staan:
[geshi=php]
$page = basename($_SERVER["PHP_SELF"], ".php");
/* Ook een mogelijkheid:
$page = explode(".", FUSION_SELF);
$page = $page[0];
*/
$result = dbquery("SELECT * FROM ".DB_PHOTOS." WHERE (photo_filename = '$page.jpg' OR photo_filename = '$page.gif') AND (album_id = '1') LIMIT 1");
if (dbrows($result)) {
$data = dbarray($result);
echo "\"picture";
} else {
echo "geen bestand";
} [/geshi]


// Als de foto in alle albums mogen stan:
[geshi=php]
$page = basename($_SERVER["PHP_SELF"], ".php");
/* Ook een mogelijkheid:
$page = explode(".", FUSION_SELF);
$page = $page[0];
*/
$result = dbquery("SELECT * FROM ".DB_PHOTOS." WHERE (photo_filename = '$page.jpg' OR photo_filename = '$page.gif')");
if (dbrows($result)) {
$data = dbarray($result);
echo "\"picture";
} else {
echo "geen bestand";
} [/geshi]
Gewijzigd door Steff op 06 July 2009, 09:38
 
http://renders.me/
AvSan
Thanks Jeepers, weer wat php en wat van fusion geleerd.

Alleen 1 vraagje nog wat is die limit 1 die in regel 7 van jouw eerste voorbeeld staat?
 
www.andre-priscila.nl
AvSan
Hmmm... te vroeg geantwoord, ik weet niet hoe het komt, maar met jouw code krijg ik een foutmelding met een onbekende $end op regel 85.

Toch mn eigen code maar gebruikt...
 
www.andre-priscila.nl
Steff
Limit 1 betekent dat hij de 1ste rij neemt. En die error betekent dat je een } vergeten bent te kopieren of er nog een te veel had laten staan.
 
http://renders.me/
Spring naar forum:
Nieuw onderwerp Antwoorden
Gebruik BBcode of HTML om naar; 'Controleren of afbeelding aanwezig in database', te verwijzen!
BBcode:
HTML:
Vergelijkbare onderwerpen
Onderwerp Forum         Laatste bericht
Problemen Database Algemene v7 support : 5 21 Aug 2014, 11:25
Afbeelding verwijderen na lees meer Algemene v7 support : 5 10 Jan 2014, 14:40
Afbeelding invoegen Algemene v7 support : 11 24 May 2012, 05:34
PHP database bouwen Algemene v7 support : 9 24 May 2012, 05:23
persons database Infusions : 13 07 Feb 2012, 12:08