| PHP-MySQL : Insérer et Afficher Photos par jakkihm |
jeudi 1 février 2007 à 15:49:27 |
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,
Le meilleur façon, d'après moi, serait de mettre toutes tes photos dans un dossier , style "images" ou "photos", dans le même dossier que ton fichier, pour ne pas rendre la chose plus difficile.... Ensuite, pour l'affichage, tu mets un champ dans ta bdd style "chemin", en relatif ex : "photos/image1.jpg" Finalement, tu insères la photos comme ça : <img src="$data["chemin"]"... P.S. : Moi, j'utilise mysql_fetch_array, qui met les champs dans un tableau... alors vérifie pour mysql_fetch_assoc... Allez, ciao!!! |
|
Bonjour,
Pour garder la structure de ta table, il faut procéder comme suit : - crée un nouveau fichier image.php, contenant : <?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,
J'ai effectué les changements en suivant tes recommandations, mais lorsque j'exécute mon fichier principale le tableau s'affiche sans photos (en fait, une petite icône apparaît comme si l'image en question n'était pas trouvée). Si j'exécute le fichier "image.php", alors je reçois les messages d'erreur suivants: 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. |
Bonjour,
Pour le message d'erreur quand tu lances le fichier image.php, c'est parce que tu l'appelles sans mettre ?id=idImage derrière. Essaie de l'appeler comme ça, avec un id d'image que tu as, et dis-moi ce que ça donne. Xavier |
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
http://localhost/image.php?id=3 |
Bonjour,
Que contient ta base de données ? Contient-elle uniquement l'adresse de la photo ? Dans le cas du message que j'ai publié, la base de données ne contenait pas l'adresse, mais la photo elle-même codée en binaire. Donc echo $result["photo"], ça renvoit bien l'image. Par contre, si comme je le crois la base de données contient uniquement l'adresse de la photo, cette même ligne va renvoyer... l'adresse de l'image seule ! C'est bien ça ? Xavier |
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).
... Eh bien, je viens de modifier quelques lignes qui n'auraient eu (selon moi) aucune incidence, mais le résultat est que ça marche :) J'avais aussi un autre problème pour l'upload, mais je l'ai résolu aussi. Merci de la réponse, et désolé du dérangement :) |
moi en fait mon problème c'est de charger l'image selectionné par pourcourir dans une une page web. je veux bien avoir votre aide afin de réaliser cette tache |
|
Il serait bien que vous partager vos resultats avec nous. Pour pouvoir resoudre nos problemes aussi. |
| 29/05 10h14 | [PHP/ MySQL] recherche affichage du résultat | Programmation | 29/05 11h11 | 2 |
| 28/11 15h50 | [Php/MySql] Insert et Update | Webmastering | 30/05 11h31 | 24 |
| 28/11 14h42 | [Php/MySql] pb affichage "mysql_num_rows" | Webmastering | 28/11 15h44 | 3 |
| 10/01 10h23 | Besoin d'Info PHP/MYSQL pour album photos | Webmastering | 10/09 22h17 | 6 |
![]() | WAMP Server - WAMP5 (WAMP signifiant Windows Apache Mysql PHP) est une plateforme de développement Web sous Windows. Il vous permet de... | Catégorie: Serveurs Licence: Freeware/gratuit |
![]() | MySQL - MySQL est une des systèmes de gestion de bases de données le plus répandu au monde. | Catégorie: Bases de données Licence: Open Source |
![]() | easyPHP - EasyPHP est un environnement de travail packagé comprenant le serveur web Apache, le système de gestion de bases de données... | Catégorie: Serveurs Licence: Open Source |
![]() | Photofiltre - PhotoFiltre est un logiciel de retouche d’images très complet. Il permet d'effectuer des réglages simples ou avancés sur une... | Catégorie: Retouche photo Licence: Freeware/gratuit |