> Tous les forums > Forum des Webmasters
 Afficher des images issues d'une boucle while phpSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
t14
  Posté le 13/07/2022 @ 11:15 
Aller en bas de la page 
Petit astucien

Bonjour,

Je n'arrive pas à afficher une image à partir de ce code ci-dessous. Je pense qu'il y a une erreur de syntaxe

<?php   include ('connexion/connexion.php'); 

$query = 'SELECT * FROM liste_chats ORDER BY id ASC'; 
$result = mysql_query($query) or die(mysql_error());

//******* Affichage description du chat *****

$id = $_GET['id']; 

while ($row = mysql_fetch_array($result)) 
{
	if (!empty($row['descript_chat']))	
	{
		echo '<div class="descript_chat">';
		echo ''.$row['descript_chat'].'';
		echo '</div>';
	}

	if (!empty($row['photo1']))
	{       
		echo '<img src="images/chats/'.$row['photo1'].'">';
	}
}

mysql_close();
exit;
?>

En retour, je n'ai qu'une icône .....

Merci

Publicité
didier_b
 Posté le 13/07/2022 à 18:33 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bjr,

Je ne suis pas spécialiste du PHP (juste autodidacte).

D'abord, je m'assurerais que l'url de l'image est bien correcte en faisant une page html avec juste de <img ...> et l'url en dur.

