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: 1 2 3 4 volgende »

F vh

F vh

23/12/2013 20:45:38
Quote Anchor link
Graag wil ik een een plaatje van het type BLOB in mijn database opvragen in mijn php code en weergeven op mijn site. de kolomnaam heet 'klein plaatje'. Zou iemand voor mij de code hiervoor willen schrijven?
 
PHP hulp

PHP hulp

17/11/2024 05:24:21
 
- Ariën  -
Beheerder

- Ariën -

23/12/2013 20:52:18
Quote Anchor link
Ik wil niet vervelend zijn, maar zo werkt het forum hier niet. Het kan zeker geen kwaad om zelf eens wat op te zoeken of te proberen.

Als ik Google op 'read image from mysql php' dan vind ik al een hoop interessants.
Gewijzigd op 23/12/2013 20:52:54 door - Ariën -
 
F vh

F vh

23/12/2013 21:01:57
Quote Anchor link
Dat heb ik de afgelopen paar uur gedaan, maar mijn website wil maar niet het plaatje afbeelden. Er komt enkel een klein vierkantje met een tekentje erin.. Alsof het ID verkeerd is?
 
- Ariën  -
Beheerder

- Ariën -

23/12/2013 21:03:50
Quote Anchor link
Toon je relevante code eens? En hoe open je de afbeelding?
Gewijzigd op 23/12/2013 21:04:38 door - Ariën -
 
F vh

F vh

23/12/2013 21:15:16
Quote Anchor link
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
<?php

require_once("databaseconnectie.php");

$sql = "SELECT 'klein plaatje' FROM catalogus WHERE productnaam ='iPhone 5S'";

$result = mysql_query($sql);
$row = mysql_fetch_array($result);

header('Content-type: image/jpeg');

        while ($row = mysql_fetch_array($result)) {

            echo $row['klein plaatje'];
        }

?>



de tabelnaam is catalogus en de kolom naam heet 'klein plaatje' van het type BLOB.

Dit is hetgene wat ik bedoel met dat tekentje: http://imageshack.us/photo/my-images/5/tutb.png/

Kijk linksboven
Gewijzigd op 23/12/2013 21:21:24 door F vh
 
- Ariën  -
Beheerder

- Ariën -

23/12/2013 21:24:32
Quote Anchor link
Heeft je veld serieus een spatie?
Waarom een while() als je maar een enkel record ophaalt?

Kijk eerst eens naar goede foutafhandeling op je query.
Gewijzigd op 23/12/2013 21:26:00 door - Ariën -
 
F vh

F vh

23/12/2013 21:31:48
Quote Anchor link
Ik wist niet dat spatie niet mocht. Die heb ik weggehaald in mijn database en heet nu kleinplaatje. Dit heb ik ook aangepast in de code. De while loop heb ik ook weggehaald, maar nog steeds krijg ik hetzelfde tekentje.
Gewijzigd op 23/12/2013 21:35:07 door F vh
 
Dos Moonen

Dos Moonen

23/12/2013 21:53:17
Quote Anchor link
Je fetched de tekst 'klein plaatje', niet de waarde uit het veld met de naam 'klein plaatje'.

Je huidige script zou versimpeld kunnen worden naar het volgende:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php

header('Content-type: image/jpeg');

echo 'klein plaatje';

?>


Gebruik liever underscores dan spaties. Verder is de manier om binnen MySQL (maar dan ook alleen MySQL) aan te geven dat je het over een kolom naam hebt om deze binnen backticks (`klein plaatje`) te zetten. Binnen PostgreSQL zijn dat dubbele aanhalingstekens ("klein plaatje"), en binnen microsoft access zijn het rechte haakjes geloof ik ([klein plaatje]).
Als je underscores gebruikt heb je die tekens niet nodig, en is je sql query meer portable.
Gewijzigd op 23/12/2013 22:01:56 door Dos Moonen
 
F vh

F vh

23/12/2013 21:56:49
Quote Anchor link
Bedankt voor de info over de haakjes. Ik snap alleen niet waarom het daarnaar versimpeld kan worden.. Dan doe ik helemaal niks met de querie en vraag ik ook niks op.
 
- Ariën  -
Beheerder

- Ariën -

23/12/2013 22:01:39
Quote Anchor link
Wordt je query wel uitgevoerd? Wat zegt de foutafhandeling?
 
F vh

F vh

23/12/2013 22:03:14
Quote Anchor link
Ik snap niet precies hoe ik die foutafhandeling moet implementeren. Zou je het even voor willen doen?
 
- Ariën  -
Beheerder

- Ariën -

23/12/2013 22:04:25
 
Dos Moonen

Dos Moonen

23/12/2013 22:07:15
Quote Anchor link
Ik zei dat je HUIDIGE script versimpeld kan worden.

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
<?php
$query
= mysql_query("SELECT 'klein plaatje' FROM catalogus WHERE productnaam ='iPhone 5S'");
echo mysql_result($query, 0); // 'klein plaatje' op de voorwaarde dat er een product met de naam 'iPhone 5S' bestaat

