BLOB plaatje uit database weergeven - PHP
Pagina: « vorige 1 2 3 4 volgende »
Een kleinde fix was 'Content-Type' met hoofdletter T schrijven.
Dan komt ie waarschijnlijk uit de browser-cache :)
>> Een kleinde fix was 'Content-Type' met hoofdletter T schrijven.
Haha, scherp Dos.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
session_start();
while ($row = mysql_fetch_assoc($query)) {
echo $row["productnaam"] . "<br>";
echo $row["prijs"] . "<br>";
echo $row["korte omschrijving"] . "<br>";
echo $row["lange omschrijving"] . "<br>";
$_SESSION['productnaam'] = $row["productnaam"];
?>
<img src="test.php">
session_start();
while ($row = mysql_fetch_assoc($query)) {
echo $row["productnaam"] . "<br>";
echo $row["prijs"] . "<br>";
echo $row["korte omschrijving"] . "<br>";
echo $row["lange omschrijving"] . "<br>";
$_SESSION['productnaam'] = $row["productnaam"];
?>
<img src="test.php">
Dit is test.php:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
session_start();
Print_r ($_SESSION);
require_once("databaseconnectie.php");
$sql = "SELECT kleinplaatje FROM catalogus WHERE productnaam ='".$_SESSION['productnaam']."'";
if ($result = mysql_query($sql))
{
if ($row = mysql_fetch_array($result))
{
header('Content-type: image/jpeg');
echo mysql_result($result, 0);
exit; // stopt de uitvoer van het script
}
}
// dit wordt alleen uitgevoerd als 'exit' niet aangeroepen is, wat dus betekend dat er iets fout ging
header('HTTP/1.0 404 Not Found');
echo '404 - Page Not Found';
?>
session_start();
Print_r ($_SESSION);
require_once("databaseconnectie.php");
$sql = "SELECT kleinplaatje FROM catalogus WHERE productnaam ='".$_SESSION['productnaam']."'";
if ($result = mysql_query($sql))
{
if ($row = mysql_fetch_array($result))
{
header('Content-type: image/jpeg');
echo mysql_result($result, 0);
exit; // stopt de uitvoer van het script
}
}
// dit wordt alleen uitgevoerd als 'exit' niet aangeroepen is, wat dus betekend dat er iets fout ging
header('HTTP/1.0 404 Not Found');
echo '404 - Page Not Found';
?>
Toevoeging op 24/12/2013 12:55:14:
De sessies werkt nu deels. Het probleem is dat de output alle plaatjes hetzelfde zijn. Ze zijn allemaal van het product die als laatste door de while loop ging. Hoe is dit op te lossen en waarom is dit het geval?
Gewijzigd op 24/12/2013 13:43:32 door F vh
Dat is toch niet zo gek. Je overschrijft het telkens als je een nieuw record uit je database haalt in die while loop. De laatste blijft dus alleen over.
Kijk aan het einde van de while() nog een naar de array in $_SESSION['productnaam']
Gewijzigd op 24/12/2013 14:00:12 door - Ariën -
Je zal die naam gewoon mee moeten geven in een GET parameter van test.php en aan de hand daarvan het juiste plaatje moeten ophalen.
@Erwin H Hoe geef ik dat mee in een GET parameter? Toch niet in een form?
In de img tag is je src attribute gewoon een url naar een php pagina. Daar kan je dus een GET parameter in meegeven.
Gewijzigd op 24/12/2013 14:18:20 door F vh
En met $_GET['naam'] kan je de ?naam waarde (blaat) uit je URL ophalen.
Gewijzigd op 24/12/2013 14:19:10 door - Ariën -
?
En als ik het goed begrijp hoef ik dus ook helemaal geen sessies meer te gebruiken?
Ah bedankt. Zou dit dan werken in die while loop:En als ik het goed begrijp hoef ik dus ook helemaal geen sessies meer te gebruiken?
Gewijzigd op 24/12/2013 14:24:29 door F vh
Verder zie ik geen reden om SESSIES te gebruiken in deze situatie, om aan de hand van een image en een GET-paramter een plaatje uit de database te halen.
Gewijzigd op 24/12/2013 14:26:54 door - Ariën -
Ja, het werkt!! Ik ben jullie echt onwijs dankbaar! Zo ontzettend handig..
if ( ! empty($_GET['naam'])) { ... } is wat ik voorstel.
Gewijzigd op 24/12/2013 14:34:40 door F vh
Net wat vind jij duidelijk vindt...
Quote:
Zou ik overigens twee get parameters aan de img src tag mee kunnen geven?
Ja..
plaatje.php?naam=blaat&hoogte=30&breedtte=50
Eerst een ? na de bestandsnaam, en dan steeds per opvolgende argument een &
Gewijzigd op 24/12/2013 14:36:14 door - Ariën -
Thx! En hoe gaat dan de opvraging in test.php?
$_GET['hoogte']
$_GET['breedtte']
Gewoon dezelfde techniek dus.....
Gewijzigd op 24/12/2013 14:39:08 door - Ariën -
F vh op 24/12/2013 14:26:48:
Ja, het werkt!! Ik ben jullie echt onwijs dankbaar! Zo ontzettend handig..
Hèhè... altijd leuk dat beginnersenthousiasme :)