|
|
|
|
Bonjour,
Je conçois un site pour une boutique avec une bdd et je dois permettre au visiteur de visualiser la photo des objets avec leur description (je ne veux pas indiquer le chemin, car il faut que le visiteur puisse voir directement les photos sans avoir à cliquer sur un lien).
Voici la structure de ma table:
CREATE TABLE objects ( id INT NOT NULL AUTO_INCREMENT, category VARCHAR (50) NOT NULL, photo BLOB NOT NULL, name VARCHAR (100) NOT NULL, description VARCHAR (200) NOT NULL, country VARCHAR (50) NOT NULL, PRIMARY KEY (id) );
;furniture;c:\Program Files\EasyPHP1-8\mysql\data\gallery\pict.jpg; etc...
<form action="furniture.php" method="POST">
<table cellspacing=0" cellpadding="0" border="1">
<?php
if($result) {
while($data = mysql_fetch_assoc($result)) {
printf (
"<tr>
<td> doit afficher photo ?? </td>
<td>%s</td>
<td>%s</td>
<td>%s</td>
</tr>",
$data["photo"],
$data["name"],
$data["description"],
$data["country"]
);
} // end while
if(mysql_num_rows($result) == 0) {
$msg.="Aucune information disponible";
}
}
?>
</table>
</form>
Configuration: Windows XP Firefox 2.0.0.1
Salut,
|
Bonjour,
<?php
$id = $_GET['id'];
// Placer ici tes paramètres de connexion à la base de données
// On récupère l'image
$sql = "SELECT photo FROM objects WHERE id='".$id."'";
$result = mysql_query($sql);
// On met en place les headers, pour dire qu'on a bien là une photo.
header('Content-type: image/jpeg'); // cf (1)
header('Content-transfer-encoding: binary');
// Et on envoie la sauce
echo $result["photo"];
?>(1) : ceci marchera pour une image jpeg. Si tu as plusieurs types d'images, je te conseille d'en enregistrer le type MIME dans la base de données, en rajoutant une colonne "type" à ta table.
- puis, dans ta page principale, mets <form action="furniture.php" method="POST">
<table cellspacing=0" cellpadding="0" border="1">
<?php
if($result) {
while($data = mysql_fetch_assoc($result)) {
printf (
"<tr>
<td><img src='image.php?id=%s' /></td>
<td>%s</td>
<td>%s</td>
<td>%s</td>
</tr>",
$data["id"],
$data["name"],
$data["description"],
$data["country"]
);
} // end while
if(mysql_num_rows($result) == 0) {
$msg.="Aucune information disponible";
}
}
?>
</table>
</form>Bon, voilà, je n'ai pas de quoi tester, là, j'espère que c'est ok ^^
Xavier
|
Xavier,
Notice: Undefined index: id in c:\program files\easyphp1-8\www\test.php on line 3 Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\test.php:3) in c:\program files\easyphp1-8\www\test.php on line 19 A quoi cela peut-il être dû ? Merci. |
Pour relancer la discussion, moi je n'ai aucun message d'erreur, et la seule chose qui s'affiche c'est l'url de l'adresse quand je vais sur
|
Bonjour,
|
Le champ que je cible est bien de type blob et contient bien les données binaires. (d'ailleurs j'avais au départ rajouté "en dur" directement via phpMyAdmiN).
|