##############################


$query = mysql_query("SELECT 'klein plaatje' FROM catalogus");
echo mysql_result($query, 0); // 'klein plaatje' op de voorwaarde dat de tabel catalogus bestaat

##############################


$query = mysql_query"SELECT 'klein plaatje'");
echo mysql_result($query, 0); // 'klein plaatje', geen woordwaarde..

##############################


echo 'klein plaatje'; // zelfde resultaat als de bovenstaande stukjes code omdat die mysql vragen de letterlijke tekst 'klein plaatje' terug te geven.

?>


Gebruik een underscore, of gebruik backticks.
Daarna vervang je de hele while door echo $row['klein_plaatje'] (er vanuit gaand dat je voor de underscore optie bent gegaan)

Negeer voorlopig even wat - Aar - zegt over foutafhandeling, dat is nog niet van toepassing.
Gewijzigd op 23/12/2013 22:12:49 door Dos Moonen
 
- Ariën  -
Beheerder

- Ariën -

23/12/2013 22:17:36
Quote Anchor link
Dos Moonen op 23/12/2013 22:07:15:
Negeer voorlopig even wat - Aar - zegt over foutafhandeling, dat is nog niet van toepassing.

Persoonlijk vind ik dit grote onzin....

Ik vind dit niet iets wat je later in moet bouwen. Wat nou als je query ook echt stuk is? Foutafhandeling hoort nu eenmaal, tenzij je graag haren uit je kop wilt trekken als je query ergens op stuk lijkt te lopen, en je niet weet wat er mis is.

Het slot van een deur bouw je toch ook niet achter af in in een deur?
Gewijzigd op 23/12/2013 22:20:06 door - Ariën -
 
F vh

F vh

23/12/2013 22:38:37
Quote Anchor link
Dos Moonen, als ik het op die manier doe, dan krijg ik een hele pagina vol met *shit*. Dit is een deel ervan: ›Ž)¦€%íÀµY¤ b«¼øªLMšUèMBî¤U/8¹§‚G4ÅbôšU”ŸuYû-U$Ñü²¸F—¬xºÓGÄd®HȉOr.

@Aar, de query lijkt hij dus wel uit te voeren.
Gewijzigd op 23/12/2013 22:41:31 door F vh
 
Ozzie PHP

Ozzie PHP

23/12/2013 22:39:59
Quote Anchor link
En roep je die "shit" van jou dan wel aan binnen een image tag?

<img src="http://www.mijnsite.nl/mijnscript.php">
Gewijzigd op 23/12/2013 22:40:37 door Ozzie PHP
 
F vh

F vh

23/12/2013 22:44:06
Quote Anchor link
Oh, nee dat doe ik niet. Wat is mijnsite in mijn geval? Ik run op localhost via WAMP.

Nu ik de img tag heb toegevoegd Zoals ik het nu gedaan heb, krijg ik precies hetzelfde, maar dan helemaal achteraan die shit weer dat kleine icoontje.. (link van een screen boven in het topic).

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php

require_once("databaseconnectie.php");

$sql = "SELECT kleinplaatje FROM catalogus WHERE productnaam ='Nexus 10'";

$result = mysql_query($sql);
$row = mysql_fetch_array($result);
echo $row['kleinplaatje'];
?>

<img src="index.php">
Gewijzigd op 23/12/2013 22:47:25 door F vh
 
- Ariën  -
Beheerder

- Ariën -

23/12/2013 22:50:58
Quote Anchor link
Waar is je header?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
header('Content-type: image/jpeg');
Gewijzigd op 23/12/2013 22:51:27 door - Ariën -
 
Ozzie PHP

Ozzie PHP

23/12/2013 22:51:29
Quote Anchor link
Maak eens 2 pagina's.

test.html

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<html>
<body>
<img src="http://localhost/test.php">
</body>
</html>


En dan maak je ook nog een pagina test.php. Hierin moet je dan dat plaatje ophalen uit de database en dan via header('Content-type: image/jpeg'); weergeven zoals je al eerder hebt gedaan.
 
F vh

F vh

23/12/2013 23:06:54
Quote Anchor link
Ik snap er niks van! Het werkt nog steeds niet. Nu krijg ik weer dat icoontje.

test.html zit de code die je net gaf. In test.php zit dit:

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
<htmL>

<body>
<?php

require_once("databaseconnectie.php");

$sql = "SELECT kleinplaatje FROM catalogus WHERE productnaam ='iPhone 5S'";

$result = mysql_query($sql);
$row = mysql_fetch_array($result);
echo mysql_result($result, 0);
header('Content-type: image/jpeg');



?>


</body>
</html>


Wat is verkeerd?
 
Ozzie PHP

Ozzie PHP

23/12/2013 23:11:33
Quote Anchor link
in test.php hoort alleen php te zitten en geen html. <html> en <body> horen daar dus niet. En je moet je resultaat echo'en onder de header.
 

Pagina: 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.