Hallo,
ik ben bezig met een fotogalerie waarbij ik de grote foto op dezelfde pagina wil hebben als de kleine foto's en wanneer de pagina wordt geopend er een foto te zien is. Voorbeeld is http://www.robcnossen.nl/view_album.php?album_id=7.

Het is tot nu toe gedeeltelijk gelukt, wanneer de pagina wordt geopend is de laatst geüploade foto te zien en in de bron bij de img src is dan te zien dat het bijvoorbeeld om foto3.jpg uit de map uploads en album nummer 7 gaat, maar wanneer ik op een kleine foto klik om die te bekijken komt die niet tevoorschijn. In de paginabron bij img src is te zien dat foto3.jpg niet weg is gegaan en dat een andere foto erbij is gekomen, er ontstaat dan bijvoorbeeld zoiets als <img src="uploads/7/foto3.jpguploads/7/foto2.jpg" title="" />. Dus foto2.jpg komt op de juiste plaats aan maar foto3.jpg gaat niet weg. Er wordt dus geen enkele foto getoond.
Mijn code is;


<?php 
include 'core/init.php';

if (isset($_GET['album_id'])) {
	$album_id = $_GET['album_id'];
$album_data = album_data($album_id, 'name', 'description');

echo '<h3>', $album_data['name'], '</h3><p>', $album_data['description'], '</p>';

$albums = get_albums();
$images = get_images($album_id);

}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Untitled Document</title>
</head>

<body>
<div id="wrap">
<div id="sidebarleft">
<?php
//Een album met de kleine foto's 
if (empty($images)) {
        echo 'Er zijn geen foto\'s in dit album';
} else {
        foreach ($albums as $album) {      
        foreach ($images as $image) { 
		if ($image['album'] === $album['id'])         
                echo'<a href="view_album.php?album_id=', $album['id'],'&image_id=uploads/', $image['album'], '/', $image['id'], '.', $image['ext'], '"><img src="uploads/thumbs/', $image['album'], '/', $image['id'], '.', $image['ext'], '" title="" /></a><a href="delete_image.php?image_id=', $image['id'],'">x</a> ';                
        }            
    }
}

?>
</div>
<div id="imagecontainer">
  <div id="image">
<?php
//Hier wordt de grote foto getoond
    if (isset($_GET['image_id'])){
        $full_image = $_GET['image_id'];
    }else{
        $full_image = (isset($images['id']));
    }
     
    echo'<img src="uploads/' ,$image['album'], '/' ,$image['id'],  '.' ,$image['ext'],htmlentities($full_image), '" title="" />';

//$img = get_image($album_id);
//echo '<img src="uploads/', $img['album'], '/',$img['image_id'], '" title="" />';

?>
Ik dacht dat ik het zou kunnen oplossen met een if else statement;
<?php 
$full_image=(isset($_GET['image_id'])) ? $_GET['image_id'] : (isset($images['id']));
if(isset($_GET['image_id'])){
//echo werkt wel als ik het buiten de haakjes zet
echo'<img src="uploads/' ,$image['album'], '/' ,$image['id'],  '.'
,$image['ext'],htmlentities($full_image),  '" title="" />';
}else{
$full_image=(isset($_GET['image_id'])) ? $_GET['image_id'] : (isset($images['id'])); 
echo'<img src="',htmlentities($full_image), '" title="" />';
}
 ?>


Dit werkt niet, er komt geen foto tevoorschijn.

Mijn vraag is, wat moet er gedaan worden om de (soort) standaardwaarde te laten vervangen door een andere foto?
Ik kan op het internet hierover niets vinden wat mij tot een oplossing zou kunnen brengen.

Bij voorbaat dank,

Rob

Voor de grote foto hoeft dit volgens mij niet, maar het probleem is dat je $images['id'] wilt weergeven terwijl dit waarschijnlijk een array is. probeer maar print_r($images['id']). Als je wat te zien krijgt is het een array.
Wanneer de pagina wordt geopend komt er nu wel een grote afbeelding in beeld, Images['id'] is veranderd in image['id']. Ook komt via print_r($image) netjes de array in beeld, in dit geval;
Array ( [id] => 0 [img_name] => PICT0059.JPG [album] => 7 [timestamp] => 1359552936 [ext] => jpg )

Maar als ik op een kleine foto klik komt er nog geen foto in beeld en de array laat dit zien;
Array ( [id] => 0 [img_name] => PICT0059.JPG [album] => 7 [timestamp] => 1359552936 [ext] => jpg )
Dus alleen de id is veranderd, de rest blijft allemaal hetzelfde. In de url komt wel netjes de goede image_id te staan. Ik hoop dat het een stapje de goede richting op is. Ik denk dat ik nu op zoek moet naar $_GET['image_id'], maar is dat ook zo en hoe moet ik dat doen?

De code is nu;
<?php
$image['id'] = isset($_GET['image_id']) ? intval($_GET['image_id']) : $image['id'];
print_r($image['id']);

// kijk of alles wat we nodig hebben aanwezig is
if(isset($image['album'], $image['id'], $image['ext']))
{
echo '<img src="uploads/' . $image['album'] .
'/' . $image['id'] .
'.', $image['ext'] .
'" alt="Afbeelding #' . $image['id'] . '">';
print_r($image);
}
else
{
echo '<br><b>Fout</b><br>
Eén van de benodigde waardes missen!<br>
Wat ik wel heb:<br>
<hr>
' . print_r($image, true) . '
<hr>';
}
http://www.robcnossen.nl/view_album.php?album_id=7&image_id=uploads/7/123.jpg
?>
Krijg je nog de "Notice: Array to string conversion"?

Krijg je je eigen fout melding te zien: "Fout Eén van de bonodigde......"?

Staat in de broncode van je website wel de img tag en eventueel andere waarde hierin?

Probeer een gewoon wat te echoën, bijvoorbeeld echo $image['album'], kijk zo wat er wel en niet goed gaat.
ik had die notice ook 2 dagen terug en ik had voor de grap een [0] er achter gezet dus $image['id'][0]. Het werkte wel en de error was weg.
Alleen is dit niet de netste oplossing, ik zou nog maar eens goed kijken naar de array.
Ik ben van alles aan het proberen geweest en ik denk dat het de goede richting in gaat. Ik krijg in ieder geval geen foutmeldingen meer.
De code ziet er nu zo uit;
<?php
if(isset($image['album'], $image['id'], $image['ext']));
$foto = '<img src="uploads/' . $image['album'] . '/' . $image['id'] . '.' . $image['ext'] . '" alt="Afbeelding #' . $image['id'] . '">';

$standaardwaarde=isset($_GET['image_id']) ? $_GET['image_id'] :$foto;
//print_r($foto);
echo'<img src="' ,$standaardwaarde, '" title="" />';
?>
Als ik op een kleine foto klik komt de grote foto keurig in beeld. Alleen wanneer ik de pagina open komt de grote foto niet in beeld maar in de broncode staat de foto wel vermeld maar ziet het er een beetje vreemd uit, namelijk;

<img src="<img src="uploads/7/130.jpg" alt="Afbeelding #130">" title="" />

Er zitten nu twee img src's in elkaar en ik weet niet hoe ik het los van elkaar moet krijgen.

http://www.robcnossen.nl/view_album.php?album_id=7

Ik hoop dat je zelf ook ziet dat dat komt omdate je ook 2keer de img tag aanmaakt. Haal deze gewoon weg bij $foto en dan moet het wel werken.
Ah, dat had ik mij niet gerealiseerd, dank je voor je hulp, het werkt nu prima.

Reageren