Uploder des photos
audi68
Messages postés
626
Statut
Membre
-
audi68 Messages postés 626 Statut Membre -
audi68 Messages postés 626 Statut Membre -
Bonjour,
J aimerais rajouter des photos sur mon serveur grace a la partie admin
J arrive a les charger et les renomer
Puis je veux less inserer dans la base mysql et ca va aussi
Le probleme est qu il me met a chaque fois le nom de la photo suivante dans la ligne suivante
Moi j aimerais arriver a un tableau du genre id photo1 url1 photo2 url2 et ainsi de suite
Est ce que cela est possible?
Voici mon code
<?php
session_start();
if (!isset($_SESSION['email'])) {
header ('Location: index.php');
exit();
}
// On récupère le contenu de $_GET dans l'adresse, soit ce qu'il y a après page.php?id=
$idd=$_GET['id'];
function rewrite($c)
{
$c = strtr($c,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$c = preg_replace('`([^[:alnum:]]+)`', '_', $c);
return strtolower($c);
}
if( !empty($_FILES['photo']) )
{
$extensionValide = array( 'jpg' , 'jpeg' , 'gif' , 'png' , 'bmp' );
$maxSize = 2097152;
$dirUpload = 'upload/';
$nbImg = count($_FILES['photo']['name']);
$arrImg = array(); // Sert à stocker les infos que l'on veut garder des images et les messages
// Vérification des images et upload si ok
for( $i=0; $i<$nbImg; $i++ )
{
if( !empty($_FILES['photo']['name'][$i]) ) // && is_uploaded_file($_FILES['photo']['name'][$i]) )
{
// Traitement des erreurs
if( !$_FILES['photo']['error'][$i] )
$arrImg[$i]['upload'] = true;
else
{
$arrImg[$i]['upload'] = false;
if( $_FILES['photo']['error'][$i] == 1 )
$arrImg[$i]['message'] = 'L\'image ' . $_FILES['photo']['name'][$i] . ' excède la taille maximale autorisée qui est de ' . floor(2097152/1024) . ' ko';
else
$arrImg[$i]['message'] = 'L\'image ' . $_FILES['photo']['name'][$i] . ' n\'a pu être transférée sur le serveur';
}
// Vérification des extensions
if( $arrImg[$i]['upload'] && !array($ext = strtolower(pathinfo($_FILES['photo']['name'][$i], PATHINFO_EXTENSION)), $extensionValide) )
{
$arrImg[$i]['upload'] = false;
$arrImg[$i]['message'] = 'L\'extension de l\'image ' . $_FILES['photo']['name'][$i] . ' n\'est pas de type autorisé';
}
elseif( $arrImg[$i]['upload'] )
{
$arrImg[$i]['ext'] = $ext;
$arrImg[$i]['nom'] = rewrite(substr($_FILES['photo']['name'][$i], 0, -(strlen($ext)+1)));
}
// Vérification du mime
if( $arrImg[$i]['upload'] && !($mime = @getimagesize($_FILES['photo']['tmp_name'][$i])) )
{
$arrImg[$i]['upload'] = false;
$arrImg[$i]['message'] = 'Le fichier ' . $_FILES['photo']['name'][$i] . ' n\'est pas une image';
}
// Vérification de la taille
if( $arrImg[$i]['upload'] && filesize($_FILES['photo']['tmp_name'][$i]) > $maxSize )
{
$arrImg[$i]['upload'] = false;
$arrImg[$i]['message'] = 'L\'image ' . $_FILES['photo']['name'][$i] . ' dépasse ' . floor(2097152/1024) . 'ko';
}
//
// Creation d'un identifiant
//
$num =$dirUpload . uniqid(rand()) . $arrImg[$i]['nom'] . '.' . $arrImg[$i]['ext'];
// Upload si tout est ok
if( $arrImg[$i]['upload'] )
{
$upload = move_uploaded_file($_FILES['photo']['tmp_name'][$i], $num );
//
mysql_connect ( );
mysql_select_db (' ');
mysql_query('INSERT INTO photos2 (idd, photo, url) VALUES ( "'.$idd.'", "'.$_FILES['photo']['name'][$i].'", "'.$num.'" )');
//
//
$file = ''.$num.''; # L'emplacement de l'image à redimensionner. L'image peut être de type jpeg, gif ou png
$x = 125;
$y = 75; # Taille en pixel de l'image redimensionnée
$size = getimagesize($file);
if ( $size) {
echo 'Image en cours de redimensionnement...
';
if ($size['mime']=='image/jpeg' ) {
$img_big = imagecreatefromjpeg($file); # On ouvre l'image d'origine
$img_new = imagecreate($x, $y);
# création de la miniature
$img_mini = imagecreatetruecolor($x, $y)
or $img_mini = imagecreate($x, $y);
// copie de l'image, avec le redimensionnement.
imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);
imagejpeg($img_mini,$file );
}
elseif ($size['mime']=='image/png' ) {
$img_big = imagecreatefrompng($file); # On ouvre l'image d'origine
$img_new = imagecreate($x, $y);
# création de la miniature
$img_mini = imagecreatetruecolor($x, $y)
or $img_mini = imagecreate($x, $y);
// copie de l'image, avec le redimensionnement.
imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);
imagepng($img_mini,$file );
}
elseif ($size['mime']=='image/gif' ) {
$img_big = imagecreatefromgif($file); # On ouvre l'image d'origine
$img_new = imagecreate($x, $y);
# création de la miniature
$img_mini = imagecreatetruecolor($x, $y)
or $img_mini = imagecreate($x, $y);
// copie de l'image, avec le redimensionnement.
imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);
imagegif($img_mini,$file );
}
echo 'Image redimensionnée !
'; ///
}
if( $upload )
$arrImg[$i]['message'] = 'L\'image ' . $_FILES['photo']['name'][$i] . ' a été transférée avec succès';
else
$arrImg[$i]['message'] = 'Un problème est survenu dans la tentative de transfert de l\'image ' . $_FILES['photo']['name'][$i];
}
}
}
// Résultat de l'upload
echo "<h2>Résultat du transfert</h2>\n";
echo "<ul>\n";
if( !empty($arrImg) )
{
foreach( $arrImg as $k => $arr )
echo '<li>' . htmlspecialchars($arrImg[$k]['message']) . "</li>\n";
}
else
echo "<li>Aucune image n'a été envoyée</li>";
echo "</ul>\n";
}
else
{
?>
<form name="form1" enctype="multipart/form-data" method="post" action="">
<input type="hidden" name="MAX_FILE_SIZE" value="2097152" />
<label>
<input name="photo[]" type="file" id="photo1">
</label>
<p>
<label>
<input name="photo[]" type="file" id="photo2">
</label>
</p>
<p>
<label>
<input name="photo[]" type="file" id="photo3">
</label>
</p>
<p>
<label>
<input name="photo[]" type="file" id="photo4">
</label>
</p>
<p>
<label>
<input name="photo[]" type="file" id="photo5">
</label>
</p>
<p>
<label>
<input name="photo[]" type="file" id="photo6">
</label>
</p>
<p>
<label>
<input name="photo[]" type="file" id="photo7">
</label>
</p>
<p>
<label>
<input name="photo[]" type="file" id="photo8">
</label>
</p>
<p>
<label>
<input name="photo[]" type="file" id="photo9">
</label>
</p>
<p>
<label>
<input name="photo[]" type="file" id="photo10">
</label>
</p>
<p>
<label>
<input name="photo[]" type="file" id="photo11">
</label>
</p>
<p>
<label>
<input name="photo[]" type="file" id="photo12">
</label>
</p>
<p>
<label>
<input name="photo[]" type="file" id="photo13">
</label>
</p>
<p>
<label>
<input name="photo[]" type="file" id="photo14">
</label>
</p>
<p>
<label>
<input name="photo[]" type="file" id="photo15">
</label>
</p> <p>
<label>
<input name="photo[]" type="file" id="photo16">
</label>
</p>
<p>
<label>
<input type="submit" name="Submit" value="Envoyer">
</label>
</p>
</form>
<?php
}
?>
</body>
</html>
merci de votre aide
J aimerais rajouter des photos sur mon serveur grace a la partie admin
J arrive a les charger et les renomer
Puis je veux less inserer dans la base mysql et ca va aussi
Le probleme est qu il me met a chaque fois le nom de la photo suivante dans la ligne suivante
Moi j aimerais arriver a un tableau du genre id photo1 url1 photo2 url2 et ainsi de suite
Est ce que cela est possible?
Voici mon code
<?php
session_start();
if (!isset($_SESSION['email'])) {
header ('Location: index.php');
exit();
}
// On récupère le contenu de $_GET dans l'adresse, soit ce qu'il y a après page.php?id=
$idd=$_GET['id'];
function rewrite($c)
{
$c = strtr($c,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$c = preg_replace('`([^[:alnum:]]+)`', '_', $c);
return strtolower($c);
}
if( !empty($_FILES['photo']) )
{
$extensionValide = array( 'jpg' , 'jpeg' , 'gif' , 'png' , 'bmp' );
$maxSize = 2097152;
$dirUpload = 'upload/';
$nbImg = count($_FILES['photo']['name']);
$arrImg = array(); // Sert à stocker les infos que l'on veut garder des images et les messages
// Vérification des images et upload si ok
for( $i=0; $i<$nbImg; $i++ )
{
if( !empty($_FILES['photo']['name'][$i]) ) // && is_uploaded_file($_FILES['photo']['name'][$i]) )
{
// Traitement des erreurs
if( !$_FILES['photo']['error'][$i] )
$arrImg[$i]['upload'] = true;
else
{
$arrImg[$i]['upload'] = false;
if( $_FILES['photo']['error'][$i] == 1 )
$arrImg[$i]['message'] = 'L\'image ' . $_FILES['photo']['name'][$i] . ' excède la taille maximale autorisée qui est de ' . floor(2097152/1024) . ' ko';
else
$arrImg[$i]['message'] = 'L\'image ' . $_FILES['photo']['name'][$i] . ' n\'a pu être transférée sur le serveur';
}
// Vérification des extensions
if( $arrImg[$i]['upload'] && !array($ext = strtolower(pathinfo($_FILES['photo']['name'][$i], PATHINFO_EXTENSION)), $extensionValide) )
{
$arrImg[$i]['upload'] = false;
$arrImg[$i]['message'] = 'L\'extension de l\'image ' . $_FILES['photo']['name'][$i] . ' n\'est pas de type autorisé';
}
elseif( $arrImg[$i]['upload'] )
{
$arrImg[$i]['ext'] = $ext;
$arrImg[$i]['nom'] = rewrite(substr($_FILES['photo']['name'][$i], 0, -(strlen($ext)+1)));
}
// Vérification du mime
if( $arrImg[$i]['upload'] && !($mime = @getimagesize($_FILES['photo']['tmp_name'][$i])) )
{
$arrImg[$i]['upload'] = false;
$arrImg[$i]['message'] = 'Le fichier ' . $_FILES['photo']['name'][$i] . ' n\'est pas une image';
}
// Vérification de la taille
if( $arrImg[$i]['upload'] && filesize($_FILES['photo']['tmp_name'][$i]) > $maxSize )
{
$arrImg[$i]['upload'] = false;
$arrImg[$i]['message'] = 'L\'image ' . $_FILES['photo']['name'][$i] . ' dépasse ' . floor(2097152/1024) . 'ko';
}
//
// Creation d'un identifiant
//
$num =$dirUpload . uniqid(rand()) . $arrImg[$i]['nom'] . '.' . $arrImg[$i]['ext'];
// Upload si tout est ok
if( $arrImg[$i]['upload'] )
{
$upload = move_uploaded_file($_FILES['photo']['tmp_name'][$i], $num );
//
mysql_connect ( );
mysql_select_db (' ');
mysql_query('INSERT INTO photos2 (idd, photo, url) VALUES ( "'.$idd.'", "'.$_FILES['photo']['name'][$i].'", "'.$num.'" )');
//
//
$file = ''.$num.''; # L'emplacement de l'image à redimensionner. L'image peut être de type jpeg, gif ou png
$x = 125;
$y = 75; # Taille en pixel de l'image redimensionnée
$size = getimagesize($file);
if ( $size) {
echo 'Image en cours de redimensionnement...
';
if ($size['mime']=='image/jpeg' ) {
$img_big = imagecreatefromjpeg($file); # On ouvre l'image d'origine
$img_new = imagecreate($x, $y);
# création de la miniature
$img_mini = imagecreatetruecolor($x, $y)
or $img_mini = imagecreate($x, $y);
// copie de l'image, avec le redimensionnement.
imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);
imagejpeg($img_mini,$file );
}
elseif ($size['mime']=='image/png' ) {
$img_big = imagecreatefrompng($file); # On ouvre l'image d'origine
$img_new = imagecreate($x, $y);
# création de la miniature
$img_mini = imagecreatetruecolor($x, $y)
or $img_mini = imagecreate($x, $y);
// copie de l'image, avec le redimensionnement.
imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);
imagepng($img_mini,$file );
}
elseif ($size['mime']=='image/gif' ) {
$img_big = imagecreatefromgif($file); # On ouvre l'image d'origine
$img_new = imagecreate($x, $y);
# création de la miniature
$img_mini = imagecreatetruecolor($x, $y)
or $img_mini = imagecreate($x, $y);
// copie de l'image, avec le redimensionnement.
imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$size[0],$size[1]);
imagegif($img_mini,$file );
}
echo 'Image redimensionnée !
'; ///
}
if( $upload )
$arrImg[$i]['message'] = 'L\'image ' . $_FILES['photo']['name'][$i] . ' a été transférée avec succès';
else
$arrImg[$i]['message'] = 'Un problème est survenu dans la tentative de transfert de l\'image ' . $_FILES['photo']['name'][$i];
}
}
}
// Résultat de l'upload
echo "<h2>Résultat du transfert</h2>\n";
echo "<ul>\n";
if( !empty($arrImg) )
{
foreach( $arrImg as $k => $arr )
echo '<li>' . htmlspecialchars($arrImg[$k]['message']) . "</li>\n";
}
else
echo "<li>Aucune image n'a été envoyée</li>";
echo "</ul>\n";
}
else
{
?>
<form name="form1" enctype="multipart/form-data" method="post" action="">
<input type="hidden" name="MAX_FILE_SIZE" value="2097152" />
<label>
<input name="photo[]" type="file" id="photo1">
</label>
<p>
<label>
<input name="photo[]" type="file" id="photo2">
</label>
</p>
<p>
<label>
<input name="photo[]" type="file" id="photo3">
</label>
</p>
<p>
<label>
<input name="photo[]" type="file" id="photo4">
</label>
</p>
<p>
<label>
<input name="photo[]" type="file" id="photo5">
</label>
</p>
<p>
<label>
<input name="photo[]" type="file" id="photo6">
</label>
</p>
<p>
<label>
<input name="photo[]" type="file" id="photo7">
</label>
</p>
<p>
<label>
<input name="photo[]" type="file" id="photo8">
</label>
</p>
<p>
<label>
<input name="photo[]" type="file" id="photo9">
</label>
</p>
<p>
<label>
<input name="photo[]" type="file" id="photo10">
</label>
</p>
<p>
<label>
<input name="photo[]" type="file" id="photo11">
</label>
</p>
<p>
<label>
<input name="photo[]" type="file" id="photo12">
</label>
</p>
<p>
<label>
<input name="photo[]" type="file" id="photo13">
</label>
</p>
<p>
<label>
<input name="photo[]" type="file" id="photo14">
</label>
</p>
<p>
<label>
<input name="photo[]" type="file" id="photo15">
</label>
</p> <p>
<label>
<input name="photo[]" type="file" id="photo16">
</label>
</p>
<p>
<label>
<input type="submit" name="Submit" value="Envoyer">
</label>
</p>
</form>
<?php
}
?>
</body>
</html>
merci de votre aide
A voir également:
- Uploder des photos
- Partager des photos - Guide
- Toutes mes photos - Guide
- Google photos - Télécharger - Albums photo
- Doublons photos - Guide
- Comment faire une vidéo avec des photos - Guide
27 réponses
Salut!
je pense que plein de monde aura une idée, mais serait-il possible que tu cibles un peu plus le code que tu nous donnes?
Je t'avoue que la page entière de code, c'est un peu lourd à lire...
Essaye de voirà peu près où se situe ton problème et j'essaierai de voir ce qu'il se passe.
A+
je pense que plein de monde aura une idée, mais serait-il possible que tu cibles un peu plus le code que tu nous donnes?
Je t'avoue que la page entière de code, c'est un peu lourd à lire...
Essaye de voirà peu près où se situe ton problème et j'essaierai de voir ce qu'il se passe.
A+
Merci de ta reponse
Au faites le probleme est lors de linsertion dans ma base
Tous fonctionne a par que a chaque fois il me met l image suivant a la ligne
ex :
Ma base
id/nom image/ url
et moi je voudrais sous la forme suivante
id /nom1 / url2/nom2/url2 .... et ainsi de suite
Je sais pas si cela est possible
mon site consiste a vendre des voitures
Donc les photos seront a utiliser lors de l affiche de la voiture en question
Sinon y a t il une autre solution pour faire cela?
Merci de votre aide
Au faites le probleme est lors de linsertion dans ma base
Tous fonctionne a par que a chaque fois il me met l image suivant a la ligne
ex :
Ma base
id/nom image/ url
et moi je voudrais sous la forme suivante
id /nom1 / url2/nom2/url2 .... et ainsi de suite
Je sais pas si cela est possible
mon site consiste a vendre des voitures
Donc les photos seront a utiliser lors de l affiche de la voiture en question
Sinon y a t il une autre solution pour faire cela?
Merci de votre aide
Si j'ai bien compris ton problème c'est que tu voudrais que les url et noms de tes images soient dans la même colonne de ta table Mysql?
Je te conseille donc de prendre le problème dans l'autre sens et de créer une table 'images' qui référencera le nom des photos que tu ajoutes et l'id correspondant à la voiture à laquelle les images se rapportent.
ex: table voiture: id_voiture, nom_voiture, cylindree_voiture...
table image: id_image, nom_image, id_ref_voiture
avec id_voiture et id_ref_voiture qui sont égales.
Cela demande à ce que tu insères les données correspondant à la voiture, que tu récupères l'id de la nouvelle entrée et que tu insères le nom de l'image et l'id récupérée dans la table image.
Je te conseille donc de prendre le problème dans l'autre sens et de créer une table 'images' qui référencera le nom des photos que tu ajoutes et l'id correspondant à la voiture à laquelle les images se rapportent.
ex: table voiture: id_voiture, nom_voiture, cylindree_voiture...
table image: id_image, nom_image, id_ref_voiture
avec id_voiture et id_ref_voiture qui sont égales.
Cela demande à ce que tu insères les données correspondant à la voiture, que tu récupères l'id de la nouvelle entrée et que tu insères le nom de l'image et l'id récupérée dans la table image.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci de ta reponse
Oui j'aimerais uploader une dizaine de photos qui sont pas dans la meme colonne mais dans la meme le ligne
Ou si ca fonctionne comme tu dis ca va aussi
Car mon probleme c est lors de la recupération dess images que ca beug
J ai le meme id pour la oiture et la photo
Cela correspond a quoi id_ref_voiture ?
c es pas facile a expliquer
je te montre un exemple
Actuellment j ai une base voiture
ou il y a id, marque ........
et une autre table photos
qui a le meme id que voiture
mais la j ai chaque fois ex:
id1 photo1
id1 photos2
id1 photos3
id2 206
id2 2061
.....
Mais le probleme c es de recupere ces photos pas facile
Si tu peux me montrer un exemple ce serai plus simple
Merci encore de ton aide
Oui j'aimerais uploader une dizaine de photos qui sont pas dans la meme colonne mais dans la meme le ligne
Ou si ca fonctionne comme tu dis ca va aussi
Car mon probleme c est lors de la recupération dess images que ca beug
J ai le meme id pour la oiture et la photo
Cela correspond a quoi id_ref_voiture ?
c es pas facile a expliquer
je te montre un exemple
Actuellment j ai une base voiture
ou il y a id, marque ........
et une autre table photos
qui a le meme id que voiture
mais la j ai chaque fois ex:
id1 photo1
id1 photos2
id1 photos3
id2 206
id2 2061
.....
Mais le probleme c es de recupere ces photos pas facile
Si tu peux me montrer un exemple ce serai plus simple
Merci encore de ton aide
C'est justement là, à mon avis que la façon que tu as choisis pour gérer l'insertion des références de tes images dans la bdd n'est pas (à mon humble avis) optimale mais peu importe pour l'instant.
Pour résumer et être sûr de comprendre: à chaque fois que tu ajoutes une voiture, tu lui ajoutes toute une série de référence (poids, taille, cylindrée...) et 16 photos.
Avec deux tables: une voiture, une image. Cette table image contient deux champs id et photos.
quand tu fais ta requête SQL via php pour récupérer l'ensemble des noms des photos:
$reponse = mysql_query("SELECT * FROM image WHERE id = ' ".$id." ' ");
while($donnees = mysql_fetch_assoc($reponse)){
echo $donnees['nom_photo'];
}
ou alors tu peux aussi utiliser la fonction foreach :)
avec : $id représentant l'id des photos que tu veux récupérer et 'nom_photo' le nom du champs dans lequel les noms des photos sont inclus.
Pour résumer et être sûr de comprendre: à chaque fois que tu ajoutes une voiture, tu lui ajoutes toute une série de référence (poids, taille, cylindrée...) et 16 photos.
Avec deux tables: une voiture, une image. Cette table image contient deux champs id et photos.
quand tu fais ta requête SQL via php pour récupérer l'ensemble des noms des photos:
$reponse = mysql_query("SELECT * FROM image WHERE id = ' ".$id." ' ");
while($donnees = mysql_fetch_assoc($reponse)){
echo $donnees['nom_photo'];
}
ou alors tu peux aussi utiliser la fonction foreach :)
avec : $id représentant l'id des photos que tu veux récupérer et 'nom_photo' le nom du champs dans lequel les noms des photos sont inclus.
$reponse = mysql_query("SELECT * FROM image WHERE id = ' ".$id." ' ");
while($donnees = mysql_fetch_assoc($reponse)){
echo $donnees['nom_photo'];
?>
<img src="dossier/images/voiture/<?php echo $donnees['nom_photo']; ?>" alt="<?php echo $donnees['nom_photo']; ?>" />
<?php
}
Avec ça, tu vas récupérer le nom des documents et le document lui-même et l'afficher.
En gros: le while récupère toutes les entrées de ta table photo pour lesquel l'id est égal à l'id de référence (qui correspond à l'id de la voiture que tu veux afficher si 'jai bien compris) et pour chaque photo, il affiche le nom de l'image et affiche cette image.
Je ne sais pas si ça répond à ta question...
while($donnees = mysql_fetch_assoc($reponse)){
echo $donnees['nom_photo'];
?>
<img src="dossier/images/voiture/<?php echo $donnees['nom_photo']; ?>" alt="<?php echo $donnees['nom_photo']; ?>" />
<?php
}
Avec ça, tu vas récupérer le nom des documents et le document lui-même et l'afficher.
En gros: le while récupère toutes les entrées de ta table photo pour lesquel l'id est égal à l'id de référence (qui correspond à l'id de la voiture que tu veux afficher si 'jai bien compris) et pour chaque photo, il affiche le nom de l'image et affiche cette image.
Je ne sais pas si ça répond à ta question...
oui c est ce que je fais actuellment
Seulmeent j utilise array et pas assoc
while ($data = mysql_fetch_array($reponse) )
{
Quel est la difference?
Mais le probleme est l affichage dans ma galerie photos qui me pose probleme
Ou mon css est mal au point
car j ai sur ma page les 3meme photos par ligne
pas un autre une a la suite de l autre
Tu vois ce que je veux dire?
Merci de ton aide
Seulmeent j utilise array et pas assoc
while ($data = mysql_fetch_array($reponse) )
{
Quel est la difference?
Mais le probleme est l affichage dans ma galerie photos qui me pose probleme
Ou mon css est mal au point
car j ai sur ma page les 3meme photos par ligne
pas un autre une a la suite de l autre
Tu vois ce que je veux dire?
Merci de ton aide
Est ce que dans ta table, les noms de toutes tes photos sont bien insérées? ou juste une seule plusieurs fois?
Autrement dit: est-ce que tu as dans ta table
1 photos1
1 photos2
1 photos3
etc...
ou bien
1 photos1
1 photos1
1 photos1
etc...
?
Si tu peux me dire ça, je saurai te dire si le problème vient de l'affichage ou de l'insertion dans la bdd...
Autrement dit: est-ce que tu as dans ta table
1 photos1
1 photos2
1 photos3
etc...
ou bien
1 photos1
1 photos1
1 photos1
etc...
?
Si tu peux me dire ça, je saurai te dire si le problème vient de l'affichage ou de l'insertion dans la bdd...
L insertion dans la table se fait comme cela
id / photo / url
1 / photo1/ www.photo1
1/photos/www....
1/photo3/...
2/photo1/..
2/photo2....
Merci de ton aide
id / photo / url
1 / photo1/ www.photo1
1/photos/www....
1/photo3/...
2/photo1/..
2/photo2....
Merci de ton aide
C'est donc que ton problème provient de l'affichage. Pourrais-tu me donner les quelques lignes de code qui concernent cet affichage?
Pour ce qui est de la la différence entre mysql_fetch_array et mysql_fetch_assoc: mysql_fetch_array est un tableau associatif et numéroté. Ainsi tu pourras récupérer tes valeurs de deux façons: $valeurs['0'] et $valeur['id']
Si l'id est en première position alors $valeur['0'] = $valeur['id'].
mysql_fetch_assoc est un tableau uniquement associatif donc tu ne peux récupérer tes valeurs qu'en faisant: $valeur['id']
Cette méthode a l'avantage ne prendre moins de ressource. (moitié moins de valeurs sont enregistrées)
Pour ce qui est de la la différence entre mysql_fetch_array et mysql_fetch_assoc: mysql_fetch_array est un tableau associatif et numéroté. Ainsi tu pourras récupérer tes valeurs de deux façons: $valeurs['0'] et $valeur['id']
Si l'id est en première position alors $valeur['0'] = $valeur['id'].
mysql_fetch_assoc est un tableau uniquement associatif donc tu ne peux récupérer tes valeurs qu'en faisant: $valeur['id']
Cette méthode a l'avantage ne prendre moins de ressource. (moitié moins de valeurs sont enregistrées)
merci de ta reponse
ok je vois mieu maintenant donc ma solution est bonne non?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250" />
<meta name="generator" content="PSPad editor, www.pspad.com" />
<title> photo_simple html CSS
</title>
<link rel="stylesheet" type="text/css" href="photo_simple.css" />
</head>
<body>
<?php
require "connect.php";
// On récupere le contenu de $_GET dans l'adresse
$voit=$_GET['voiture'];
$reponse = mysql_query("SELECT * FROM photo2 WHERE idd ='$voit'")or die(mysql_error()); // Requete SQL
while ($data = mysql_fetch_assoc($reponse) )
{
?>
<div id="gallery">
<em id="thumbs"><a href="#nogo"> <img src="admin/<?php echo $data['url']; ?>" alt="1" title="photo_simple.css" /></a><a href="#nogo"> <img src="admin/<?php echo $data['url']; ?>" alt="1" title="photo_simple.css" /></a>
<a href="#nogo">
<img src="admin/<?php echo $data['url']; ?>" alt="1" title="photo_simple.css" /></a></em> </div>
<?php } ?>
</body>
</html>
voici le css
body {
background-color: #000000
}
#gallery {
position: fixed;
width: 750px;
}
#thumbs {
width: 180px;
float: left;
}
#thumbs a {
display: table-column;
float: right;
margin: 0 0 5px 5px;
width: 50px;
height: 50px;
}
#thumbs a img {
width: 50px;
height: 50px;
border: 0;
}
#thumbs a:hover {
border-color: #ddd;
}
#thumbs a:hover img {
position: absolute;
width: auto;
height: auto;
left: 185px;
top: 0;
border: 1px solid #333;
}
Merci pour ton aide
ok je vois mieu maintenant donc ma solution est bonne non?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250" />
<meta name="generator" content="PSPad editor, www.pspad.com" />
<title> photo_simple html CSS
</title>
<link rel="stylesheet" type="text/css" href="photo_simple.css" />
</head>
<body>
<?php
require "connect.php";
// On récupere le contenu de $_GET dans l'adresse
$voit=$_GET['voiture'];
$reponse = mysql_query("SELECT * FROM photo2 WHERE idd ='$voit'")or die(mysql_error()); // Requete SQL
while ($data = mysql_fetch_assoc($reponse) )
{
?>
<div id="gallery">
<em id="thumbs"><a href="#nogo"> <img src="admin/<?php echo $data['url']; ?>" alt="1" title="photo_simple.css" /></a><a href="#nogo"> <img src="admin/<?php echo $data['url']; ?>" alt="1" title="photo_simple.css" /></a>
<a href="#nogo">
<img src="admin/<?php echo $data['url']; ?>" alt="1" title="photo_simple.css" /></a></em> </div>
<?php } ?>
</body>
</html>
voici le css
body {
background-color: #000000
}
#gallery {
position: fixed;
width: 750px;
}
#thumbs {
width: 180px;
float: left;
}
#thumbs a {
display: table-column;
float: right;
margin: 0 0 5px 5px;
width: 50px;
height: 50px;
}
#thumbs a img {
width: 50px;
height: 50px;
border: 0;
}
#thumbs a:hover {
border-color: #ddd;
}
#thumbs a:hover img {
position: absolute;
width: auto;
height: auto;
left: 185px;
top: 0;
border: 1px solid #333;
}
Merci pour ton aide
Ton problème vient de là, je pense:
while ($data = mysql_fetch_assoc($reponse) )
{
?>
<div id="gallery">
<em id="thumbs">
<a href="#nogo"> <img src="admin/<?php echo $data['url']; ?>" alt="1" title="photo_simple.css" /></a>
<a href="#nogo"> <img src="admin/<?php echo $data['url']; ?>" alt="1" title="photo_simple.css" /></a>
<a href="#nogo"><img src="admin/<?php echo $data['url']; ?>" alt="1" title="photo_simple.css"/></a>
</em> </div>
<?php } ?>
Tu as trois fois la même ligne de code. Pour le while comprend "tant que $data n'est pas vide, pour chaque ligne faire" => la commande. Ce qui veut dire qu'ici tu lui demandes pour une seule et même image de l'afficher 3 fois. Autre soucis, ta <div id="gallery"> devrait, à mon avis être en dehors du while. Enfin si tes images sont alignées c'est parce que tu ne demandes aucun retour ligne. Voilà quelque chose qui irait mieux:
<div id="gallery">
while ($data = mysql_fetch_assoc($reponse) )
{
?>
<em id="thumbs">
<a href="#nogo"> <img src="admin/<?php echo $data['url']; ?>" alt="1" title="photo_simple.css" /></a>
<br />// c'est très important pour ton problème de le mettre puisqu'il va faire le retour ligne
</em>
<?php
}
?>
</div>
while ($data = mysql_fetch_assoc($reponse) )
{
?>
<div id="gallery">
<em id="thumbs">
<a href="#nogo"> <img src="admin/<?php echo $data['url']; ?>" alt="1" title="photo_simple.css" /></a>
<a href="#nogo"> <img src="admin/<?php echo $data['url']; ?>" alt="1" title="photo_simple.css" /></a>
<a href="#nogo"><img src="admin/<?php echo $data['url']; ?>" alt="1" title="photo_simple.css"/></a>
</em> </div>
<?php } ?>
Tu as trois fois la même ligne de code. Pour le while comprend "tant que $data n'est pas vide, pour chaque ligne faire" => la commande. Ce qui veut dire qu'ici tu lui demandes pour une seule et même image de l'afficher 3 fois. Autre soucis, ta <div id="gallery"> devrait, à mon avis être en dehors du while. Enfin si tes images sont alignées c'est parce que tu ne demandes aucun retour ligne. Voilà quelque chose qui irait mieux:
<div id="gallery">
while ($data = mysql_fetch_assoc($reponse) )
{
?>
<em id="thumbs">
<a href="#nogo"> <img src="admin/<?php echo $data['url']; ?>" alt="1" title="photo_simple.css" /></a>
<br />// c'est très important pour ton problème de le mettre puisqu'il va faire le retour ligne
</em>
<?php
}
?>
</div>
Merci de ta reponse
Je viens d afficher mais la page ne s afffiche pas correctement
Les images sont decaler et tous mais sur le script d origine il y a des photos sur 3 colonne comme j ai actulemment
Je vais essaier avec ma balise en dehors
Sinon ne vois tu rien d autre niveau css?
Merci pour ton aide
Je viens d afficher mais la page ne s afffiche pas correctement
Les images sont decaler et tous mais sur le script d origine il y a des photos sur 3 colonne comme j ai actulemment
Je vais essaier avec ma balise en dehors
Sinon ne vois tu rien d autre niveau css?
Merci pour ton aide
oui je recupere les bonne photos et plus les 3 memes
Je recupere les photos une en dessous de l autre comme tu m as dit
Mais moi j aimerais les afficher comme cela
photos1/photos2/photos3
ligne suivante
photo4/photos/photos6
et ainsi de suite
Merci
Je recupere les photos une en dessous de l autre comme tu m as dit
Mais moi j aimerais les afficher comme cela
photos1/photos2/photos3
ligne suivante
photo4/photos/photos6
et ainsi de suite
Merci
hmm... Tu as deux solutions (voir 3):
- soit tu touches à ton css: tu fais des pages fixes et tu enlèves dans le code php le retour à la ligne. Dans ce cas, tout doit être calculé pour que la taille de tes trois photos réunies soit comprises dans une div qui les contiendrait (en gros <div id=container>ton code php</div> => la taille de ton div en largeur doit être pensée pour que tes images les unes à côté des autres soit à la bonne taille). C'est pas forcément très simple et j'avoue être un peu limité niveau CSS rapport au fait que j'ai toujours bossé avec des graphistes)
- soit tu le fais à la main dans ton code php: tu créés une variable $i=0 et dans ton while tu ajoutes quelque chose du genre if($i == 2 OR $i == 5 OR...) (de trois en trois) echo '<br />';
Cette seconde méthode demande à mon avis moins de boulot mais est franchement plus sale que la première. Ca fonctionnera aussi mais quitte à apprendre autant le faire bien...
- soit tu touches à ton css: tu fais des pages fixes et tu enlèves dans le code php le retour à la ligne. Dans ce cas, tout doit être calculé pour que la taille de tes trois photos réunies soit comprises dans une div qui les contiendrait (en gros <div id=container>ton code php</div> => la taille de ton div en largeur doit être pensée pour que tes images les unes à côté des autres soit à la bonne taille). C'est pas forcément très simple et j'avoue être un peu limité niveau CSS rapport au fait que j'ai toujours bossé avec des graphistes)
- soit tu le fais à la main dans ton code php: tu créés une variable $i=0 et dans ton while tu ajoutes quelque chose du genre if($i == 2 OR $i == 5 OR...) (de trois en trois) echo '<br />';
Cette seconde méthode demande à mon avis moins de boulot mais est franchement plus sale que la première. Ca fonctionnera aussi mais quitte à apprendre autant le faire bien...
oui mais mon css est normalement bien fait car les 3 photos s affiche sur ma page
Je ne comprend pas prq il va pas a la ligne
Par contre t as 2eme solution est interressante mais je ne vois pas trop comment tu veux dire
Je veux afficher maximum 15 photos
La variable i correspond a quoi?
Je ne comprend pas prq il va pas a la ligne
Par contre t as 2eme solution est interressante mais je ne vois pas trop comment tu veux dire
Je veux afficher maximum 15 photos
La variable i correspond a quoi?
Il ne va pas à la ligne parce que ta page CSS n'a pas de taille fixe. Elle s'étire donc au gré des besoins.
La variable i n'est qu'une variable référence.
Quand on n'a pas encore fait de boucle elle vaut 0, à la fin de la première boucle elle vaut 1...
Autrement dit, quand aucune image n'a encore été affichée elle vaut 0, si une image a été affiché elle vaut 1 etc.
Si cette variable vaut 2 (ou 3 tout dépend à quel moment tu incrémentes) alors tu fais ton echo '<br />';
La variable i n'est qu'une variable référence.
Quand on n'a pas encore fait de boucle elle vaut 0, à la fin de la première boucle elle vaut 1...
Autrement dit, quand aucune image n'a encore été affichée elle vaut 0, si une image a été affiché elle vaut 1 etc.
Si cette variable vaut 2 (ou 3 tout dépend à quel moment tu incrémentes) alors tu fais ton echo '<br />';