Inserer une image dans une base mysql

Fermé
hawaabdo Messages postés 9 Date d'inscription jeudi 6 août 2009 Statut Membre Dernière intervention 16 août 2009 - 6 août 2009 à 11:43
hawaabdo Messages postés 9 Date d'inscription jeudi 6 août 2009 Statut Membre Dernière intervention 16 août 2009 - 16 août 2009 à 10:11
Bonjour,
voici le code que j'ai mis dans ma page html pour afficher les membres avec leur photos mais ça marche pas svp essayer de voir ce qui cloche moi je vois pas
"<?php
require("connect_db.php");

$req="SELECT *
FROM salarie";

$sql=mysql_query($req);
while($ligne=mysql_fetch_array($sql)){

echo "<tr>";
echo "<td>$ligne[0]</td>";
echo "<td>$ligne[1]</td>";
echo "<td>$ligne[2]</td>";
echo "<td>$ligne[3]</td>";
echo "<td>$ligne[4]</td>";
echo "<td>$ligne[5]</td>";
echo "<td>$ligne[6]</td>";
echo "<td>$ligne[7]</td>";
echo "<td>$ligne[8]</td>";
echo "<td>$ligne[9]</td>";
echo "<td>$ligne[10]</td>";
echo "<td>$ligne[11]</td>";
echo "<td>$ligne[12]</td>";
echo "<td>$ligne[13]</td>";
echo "<td>$ligne[14]</td>";
echo "<td>$ligne[15]</td>";
echo "<td>$ligne[16]</td>";
echo "<td>$ligne[17]</td>";
echo "<td>$ligne[18]</td>";
echo "<td>$ligne[19]</td>";
echo "<td>$ligne[20]</td>";
echo "<td>$ligne[21]</td>";
echo "<td>$ligne[22]</td>";
echo "<td>$ligne[23]</td>";
echo "<td>$ligne[24]</td>";
echo "<td>$ligne[25]</td>";
echo "<td>$ligne[26]</td>";
echo "<td>$ligne[27]</td>";
echo "<td>$ligne[28]</td>";
echo "<td>$ligne[29]</td>";
echo "<td>$ligne[30]</td>";

?>
<img src="http://www.nomdusite.fr echo $ligne[0]; ?>.jpg" alt="Image de <?php echo $ligne[0]; ?>" />
<?php
echo "<td><a href=supsal_fonct.php?id=".$ligne[0].">Supprimer</a></td>";
}
?>
"


merci encore une fois

9 réponses

Utilisateur anonyme
6 août 2009 à 11:47
Ce qui ne marche pas, c'est tout le listage, ou juste pour l'affichage de l'image ?
0
hawaabdo Messages postés 9 Date d'inscription jeudi 6 août 2009 Statut Membre Dernière intervention 16 août 2009
6 août 2009 à 12:01
juste l'affichage de l'image
0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
6 août 2009 à 12:23
Et dans le listage il t'affiche quoi le echo $ligne[0] ??
0
Flohti Messages postés 162 Date d'inscription mercredi 25 juillet 2007 Statut Membre Dernière intervention 7 février 2010 15
6 août 2009 à 12:32
Salut,

Tu nous donnerais le code source généré de ta page?

L'image n'est pas dans la base de données, c'est son nom que tu ressors de la base, tu es sûr d'avoir l'image dans ton dossier "/images/membres/"?

Tu peux vérifier le chemin, ne mettre que le chemin relatif en cas : "/images/membres/" si tu es à la racine, ../images/membres/" si tu étais dans un dossier "http://www.nomdusite.fr" ...