Puis je ferais un affichage de la source de la page renvoyée par le serveur, idéalement dans un éditeur de texte avec coloration syntaxique (en particulier voir l'url passée à src de la balise img).

Ensuite, je crois que tout le "petit" monde des instructions mysl est déprécié, au profit de mysqli (si possible, voir les erreurs apache sur le serveur; perso je me suis fait un scrip php rien que pour ça).

Bon, c'est une contribution à deux sous, mais j'ai appris qu'afficher la source d'une page incorrecte est une toute première démarche très productive (quand on est autodidacte, ça se produit souvent )

t14
 Posté le 13/07/2022 à 18:48 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci ! En effet j'ai revu mes liens dans la bd !

didier_b
 Posté le 13/07/2022 à 18:58 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Cool ! Merci pour le retour

t14
 Posté le 13/07/2022 à 19:28 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
didier_b a écrit :

Cool ! Merci pour le retour

J'ai donc tenter de mettre l'adresse du site complète qui mène à la photo pour $dossier. A la saisie d'écriture dans la bd, la première fois ça a fonctionné. Mais après, j'ai eu le message :

Warning: move_uploaded_file(https://th1.free.fr/tatachat/images/chats/tiana2.JPG) [function.move-uploaded-file]: failed to open stream: No such file or directory in /mnt/168/sda/5/0/th1/tatachat/gestion/add_chat.php on line 25

zoulouman
 Posté le 13/07/2022 à 21:11 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Tu devrais vérifier ce que retourne ta requête SQL.
Tu fais un truc du style :

while ($row = mysql_fetch_array($result)) 
{
    echo '<div>';
	if (!empty($row['descript_chat']))	
	{
		echo $row['descript_chat']. '<br/>';
	}
    echo '</div>';

	if (!empty($row['photo1']))
	{       
		echo '<span>images/chats/'. $row['photo1']. '><br /></span>';
	}
}

En voyant ce que tu sors de la base de données et la façon dont tu le traites, tu y verras bien plus clair.

Et comme te le dit Didier, fais gaffe ! MySQL est obsolète !

didier_b
 Posté le 13/07/2022 à 23:19 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien
t14 a écrit :
didier_b a écrit :

Cool ! Merci pour le retour

J'ai donc tenter de mettre l'adresse du site complète qui mène à la photo pour $dossier. A la saisie d'écriture dans la bd, la première fois ça a fonctionné. Mais après, j'ai eu le message :

Warning: move_uploaded_file(https://th1.free.fr/tatachat/images/chats/tiana2.JPG) [function.move-uploaded-file]: failed to open stream: No such file or directory in /mnt/168/sda/5/0/th1/tatachat/gestion/add_chat.php on line 25

Je ne comprends plus très bien; je n'ai pas vu ce move_uploaded_file dans ton code. Je suis un peu largué là.

Est-ce que tu as pu valider ton code en mettant l'url d'une image en dur dans <img src=[ici l'adresse en dur] ...> ?

Et fait la manip préconisée par zoulouman, il faut aussi t'assurer des données que tu fournis à ton script.

t14
 Posté le 14/07/2022 à 11:16 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Effectivement ! Le move_uploaded_file se situe dans le script d'écriture de l'enregistrement dans la bd.

D'abord, je saisie le futur enregistrement dans un formulaire

<html><body>

<form enctype="multipart/form-data" action="add_chat.php?id='.$id.'&$photo1='.photo1.',$descript_chat='.descript_chat.'" method="POST" value="envoyer" name="soumettre">

<center><table width="975">
	  	
<tr><td width="450"><h2><u>Insérer une photo :</u><br><font size="2"> Sélectionnez l\'image sur votre disque dur. Vous ne pouvez uploader que des fichiers de type png , gif , jpg , jpeg ou bmp, de taille limitée à 2Mo.</font></td>
<td><input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
<input type="file" name="photo1" size="51" /></td></tr>
</form>
	
<tr align="left"><td><b>Description du chat : </b></td></tr><tr><td><textarea name="descript_chat" cols="70" rows="30"></textarea></td></tr><p>
	
<td>
<input type="submit" name="preview" value="Valider">
<input type="reset" value="Effacer">
<input type="button" name="lien" value="Retour" onClick="javascript:history.back()">
<input type="button" name="lien" value="Annuler" onClick="self.location.href='../index.php'">

</td></tr></center>

</body></html>

Puis j'écris l'enregistrement dans la bd

<?php   include ('../connexion/connexion.php'); 
$id=$_POST['id'];
$photo1=$_POST['photo1'];
$descript_chat=$_POST['descript_chat'];

//***	description du chat ***

$descript_chat = stripslashes($descript_chat); //----pour éviter les \ ds le descript_chat-------------- 
$descript_chat = mysql_real_escape_string($descript_chat);
$descript_chat = eregi_replace("([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])","<A HREF=\"\\1://\\2\\3\" TARGET=\"_blank\">\\1://\\2\\3</A>",$descript_chat);

//*** Insertion photo1 ****	
	
$dossier = 'images/chats/';
$photo1 = basename($_FILES['photo1']['name']);

if (!empty($photo1)) 
{
	$photo1 = strtr($photo1,'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ','AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
	$photo1 = preg_replace('/([^.a-z0-9]+)/i', '_', $photo1);
	move_uploaded_file($_FILES['photo1']['tmp_name'],$dossier.$photo1);
}

$requete = mysql_query("INSERT INTO liste_chats(photo1, descript_chat) VALUES ('$dossier$photo1','$descript_chat')") or die('Erreur SQL !'.$sql.mysql_error());

header("Location: http://th1.free.fr/tatachat/liste_chats.php");

exit();
mysql_close();
?>

Et dans ce script, j'ai l'erreur

Warning: move_uploaded_file(images/chats/tiana2.JPG) [function.move-uploaded-file]: failed to open stream: No such file or directory in /mnt/168/sda/5/0/th1/tatachat/gestion/add_chat.php on line 24Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/mnt/168/sda/5/0/th1/php9SisS4' to 'images/chats/tiana2.JPG' in /mnt/168/sda/5/0/th1/tatachat/gestion/add_chat.php on line 24

t14
 Posté le 14/07/2022 à 11:33 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

J'ai trouvé !!!!

Dans le script d'écriture de la bd + insertion de la photo dans le dossier, je n'avais défini qu'une variable $dossier. J'en crée une deuxième $dossier2

//*** Insertion photo1 ****	
	
$dossier = 'images/chats/'; //Pour écriture bd ok
$dossier2 = '../images/chats/'; // Pour insertion images dans fichier
$photo1 = basename($_FILES['photo1']['name']);

if (!empty($photo1)) 
{
	$photo1 = strtr($photo1,'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ','AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
	$photo1 = preg_replace('/([^.a-z0-9]+)/i', '_', $photo1);
	move_uploaded_file($_FILES['photo1']['tmp_name'], $dossier2.$photo1);
}

Merci à vous !

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
Mini PC NiPoGi H1 (Ryzen 7 6800HU, 16 Go RAM, SSD 512 Go, Radeon 680M, Windows 11 Pro)
333,48 € 429 € -22%
@Amazon
Smartphone Poco M6 (6,79'', Full HD+ , 8 coeurs, 6 Go Ram, 128 Go)
104,11 € 159,99 € -35%
@AliExpress
Lot de 2 sachets de café en grains entiers Melitta Bellacrema (2x1 Kg)
22,06 € 34,98 € -37%
@Amazon
Rasoir Gillette Fusion5 (5 lames) + 11 recharges de lames à 24,99 €
24,99 € 41,45 € -40%
@Amazon
Batterie portable Ugreen Nexode 140W 25 000 mAh (1xUSB C 100W PD, 1x USB C 45W PD, 1xUSB A 18W)
58,57 € 99,99 € -41%
@Amazon Espagne
Mini PC ACEMAGICIAN Vista V1 (Alder Lake N97, 16 Go RAM, SSD 256 Go, Windows 11)
150,41 € 179,99 € -16%
@Amazon

Sujets relatifs
Afficher des images sur une page php
PHP : afficher aléatoirement des images
Avoir un lien avec des images sur une feuile html
Requete Sql, afficher une seul fois dans boucle
Redimensionner des images en php
récuperer des valeurs en boucle (php)resolu
une croix au lieu des images
Pb PHP : afficher contenu d'une base de données
cadrer des images HTML & CSS
insérer des données depuis un tableau dans une base
Plus de sujets relatifs à Afficher des images issues d''une boucle while php
 > Tous les forums > Forum Forum des Webmasters