In mijn db heb ik een tiental afbeeldingen gedefinieerd. Voor elk van de 10 afbeeldingen heb 3 velden. image.., imagesmall... en description...
Wanneer je op artikel.php een afbeelding(imagesmall...) aanklikt kom je op image.php waar de vergrote afbeelding(image...) wordt getoond. Ik wil op deze pagina ook graag description... tonen, maar weet niet hoe.........

De code:
<?php
$afbeelding=$_GET['imageid']."";
if(isset($_GET['recordid']) && is_numeric($_GET['recordid']))//is er een nummer meegegeven?
{
if($query = mysql_query("SELECT * FROM php4u_bookmarks WHERE recordid = ".$_GET['recordid']))
{
if(mysql_num_rows($query) > 0)//zijn er artikelen met dat nummer?
{
$artikel = mysql_fetch_assoc($query);//nu niet in een while-lus. Er is maar 1 resultaat.
$image_big = str_replace ('imagesmall', 'image', $artikel[$afbeelding]);
echo '<table width="740">';
echo '<tr>';
echo '<td CLASS="image">';
echo '<br><a href="artikel.php?recordid='.$artikel['recordid'].'">'.$artikel['titel'].': start here';
echo '<p> <div align="center"><img src=' . $image_big . ' border="3" bordercolor= "white"></A></div></p>';
echo '<br>';
echo '<br>';
echo '</tr>';
echo '</td>';
echo '</table>';
}
else
{
echo 'Artikel "'.$_GET['recordid'].'" bestaat niet';
}
}
}
else
{
header('Location: index.php');//geen nummer? Dan maar naar de lijst
}
?>


Eddie
Mwah... ach...

Echt handig is het niet, en in de toekomst zal je waarschijnlijk tegen meer problemen aan gaan lopen als je gaat wijzigen of uitbreiden.

Wat je zou kunnen doen is het nummer van de opgevraagde afbeelding meegeven naar de pagina waar hij groot word weergegeven.

zoiets als: $_GET['image_id'] = 7;

Dan kom je terug bij de code die hierboven staat en dan zeg je:

<?php
$index = "description".$_GET['image_id'];
echo "<tr><td>" . $artikel[$index] . "</td></tr></table>";
?>

Zo ongeveer.
Bienze,

Bedankt voor je hulp, dat waardeer ik zeer. Toch ben ik er nog niet uit, sorry!

In de pagina waar de afbeelding groot wordt weergegeven wordt het image_id meegegeven in de url, bv http://www.247ff.com/image.php?recordid=9&imageid=imagesmall002
In de code wordt imagesmall vervangen door image en de grote afbeelding verschijnt. Nu dacht ik slim te zijn en imagesmall vervolgens te laten vervangen door description, maar dan pakt ie het pad naar de map met foto's en niet de tekst uit het veld in de db. Hoe dat anders moet is mij een raadsel,


Eddie
Bienze,

Geweldig! In de tussentijd ga ik verder met het zoeken naar een oplossing. Alvast bedankt,

Eddie
Zoals Bienze ook al zegt, er zit een ernstige fout in de database. Het datamodel klopt helaas niet. En omdat het datamodel de kern van je systeem is, zul je deze fout moeten oplossen. Doe je dat niet, dan zul je complexe workarounds moeten maken waarmee je eigenlijk alleen maar nog dieper in de problemen komt. Met je huidige code zal daar waarschijnlijk ook al sprake van zijn. Kortom, wanneer de hele boel op de kop zet en opnieuw begint, wil je helemaal niet meer op hetzelfde punt komen als waar je nu bent!

Hier een goed leesbaar artikel over normalisatie: http://www.phphulp.nl/php/tutorials/3/150/

Neem er de tijd voor en werk het voorbeeld eens volledig uit. Het gaat je echt wel de nodige tijd (dagen/weken) kosten om het goed te begrijpen, maar die investering in tijd verdien je zo weer terug.

Reageren