PS : Tu peux alléger ton code aussi, les ouvertures/fermetures de "php" peuvent être éliminées, ainsi que la liste de "echo" (d'ailleurs ils te les mettent tous sur la même ligne) :
<?php
require('connect_db.php');

$req='SELECT *
FROM salarie';

$sql=mysql_query($req);
while($ligne=mysql_fetch_array($sql)){

echo '<tr>
<td>$ligne[0]</td>
<td>$ligne[1]</td>
<td>$ligne[2]</td>
<td>$ligne[3]</td>
<td>$ligne[4]</td>
<td>$ligne[5]</td>
<td>$ligne[6]</td>
<td>$ligne[7]</td>
<td>$ligne[8]</td>
<td>$ligne[9]</td>
<td>$ligne[10]</td>
<td>$ligne[11]</td>
<td>$ligne[12]</td>
<td>$ligne[13]</td>
<td>$ligne[14]</td>
<td>$ligne[15]</td>
<td>$ligne[16]</td>
<td>$ligne[17]</td>
<td>$ligne[18]</td>
<td>$ligne[19]</td>
<td>$ligne[20]</td>
<td>$ligne[21]</td>
<td>$ligne[22]</td>
<td>$ligne[23]</td>
<td>$ligne[24]</td>
<td>$ligne[25]</td>
<td>$ligne[26]</td>
<td>$ligne[27]</td>
<td>$ligne[28]</td>
<td>$ligne[29]</td>
<td>$ligne[30]</td>
// manquerait un "<td>"
<img src="http://www.nomdusite.fr$ligne[0].'.jpg" alt="Image de '.$ligne[0].'" />
// manquerait un "</td>"
<td><a href="supsal_fonct.php?id='.$ligne[0].'">Supprimer</a></td>'; // manquerait un "</tr>"
}
?>

J'ai remplacé tes doubles-quot par des simples pour le php, parce qu'on utilise souvent les doubles dans le (X)HTML, ça évite d'avoir à les échapper.
Je vois autre chose :
Tu dois être en train de construire un tableau, tu en ouvre une ligne au début de la boucle et tu ne la referme jamais, de plus, je pense que l'image aussi devrait se trouver dans une cellule, comme ça toute seule au milieu du tableau j'pense pas qu'ça marche !

Et tu aurais un tableau à plus de 30 colonnes ?

Bon, essaie de rajouter la cellule autour de l'image : '<td><img src="http://www.nomdusite.fr$ligne[0].'.jpg" alt="Image de '.$ligne[0].'" /></td>'
Et referme la ligne à la fin de la boucle : '<td><a href="supsal_fonct.php?id='.$ligne[0].'">Supprimer</a></td>
</tr>'
Et je pense que ça devrait aller mieux, non ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
je comprends pas l'utilité des echos?

vu que tu utilises le while:


tu peux utiliser un foreach à l'interieur :)



while($ligne=mysql_fetch_array($sql)){ 

      foreach($ligne as $value)
            echo "<td>".$value."</td>";

}
0
Flohti Messages postés 162 Date d'inscription mercredi 25 juillet 2007 Statut Membre Dernière intervention 7 février 2010 15
6 août 2009 à 12:58
Exact !!!^^

Plus echo la cellule de l'image, et celle du lien de suppression évidemment
0
hawaabdo Messages postés 9 Date d'inscription jeudi 6 août 2009 Statut Membre Dernière intervention 16 août 2009
8 août 2009 à 10:33
bonjour à tous
j'ai essayé les corrections que vous m'avez fourni mais ça ne marche toujours pas il m'affiche meme pas les autres champs il m'affiche à la place $ligne["le numéro"] et à la place de la photo il m'ecrit "image 1, image 2, ainsi de suite pour tous les membre"

et voici le code que j'ai modifié :
"

<?php
require("connect_db.php");

$req="SELECT *
FROM salarie";

$sql=mysql_query($req);
while($ligne=mysql_fetch_array($sql))
{

echo '<tr>
<td>$ligne[0]</td>
<td>$ligne[1]</td>
<td>$ligne[2]</td>
<td>$ligne[3]</td>
<td>$ligne[4]</td>
<td>$ligne[5]</td>
<td>$ligne[6]</td>
<td>$ligne[7]</td>
<td>$ligne[8]</td>
<td>$ligne[9]</td>
<td>$ligne[10]</td>
<td>$ligne[11]</td>
<td>$ligne[12]</td>
<td>$ligne[13]</td>
<td>$ligne[14]</td>
<td>$ligne[15]</td>
<td>$ligne[16]</td>
<td>$ligne[17]</td>
<td>$ligne[18]</td>
<td>$ligne[19]</td>
<td>$ligne[20]</td>
<td>$ligne[21]</td>
<td>$ligne[22]</td>
<td>$ligne[23]</td>
<td>$ligne[24]</td>
<td>$ligne[25]</td>
<td>$ligne[26]</td>
<td>$ligne[27]</td>
<td>$ligne[28]</td>
<td>$ligne[29]</td>

<td><img src="C:/Program Files/EasyPHP1-7/www/personnels'.$ligne[0].'.jpg" alt="Image de '.$ligne[0].'" /></td>
<td><a href="supsal_fonct.php?id='.$ligne[0].'">Supprimer</a></td> </tr>';
}
?>
"

merci de me repondre
0
hawaabdo Messages postés 9 Date d'inscription jeudi 6 août 2009 Statut Membre Dernière intervention 16 août 2009
8 août 2009 à 10:33
bonjour à tous
j'ai essayé les corrections que vous m'avez fourni mais ça ne marche toujours pas il m'affiche meme pas les autres champs il m'affiche à la place $ligne["le numéro"] et à la place de la photo il m'ecrit "image 1, image 2, ainsi de suite pour tous les membre"

et voici le code que j'ai modifié :
"

<?php
require("connect_db.php");

$req="SELECT *
FROM salarie";

$sql=mysql_query($req);
while($ligne=mysql_fetch_array($sql))
{

echo '<tr>
<td>$ligne[0]</td>
<td>$ligne[1]</td>
<td>$ligne[2]</td>
<td>$ligne[3]</td>
<td>$ligne[4]</td>
<td>$ligne[5]</td>
<td>$ligne[6]</td>
<td>$ligne[7]</td>
<td>$ligne[8]</td>
<td>$ligne[9]</td>
<td>$ligne[10]</td>
<td>$ligne[11]</td>
<td>$ligne[12]</td>
<td>$ligne[13]</td>
<td>$ligne[14]</td>
<td>$ligne[15]</td>
<td>$ligne[16]</td>
<td>$ligne[17]</td>
<td>$ligne[18]</td>
<td>$ligne[19]</td>
<td>$ligne[20]</td>
<td>$ligne[21]</td>
<td>$ligne[22]</td>
<td>$ligne[23]</td>
<td>$ligne[24]</td>
<td>$ligne[25]</td>
<td>$ligne[26]</td>
<td>$ligne[27]</td>
<td>$ligne[28]</td>
<td>$ligne[29]</td>

<td><img src="C:/Program Files/EasyPHP1-7/www/personnels'.$ligne[0].'.jpg" alt="Image de '.$ligne[0].'" /></td>
<td><a href="supsal_fonct.php?id='.$ligne[0].'">Supprimer</a></td> </tr>';
}
?>
"

merci de me repondre
0
Flohti Messages postés 162 Date d'inscription mercredi 25 juillet 2007 Statut Membre Dernière intervention 7 février 2010 15
9 août 2009 à 17:43
Oups^^, j'ai pas concaténué :

echo '<tr>
<td>'.$ligne[0].'</td>
<td>'.$ligne[1].'</td>
<td>'.$ligne[2].'</td>// ...


Les images ?!?

T'as pas d'espaces dans la variable?

Vérifie le chemin créé : C:/Program Files/EasyPHP1-7/www/personnels'.$ligne[0].'.jpg

genre le "C:/Programme Files/..." peut-être à changer en relatif : /personnels'.$ligne[0].'.jpg, si ta page est bien dans /www

Mais, on a dit foreach aussi^^ :

<?php
require("connect_db.php");

$req="SELECT *
FROM salarie";

$sql=mysql_query($req);
while($ligne=mysql_fetch_array($sql))
{

echo '<tr>';

foreach($ligne as $value)
            echo '<td>'.$value.'</td>';

// si "personnels" n'est pas un dossier mais bien une partie du nom de l'image, sinon il faut mettre un "/" après "personnels/" !!!
echo '<td><img src="/personnels'.$ligne[0].'.jpg" alt="Image de '.$ligne[0].'" /></td>
<td><a href="supsal_fonct.php?id='.$ligne[0].'">Supprimer</a></td> </tr>';
}
?>
0
hawaabdo Messages postés 9 Date d'inscription jeudi 6 août 2009 Statut Membre Dernière intervention 16 août 2009
11 août 2009 à 10:09
ca marche pas
ca affiche tout les informations sauf les photos
je sais pas koi faire
je suis désespérée
0
Bonjour hawaabdo,

Je me permet de reprendre ton code pour y faire quelques corrections déjà pour y voir plus clair ^^.
Mais sans voir le contenu de ta base c'est pas évident.
J'ai mis des commentaires dans ton code tu les verras apparaitre en vert sur un éditeur de texte genre Notepad++.

<?php
	/**
	 * Affichage du tableau des salariés
	 */

	// Connexion à la base
	require("connect_db.php");

	$sql = mysql_query("
		SELECT *
		FROM salarie
	");
	
	// On crée une variable pour l'affichage
	// plutôt que de faire plein d'écho dans 
	// la boucle => optimisation du temps
	// d'affichage
	$out = "";
	
	/**
	 * Dossier des images des salariés
	 * Plutôt que de mettre un lien absolu :
	 *  		"C:/Program Files/EasyPHP1-7/www/personnels/image.jpg"
	 *  Il vaut mieux choisir un lien relatif (si tu connais pas renseigne toi sur internet
	 * 	pour comprendre la syntaxe :
	 * 		"../personnels/image.jpg" si la page est dans un dossier différent des images
	 * 		"image.jpg" si la page est dans le même dossier
	 */
	$dossier_img = "../personnels/";
	$ext_img = ".jpg";


	
	// Dosisi
	
	// On parcours toutes les lignes du résultat de la requête
	while($ligne = mysql_fetch_array($sql)) {
	
		// Une nouvelle ligne
		$out .= "<tr>";
		
		// On parcours tous les champs de la ligne actuelle
		foreach ($ligne as $val) {
		
			// On ajoute une cellule dans le tableau
			$out .= "<td>$val</td>";
			
		}
		
		// Nom de la personne
		$nom = $ligne[0]; // Plutôt que de mettre ligne[0] met ligne[nomDuChampSQL] (ex:ligne[photo] si la colonne s'appelle photo) c plus lisible
		
		// On affiche l'image du salarié

		// Quand tu écris une chaine en php et que tu veux mettre des " à l'intérieur
		// n'oublie pas de les remplacer par \" sinon PHP pensera que tu découpes ta chaine
		$image = $dossier_img . $nom . $ext_img;
		$out .= "<td><img src=\"$image\" alt=\"Image de $nom\" title=\"Voici l'image de $nom\" /></td>";
		
		// Lien qui fait je sais pas quoi ^^, t'as encore oublié de remplacer les " par des \" ;)
		$out .= "<td><a href=\"supsal_fonct.php?id=$nom\">Supprimer</a></td>";
	
		// Fin de ligne
		$out .= "</tr>";
	}
?>


En principe ça devrait marcher cette fois !
Bon courage ;)
0
Flohti Messages postés 162 Date d'inscription mercredi 25 juillet 2007 Statut Membre Dernière intervention 7 février 2010 15 > Bludwarf
11 août 2009 à 22:54
Salut,

En général, étant donné qu'on utilise beaucoup les " en (X)HTML, j'ai tendance à préférer les ' pour le php, cela n'engage que moi évidemment.
Et je me permets, de plus, de changer ceux visibles, ainsi que les accents, " pour citations ou quoi = &quot; et ' pour toutes les apostrophes en grande partie = &rsquo;

Avec tout ça j'évite pratiquement tout échappement et risques éventuelles d'erreurs de codage.

Entièrement d'accord avec la variable de sortie, ça permet entre autre de revenir dessus ou de faire, enfin de compte, autre chose.
0
hawaabdo Messages postés 9 Date d'inscription jeudi 6 août 2009 Statut Membre Dernière intervention 16 août 2009
16 août 2009 à 10:11
salut,

je ne sais pas quoi dire ni commennt vous remercier
merci milles fois à tous
vous êtes vraiment coul
ça marche bien
merci encore une fois et à +
0