BLOB plaatje uit database weergeven - PHP

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Pagina: « vorige 1 2 3 4 volgende »

Dos Moonen

Dos Moonen

23/12/2013 23:56:01
Quote Anchor link
Een kleinde fix was 'Content-Type' met hoofdletter T schrijven.
 
PHP hulp

PHP hulp

17/11/2024 05:20:24
 
Ozzie PHP

Ozzie PHP

23/12/2013 23:58:36
Quote Anchor link
>> Als ik de exit uitcomentariseer (en uiteraard de laatste header en echo) werkt hij nog steeds.

Dan komt ie waarschijnlijk uit de browser-cache :)

>> Een kleinde fix was 'Content-Type' met hoofdletter T schrijven.

Haha, scherp Dos.
 
F vh

F vh

24/12/2013 11:29:57
Quote Anchor link
Dit is de relevante code waar ik de img src tag in heb:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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">


Dit is test.php:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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';

?>


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
 
Erwin H

Erwin H

24/12/2013 13:45:04
Quote Anchor link
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.
 
F vh

F vh

24/12/2013 13:56:22
Quote Anchor link
Aha, dan is dat niet zo gek inderdaad. Hoe los ik dit op? Ik zat te denken aan een array... maar dan moet ik in test.php weer een een of andere teller meegeven die de index representeert.. en hoe geef ik die mee? Zou je voor kunnen doen hoe je dit zou doen?

Oh, en de array moet dan dynamisch zijn
Gewijzigd op 24/12/2013 13:58:36 door F vh
 
- Ariën  -
Beheerder

- Ariën -

24/12/2013 13:59:29
Quote Anchor link
$_SESSION['productnaam'][] gebruiken op lijn 8.
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 -
 
Erwin H

Erwin H

24/12/2013 14:02:30
Quote Anchor link
Dat gaat met een array natuurlijk helemaal niet werken. Ja, je kan het opslaan. Maar hoet weet test.php dat je eerst 'product1' wil hebben en daarna 'product2'?

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.
 
F vh

F vh

24/12/2013 14:10:26
Quote Anchor link
@Aar. Wat bedoel je precies met je 2e zin?

@Erwin H Hoe geef ik dat mee in een GET parameter? Toch niet in een form?
 
Erwin H

Erwin H

24/12/2013 14:16:07
Quote Anchor link
In de img tag is je src attribute gewoon een url naar een php pagina. Daar kan je dus een GET parameter in meegeven.
 
F vh

F vh

24/12/2013 14:17:43
Quote Anchor link
Ohh ok. Bedankt, dat wist ik niet. Maar hoe is de syntax dan in de img src tag? En hoe vraag ik die variabele dan weer in test.php op? Ik ben behoorlijk nieuw in PHP.
Gewijzigd op 24/12/2013 14:18:20 door F vh
 
- Ariën  -
Beheerder

- Ariën -

24/12/2013 14:18:30
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
    <img src="test.php?naam=blaat">


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 -
 
F vh

F vh

24/12/2013 14:22:28
Quote Anchor link
Ah bedankt. Zou dit dan werken in die while loop:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<img src="test.php?naam=<?php echo $row["productnaam"];?>">
?

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
 
- Ariën  -
Beheerder

- Ariën -

24/12/2013 14:23:37
Quote Anchor link
Probeer het eens.
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 -
 
F vh

F vh

24/12/2013 14:26:48
Quote Anchor link
Ja, het werkt!! Ik ben jullie echt onwijs dankbaar! Zo ontzettend handig..
 
Dos Moonen

Dos Moonen

24/12/2013 14:28:42
Quote Anchor link
Mooi, dan is het nu weer tijd om fout afhandeling in te bouwen.
if ( ! empty($_GET['naam'])) { ... } is wat ik voorstel.
 
F vh

F vh

24/12/2013 14:32:35
Quote Anchor link
Ok, dat zal ik er inbouwen, bedankt. Wat is een goede naam voor test.php? Zou plaatjetonen.php gepast zijn..? Zou ik overigens twee get parameters aan de img src tag mee kunnen geven? Ik moet namelijk voor elk product een klein en een groot plaatje afbeelden. Als ik de grootte dus ook mee zou kunnen geven, dan kan test.php dat weer afhandelen.
Gewijzigd op 24/12/2013 14:34:40 door F vh
 
- Ariën  -
Beheerder

- Ariën -

24/12/2013 14:34:22
Quote Anchor link
image.php, afbeelding.php...?

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 -
 
F vh

F vh

24/12/2013 14:36:51
Quote Anchor link
Thx! En hoe gaat dan de opvraging in test.php?
 
- Ariën  -
Beheerder

- Ariën -

24/12/2013 14:38:44
Quote Anchor link
$_GET['naam']
$_GET['hoogte']
$_GET['breedtte']

Gewoon dezelfde techniek dus.....
Gewijzigd op 24/12/2013 14:39:08 door - Ariën -
 
Ozzie PHP

Ozzie PHP

24/12/2013 14:41:13
Quote Anchor link
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 :)

Afbeelding
 

Pagina: « vorige 1 2 3 4 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.