Myphp_51 |
Le 01/04/2008 à 06:29 |
|
|
Bonjour,
J'aimerai avoir un exemple d'un code PHP complet qui pourra me permettre d'afficher une images à partir d'une url indiqué dans une base de donnée MySQL.
Merci -- Merci |
Anthony |
Le 01/04/2008 à 10:17 |
|
 Admin |
Salut  Je te laisse regarder d'abord ceci, car pour moi donner un code complet ne sert à rien : Récupérer des données en PHP / MySQLEnsuite voici la requête que je choisirais (il faut auparavant faire ceci) :
<?php
//$_GET['id'] sera appelé en fait quand on ira voir par exemple page.php?id=1 et cette "page.php" servira à afficher les images
if(isset($_GET['id']) AND ctype_digit($_GET['id']))
{
//ici la connexion à la base telle qu'elle a été vue dans le lien que je t'ai montré
$requete = mysql_query('SELECT url FROM table WHERE id_image='.$_GET['id']) OR die('erreur');
mysql_close();
if(mysql_num_rows($requete) === 0)
{
exit;
}
$r = mysql_fetch_object($requete);
echo '<img src="',$r->url,'" alt="" />';
}
?>
Pour le ctype_digit() il s'agit de vérifier que l'on entre bien un nombre entier. Le champ ID est un champ en autoincrement, le champ url un champ VARCHAR de 255 caractères (en général ça suffit). Pour voir pourquoi j'ai mis un ctype_digit(), je t'invite à aller voir ce lien : Sécuriser son site PHP. Voilà  N'hésites pas en cas de problème ;) -- 
|
Myphp_51 |
Le 01/04/2008 à 18:16 |
|
|
Merci Anthony,
Je vais essayer de suivre vos instructions pas à pas. -- Merci |
Anthony |
Le 01/04/2008 à 20:57 |
|
 Admin |
De rien :) Si ton problème est résolu, tu pourras cliquer sur "réponse acceptée" stp ? merci  -- 
|
Myphp_51 |
Le 02/04/2008 à 00:07 |
|
|
Pour le champ ID, je n'ai pas besoin, parce que je l'utilise pas dans dans ma table, et pour expliquer bien : - J'ai une table nommé projet
- dans projet il y a un seul champ nommé etat
- et dans etat il y a une adresse url inséré à l'aide d'un formulaire de boutons radio, ex : images/image.gif
Alors dans ma page nommé resultat.php je dois voir l'image image.gif affiché.
J'ai lu ce que vous m'avez proposé par votre lien, c'est bien pour moi car j'ai appris plusieurs choses sur le php et MySQL, et j'ai essayé de suivre les étapes mais là j'ai échoué car plusieurs erreurs s'affichent sur la page.
Je crois que votre aide me guidera vers la solution car avant tous je suis encore un débutant sur le php.
Merci
-- Merci |
Anthony |
Le 02/04/2008 à 00:58 |
|
 Admin |
Il faudrait que tu nous donnes ton code pour qu'on puisse t'aider ;) -- 
|
Myphp_51 |
Le 02/04/2008 à 01:22 |
|
|
Voilà, je viens de résoudre le problème voici le code :
<?php
mysql_connect('localhost', 'root', '') OR die('Erreur de connexion à la base');
mysql_select_db('database') OR die('Erreur de sélection de la base');
$requete = mysql_query('SELECT champ FROM table') OR die('Erreur de la requête MySQL');
mysql_close();
while($resultat = mysql_fetch_assoc($requete))
{
echo '<img src="'.$resultat['champ'].'" alt="" />';
}
?>
Franchement grand merci Anthony pour votre lien qui m'a été d'une grande utilité pour résoudre l'affaire.
Mais, il y a encore un petit truc, ce que j'ai ajouté un champ nommé id et je souhaite afficher l'image correspondant à son id, pas de cette façon : page.php?id=6 mais plutôt un peu comme ça :
while($resultat = mysql_fetch_assoc($requete))
{
echo '<img src="'.$resultat['champ'].'?id=6'.'" alt="" />';
}
J'ai essayé mais ça pas marché, parce que je vais insérer manuellement ce code dans plusieurs colonnes HTML ex :
<table>
<tr>
<td><?php echo '<img src="'.$resultat['champ'].'?id=1'.'" alt="" />'; ?></td>
<td><?php echo '<img src="'.$resultat['champ'].'?id=2'.'" alt="" />'; ?></td>
<td><?php echo '<img src="'.$resultat['champ'].'?id=7'.'" alt="" />'; ?></td>
</tr>
<tr>
<td><?php echo '<img src="'.$resultat['champ'].'?id=8'.'" alt="" />'; ?></td>
<td><?php echo '<img src="'.$resultat['champ'].'?id=2'.'" alt="" />'; ?></td>
<td><?php echo '<img src="'.$resultat['champ'].'?id=3'.'" alt="" />'; ?></td>
</tr>
</table>
Il manque un petit code que je le sais pas, car de cette façon, j'aurai la possibilité d'afficher plusieurs images d'après leurs numéro id.
Merci -- Merci |
Anthony |
Le 02/04/2008 à 09:43 |
|
 Admin |
Dans ce cas là il faut que ta requête MySQL soit adaptée en conséquence : SELECT champ FROM table WHERE id=X ou si tu veux récupérer plusieurs id comme ceci : SELECT champ FROM table WHERE id IN(X, Y, Z) n'oublie pas de placer un index sur ton champ ID. Pour des explications sur les index et à quoi ça sert, voici un lien : Optimiser MySQLDonc une fois que tu as fait l'une des deux requêtes, si c'est la première tu peux oublier le while vu qu'il n'y aura qu'une ligne de retournée, sinon tu gardes ton while. Ensuite normalement les url des images ayant un id différent sont différentes non ? donc pour moi ça ne doit pas vraiment changer, sauf si la page qui affiche l'image est dynamique, dans ce cas là tu fais ça : echo '<img src="'.$resultat['champ'].'?id='.$resultat['id'].'" alt="" />'; -- 
|
Myphp_51 |
Le 04/04/2008 à 02:56 |
|
|
ça pas marché  ,
<?php
require('connection.php');
if(isset($_GET['id']) AND ctype_digit($_GET['id']))
{
$requete = mysql_query('SELECT champ FROM table WHERE id IN(X, Y, Z)') OR die('Erreur de la requête MySQL');
mysql_close();
if(mysql_num_rows($requete) === 0)
{
exit;
}
$r = mysql_fetch_object($requete);
echo '<img src="'.$resultat['champ'].'?id=1" alt="" />';
echo '<img src="'.$resultat['champ'].'?id=2" alt="" />';
echo '<img src="'.$resultat['champ'].'?id=14" alt="" />';
}
?>
dans la même page, je veux afficher plusieurs images à l'aide d' idMerci -- Merci |
Anthony |
Le 04/04/2008 à 12:40 |
|
 Admin |
$requete = mysql_query('SELECT champ FROM table WHERE id IN(X, Y, Z)') OR die('Erreur de la requête MySQL');
===> X, Y, Z ce sont des id que tu souhaites ... faut pas recopier ça dans la requête ... ralala le copier-coller ... tu veux plusieurs id donc faut les sélectionner parmi une liste. Ta requête au final ça peut être $requete = mysql_query('SELECT champ FROM table WHERE id IN(1, 2, 3)') OR die('Erreur de la requête MySQL'); -- 
|