A voir également:
- Probleme d'affichage des photos PHP Mysql
- Partager des photos - Guide
- Toutes mes photos - Guide
- Google photos - Télécharger - Albums photo
- Affichage double ecran - Guide
- Problème affichage fenêtre windows 10 - Guide
9 réponses
Bonjour,
Peux tu m'expliquer quelle est la différence entre :
"je besoin de affiche les photos de chaque utilisateur !! "
et
" il affiche tous les images de tout les utilisateurs !! "
... pour moi .. cela signifie la même chose.
Peux tu m'expliquer quelle est la différence entre :
"je besoin de affiche les photos de chaque utilisateur !! "
et
" il affiche tous les images de tout les utilisateurs !! "
... pour moi .. cela signifie la même chose.
Donc .. tu veux afficher uniquement les images de l'utilisateur connecté ?
Pour commencer.. il faudrait que l'on sache comment tu connais quel utilisateur est connecté à ton site ...
peut être as tu stocké dans une variable de SESSION cette information ?
Si oui.. il faudrait nous indiquer laquelle....
Ensuite.. une fois cette variable connue.. il suffit de modifier tes requête en y ajoutant une clause WHERE sur ce critère...
par exemple :
Cordialement,
Jordane
Pour commencer.. il faudrait que l'on sache comment tu connais quel utilisateur est connecté à ton site ...
peut être as tu stocké dans une variable de SESSION cette information ?
Si oui.. il faudrait nous indiquer laquelle....
Ensuite.. une fois cette variable connue.. il suffit de modifier tes requête en y ajoutant une clause WHERE sur ce critère...
par exemple :
$idUser = isset($_SESSION['id_user'])?$_SESSION['id_user']:NULL; if($idUser){ $sql1 = "SELECT info.nom , info.lien FROM info I LEFT JOIN users U ON U.id = I.possesseur WHERE U.id = '$idUser'"; $req = mysql_query($sql1) or die("Erreur dans la requete :".$sql1 . "<br>Erreur :<br>".mysql_error()); }
Cordialement,
Jordane
la session utilise
$_SESSION['email'] = $email;
Dans ce cas :
$email= isset($_SESSION['email'])?$_SESSION['email']:NULL; if($idUser){ $sql1 = "SELECT info.nom , info.lien FROM info I LEFT JOIN users U ON U.id = I.possesseur WHERE U.email = '$email'"; $req = mysql_query($sql1) or die("Erreur dans la requete :".$sql1 . "<br>Erreur :<br>".mysql_error()); }
$nbr = mysql_query("SELECT count(info.nom) FROM info,users where info.possesseur = users.id");
aucune modification !!
Si bien sûr ....
mais je pensais qu'en t'inspirant de mon exemple tu réussirais à le faire toi même...
Et puis .. je n'en vois pas bien l'utilité dans ton code...puisque tu ne l'utilise, visiblement, que pour faire ta boucle....
Pourquoi ne pas mettre tout le traitement dans le while directement ?
(il me semble que quelqu'un te l'avait conseillé dans une autre de tes questions....)
ce qui donnerait :
$nbcol=4; $i=0; echo '<table>'; while ($donnees = mysql_fetch_array($req)) { $lien=$donnees['lien']; $nom=$donnees['nom']; if($i%$nbcol==0){ echo '<tr>'; } echo "<td > <a href='$lien' target='_blank' > <img src='$lien' height='115' width='235' alt='$nom' href='$lien'> </a> </td>"; if($i%$nbcol==($nbcol-1)){ echo "</tr>"; } //on incrémente i $i++; } echo '</table>';
(et donc.. avec ce code.. plus besoin de ta seconde requête )
Cordialement,
Jordane
j'ai utilise aussi ce code (votre code mais avec pdo) mais meme probleme 6 photos !!!!!!!!!!
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Merci d'y penser dans tes prochains messages.
.
try { $bdd = new PDO('mysql:host=localhost;dbname=uploadimageige36','root',''); } catch (Exception $e) { die('Erreur : ' . $e->getMessage()); } $reponse = $bdd->query('SELECT * FROM users'); while ($donnees = $reponse->fetch()) { $idUser=$donnees['id']; } if($idUser){ $sql1 = "SELECT info.nom , info.lien FROM info , users WHERE info.possesseur = '$idUser'"; $req = mysql_query($sql1) or die("Erreur dans la requete :".$sql1 . "<br>Erreur :<br>".mysql_error()); } $nbr = mysql_query("SELECT count(*) FROM info where possesseur = possesseur "); $n=mysql_fetch_array($nbr); $arr=array(); while ($donnees = mysql_fetch_array($req)) { $arr[]=$donnees['lien']; $arr2[]=$donnees['nom']; } $nbcol=4; $nbpics = $n[0]; echo "<b><center>Cliqué Sur Une Image Pour L'afficher En Taille Réel</center></b><br>"; if ($nbpics != 0) { echo '<table>'; for ($i=0; $i<$nbpics; $i++){ if($i%$nbcol==0) echo '<tr>'; echo '<td > <a href='.$arr[$i].' target="_blank" ><img src='.$arr[$i].' height=115 width=235 class="" alt="'.$arr2[$i].'" href='.$arr[$i].'></a></td>'; if($i%$nbcol==($nbcol-1)) echo '</tr>'; } echo '</table>'; } else echo '<b>Aucune image à afficher</b>'; echo "<br><br><b>Pour revenir a la page d'aceuil</b> <a href=index.html>Cliquez ici</a>";
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Merci d'y penser dans tes prochains messages.
.
Je viens de regarder...
Donc.. la bonne requête à utilsier (avec MON CODE) est :
Et donc ça devrait donner un truc de ce genre :
Donc.. la bonne requête à utilsier (avec MON CODE) est :
SELECT U.prenom ,U.email ,I.nom ,I.lien ,U.nom FROM info I LEFT JOIN users U ON U.id = I.possesseur WHERE U.email = '$email'
Et donc ça devrait donner un truc de ce genre :
$email= isset($_SESSION['email'])?$_SESSION['email']:NULL; if($email){ $sql1 = "SELECT U.prenom ,U.email ,I.nom ,I.lien ,U.nom FROM info I LEFT JOIN users U ON U.id = I.possesseur WHERE U.email = '$email'"; $req = mysql_query($sql1) or die("Erreur dans la requete :".$sql1 . "<br>Erreur :<br>".mysql_error()); // Au cas où.. pour connaitre le nb de résultats retournées par la requête $num_rows = mysql_num_rows($req); // Le temps des tets : echo "<br> La requête a retournée : <b>".$num_rows. "</b> résulats <br><br>"; $nbcol=4; $i=0; echo '<table>'; while ($donnees = mysql_fetch_array($req)) { $lien=$donnees['lien']; $nom=$donnees['nom']; if($i%$nbcol==0){ echo '<tr>'; } echo "<td > <a href='$lien' target='_blank' > <img src='$lien' height='115' width='235' alt='$nom' href='$lien'> </a> </td>"; if($i%$nbcol==($nbcol-1)){ echo "</tr>"; } //on incrémente i $i++; } //fin du WHILE echo '</table>'; }else{ echo "<br> ERREUR : Pas d'email ! "; } // fin du IF email
not work :'(
je pense que une urreur dans ce code
identificatient de prossessus apartir de id user
SVP SVP tu peut verifie ce code
et je ss vraiment desole
normalement c quelqu'un ajouter une image le processuss de chaque image prend la valeur de id de user
je pense que une urreur dans ce code
identificatient de prossessus apartir de id user
SVP SVP tu peut verifie ce code
et je ss vraiment desole
normalement c quelqu'un ajouter une image le processuss de chaque image prend la valeur de id de user
try { $bdd = new PDO('mysql:host=localhost;dbname=uploadimageige36','root',''); } catch (Exception $e) { die('Erreur : ' . $e->getMessage()); } $reponse = $bdd->query('SELECT * FROM users'); while ($donnees = $reponse->fetch()) { $id_user=$donnees['id']; } //========== $cnx = mysql_connect( "localhost", "root", "" ) ; //Sélection de la base de données: $db = mysql_select_db( "uploadimageige36" ) ; $nom= $name ; $taille = $size ; $extension = $type ; $lien= "$uploadpath/$name" ; //PARTIE A AJOUTER //========== $possesseur=$id_user; //========== //création de la requête SQL: $sql = "INSERT INTO info (nom, taille, extension, lien , possesseur) VALUES ( '$nom', '$taille', '$extension', '$lien' , '$possesseur') " ; //exécution de la requête SQL: $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ce code là ... il te sert à quoi normalement ?
Car actuellement ... là ... tu ne fais que récupérer le dernier ID parmis toute ta table...
et en aucun cas .. il ne s'agit de l'ID du user connecté !
A la limite .. vu que tu as dans tes variables de session l' email du USER...
tu pourrais modifier le code ainsi :
Par contre.... il faut vraiment que tu m'expliques POURQUOI .. tu utilises en même temps ... du PDO et du mysql_* ?????
Soit tu fais tout avec l'extension mysql ... soit tu passes TOUT en PDO !!!!!
(et de préférence.. PDO est mieux !!! )
$reponse = $bdd->query('SELECT * FROM users'); while ($donnees = $reponse->fetch()) { $id_user=$donnees['id']; } //==========
Car actuellement ... là ... tu ne fais que récupérer le dernier ID parmis toute ta table...
et en aucun cas .. il ne s'agit de l'ID du user connecté !
A la limite .. vu que tu as dans tes variables de session l' email du USER...
tu pourrais modifier le code ainsi :
$email= isset($_SESSION['email'])?$_SESSION['email']:NULL; $sql = "SELECT * FROM users WHERE email = '$email' "; $reponse = $bdd->query($sql); while ($donnees = $reponse->fetch()) { $id_user=$donnees['id']; }
Par contre.... il faut vraiment que tu m'expliques POURQUOI .. tu utilises en même temps ... du PDO et du mysql_* ?????
Soit tu fais tout avec l'extension mysql ... soit tu passes TOUT en PDO !!!!!
(et de préférence.. PDO est mieux !!! )
-- phpMyAdmin SQL Dump -- version 4.1.14 -- http://www.phpmyadmin.net -- -- Client : 127.0.0.1 -- Généré le : Lun 15 Juin 2015 à 15:04 -- Version du serveur : 5.6.17 -- Version de PHP : 5.5.12 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; -- -- Base de données : `uploadimageige36` -- -- -------------------------------------------------------- -- -- Structure de la table `admin` -- CREATE TABLE IF NOT EXISTS `admin` ( `email` text NOT NULL, `password` text NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Contenu de la table `admin` -- INSERT INTO `admin` (`email`, `password`) VALUES ('peu@hotmail.com', '123456'), ('ige_36@yahoo.fr', '123456'); -- -------------------------------------------------------- -- -- Structure de la table `info` -- CREATE TABLE IF NOT EXISTS `info` ( `nom` varchar(100) NOT NULL, `taille` int(11) NOT NULL, `extension` varchar(15) NOT NULL, `lien` varchar(100) NOT NULL, `date` date NOT NULL, `motclef` varchar(70) NOT NULL, `possesseur` int(11) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Contenu de la table `info` -- INSERT INTO `info` (`nom`, `taille`, `extension`, `lien`, `date`, `motclef`, `possesseur`) VALUES ('BestHDWallpapersPack1140_73.gif', 790454, 'image/gif', 'verify/BestHDWallpapersPack1140_73.gif', '0000-00-00', '', 6), ('BestHDWallpapersPack1140_91.gif', 798107, 'image/gif', 'verify/BestHDWallpapersPack1140_91.gif', '0000-00-00', '', 6), ('BestHDWallpapersPack1140_60.gif', 717379, 'image/gif', 'verify/BestHDWallpapersPack1140_60.gif', '0000-00-00', '', 5), ('BestHDWallpapersPack1140_63.gif', 421277, 'image/gif', 'verify/BestHDWallpapersPack1140_63.gif', '0000-00-00', '', 5), ('BestHDWallpapersPack1140_75.gif', 768607, 'image/gif', 'verify/BestHDWallpapersPack1140_75.gif', '0000-00-00', '', 6); -- -------------------------------------------------------- -- -- Structure de la table `messages` -- CREATE TABLE IF NOT EXISTS `messages` ( `nom` text NOT NULL, `email` text NOT NULL, `sujet` text NOT NULL, `message` text NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Contenu de la table `messages` -- INSERT INTO `messages` (`nom`, `email`, `sujet`, `message`) VALUES ('khaled', 'adda', 'adda', 'jajlajzj'), ('khaled', 'kkzzk', 'kkzzk', 'slkfdjqlkjdqlkdjq'), ('sf,sfsdfs', 'sdfs', 'sdfs', 'sfsfsfs'), ('sf,sfsdfs', 'sdfs', 'sdfs', 'sfsfsfs'); -- -------------------------------------------------------- -- -- Structure de la table `users` -- CREATE TABLE IF NOT EXISTS `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `nom` text NOT NULL, `prenom` text NOT NULL, `email` text NOT NULL, `password` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ; -- -- Contenu de la table `users` -- INSERT INTO `users` (`id`, `nom`, `prenom`, `email`, `password`) VALUES (1, 'belhadia ', 'youcef', 'aaaaa@aaa.fr', '1234567'), (2, 'aez', 'mammeri', 'aez@outlook.fr', '04061993'), (3, 'farid', 'belkhelfa', 'cicifafa@outlook.fr', '123'), (4, 'aaaa', 'AAA', 'aaaaa@aaa.fr', '123'), (5, 'fff', 'dddd', 'sihamouizou@yahoo.fr', '1234'), (6, 'farid', 'belkhelfa', 'peu@hotmail.com', '123'); /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Ok OK
j'utilise mysql ..
je n sais pas , q je oublige d'utiliser une des deux
desole mon frere
je suis un debutant ... et de vous nous apprenons
merci bcp pout tt les explications !!
j'utilise le dernier code :
mais il affiche a l'exucution un probleme sur cett ligne
j'utilise mysql ..
je n sais pas , q je oublige d'utiliser une des deux
desole mon frere
je suis un debutant ... et de vous nous apprenons
merci bcp pout tt les explications !!
j'utilise le dernier code :
$cnx = mysql_connect( "localhost", "root", "" ) ; //Sélection de la base de données: $db = mysql_select_db( "uploadimageige36" ) ; $email= isset($_SESSION['email'])?$_SESSION['email']:NULL; $sql = "SELECT * FROM users WHERE email = '$email' "; $reponse = $bdd->query($sql); while ($donnees = $reponse->fetch()) { $id_user=$donnees['id']; } //==========
mais il affiche a l'exucution un probleme sur cett ligne
$reponse = $bdd->query($sql);
... Typiquement ... là .. dans ton code ... tu as un mixe des deux ... donc ça ne marchera JAMAIS.
Par exemple ...
tu fais :
(ce qui est du mysql_* )
et ensuite :
... qui est du PDO !!!!!!!
Dans ce cas... la bonne syntaxe serait :
Idem pour ta boucle WHILE ... là.. tu y as mis la syntaxe PDO ....
en mysql_* ça serait
mais bon... comme cette requête n'est sensée retourner qu'une seule ligne de toutes façons...
tu pourrais retirer la boucle while et directement écrire :
Par exemple ...
tu fais :
$db = mysql_select_db( "uploadimageige36" ) ;
(ce qui est du mysql_* )
et ensuite :
$reponse = $bdd->query($sql);
... qui est du PDO !!!!!!!
Dans ce cas... la bonne syntaxe serait :
$reponse = mysql_query($sql) or die('Requête invalide : ' . mysql_error());
Idem pour ta boucle WHILE ... là.. tu y as mis la syntaxe PDO ....
en mysql_* ça serait
while($donnees =mysql_fetch_array($reponse)) { $id_user=$donnees['id']; }
mais bon... comme cette requête n'est sensée retourner qu'une seule ligne de toutes façons...
tu pourrais retirer la boucle while et directement écrire :
$donnees =mysql_fetch_array($reponse)); $id_user=$donnees['id'];
TU peux le virifier svp mon frere
fichier login
fichier login
$query = "SELECT * FROM `users` WHERE email='$email' and password='$password'"; $res = mysql_query($query) or die(mysql_error()); $count= mysql_num_rows($res); if ($count == 1){ if(session_id() == '') { session_start(); } $_SESSION['email'] = $email; header ('location: useer.php'); } else { $query = "SELECT * FROM `admin` WHERE email='$email' and password='$password'"; $res = mysql_query($query) or die(mysql_error()); $count= mysql_num_rows($res); if ($count == 1){ if(session_id() == '') { session_start(); } $_SESSION['email'] = $email; header ('location: administrateur.php'); } } setcookie($_POST['email'],"",time()+3600); }
Voici ton code corrigé :
... par contre... je vois que tu as fais deux tables... une pour les users.. une pour les admins...
Le mieux serait de n'avoir qu'une seule table ... qui aurait (en plus des autres champs) un champ : isadmin .. que tu mettrais à 1 ou à 0 en fonction de si l'utilisateur est un admin ou non ....
ce qui modifierait ton code ainsi :
<?php // Démarrer les SESSION AVANT TOUT AUTRE CHOSE ! if(session_id() == '') { session_start(); } $query = "SELECT * FROM `users` WHERE email='$email' and password='$password'"; $res = mysql_query($query) or die(mysql_error()); $count= mysql_num_rows($res); if ($count == 1){ $_SESSION['admin'] = false; $_SESSION['email'] = $email; header ('location: useer.php'); } else { $query = "SELECT * FROM `admin` WHERE email='$email' and password='$password'"; $res = mysql_query($query) or die(mysql_error()); $count= mysql_num_rows($res); if ($count == 1){ $_SESSION['admin'] = true; $_SESSION['email'] = $email; header ('location: administrateur.php'); } } setcookie($_POST['email'],"",time()+3600); }
... par contre... je vois que tu as fais deux tables... une pour les users.. une pour les admins...
Le mieux serait de n'avoir qu'une seule table ... qui aurait (en plus des autres champs) un champ : isadmin .. que tu mettrais à 1 ou à 0 en fonction de si l'utilisateur est un admin ou non ....
ce qui modifierait ton code ainsi :
// Démarrer les SESSION AVANT TOUT AUTRE CHOSE ! if(session_id() == '') { session_start(); } //récupération des variables $email = isset($_POST['email'])?$_POST['email']:NULL; $password = isset($_POST['password'])?$_POST['password']:NULL; $query = "SELECT * FROM `users` WHERE email='$email' and password='$password'"; $res = mysql_query($query) or die(mysql_error()); $count= mysql_num_rows($res); if ($count == 1){ // l'utilisateur existe setcookie($email,"",time()+3600); $row = mysql_fetch_row($result) $isadmin = $row['isadmin']; $_SESSION['email'] = $email; if($isadmin == 1 ){ $_SESSION['admin'] = true; header ('location: administrateur.php'); }else{ $_SESSION['admin'] = false; header ('location: useer.php'); } else { echo "<br> Erreur : il y a ".$count ." resultats pour cette requete"; } }
mon site : upload image apres inscription
chaque utilisateur upload ses images et qui clique sur affiche les photos normalemns just les photos qui lui ajoute sera affiche mais non
tous les photos de tous les utilisateurs affichent dans chque utilisateur :/
c pour ca ja ajoute attribut possesseur (table info de image) pour specifier id de chaque utilisateuur mais le probleme le code marche pas avec moi :(