Vous n'êtes pas identifié(e).
Bonjour moogli. Et merci pour l'aide que tu peux m'apporter.
Je reprends donc ! Je ne remet pas les scripts. Ils sont plus haut (hier, 12h52).
J'ai une table mysql (photos) qui comporte principalement l'"idph" (identifiant unique de l'enregistrement), le "nom" de la photo, le "numero" de la photo (qui au départ est le même que l'idph) .....
J'affiche les images à l'écran (via un menu des gestion de site). Dessous, j'affiche le "numero" de la photo que je peux modifier si je veux changer l'ordre d'affichage. Bien sûr, l'affichage initial se fera par "ORDER BY numero".
Le nombre de photos affichées n'est pas limité, ni pré-défini.
Je n'arrive donc pas à enregistrer dans la base le ou les numéros modifiés des photos concernées.
Hello, Pour l'ordre pourquoi tu ne veux pas le demander a ta requête sql avec un ORDER BY numero ?
--> Lien d'aide
En fait, ce que je veux faire, c'est modifier l'ordre d'affichage.
A l'enregistrement de la photo, le numéro d'ordre d'affichage est = à l'idph (identifiant unique). Mais je pourrais vouloir modifier l'ordre .... par exemple, afficher la 5° photo en 2° .....
Bonjour Maskime et meilleurs voeux .
Me revoici, car je retrouve un peu de temps pour replonger sur mon problème.
Pour rafraichir les esprits, j'affiche un album photo dont l'identifiant unique des photos est idph. Chaque enregistrement comporte un champs "numero" qui donne l'ordre d'affichage des photos dans l'album.
J'ai testé ton script ! Mais il ne se passe rien. Pas de message d'erreur, pas de changement.
Affichage de l'album photo :
$select = "SELECT * FROM alb_photos where id='$id'";
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
while($row = mysql_fetch_array($result))
{
echo '<div class="titre">'.$row['titre_album'].'</div>';
echo '<div class="presentation1">'.$row['soustitre'].'</div>';
$select2 = "SELECT * FROM photos where idliaison='$id'";
$result2 = mysql_query($select2,$link) or die ('Erreur : '.mysql_error() );
echo '<center><table><tr>';
while($row2 = mysql_fetch_array($result2))
{
echo '<form action="maj_ordre_photos.php?idph='. $row2['idph'] .' & numero='. $row2['numero'] .'" method="POST">';
echo '<input type=hidden name="idph" value="'.$row2['idph'] .'">';
echo '<td><img border=0 height="50" src="../../images/alb_photos/' . $row2['photo'] . '"><center>' .$row2['nom']. '<br>
<input name="numero" type="text" id="numero" value="'.$row2['numero'] .'" size="1" maxlength="3"></td>';
}
echo '</tr></table><p>';
}
echo '<input type="button" name="lien" value="Annuler" onClick="self.location.href=\'aff_alb_photos.php\'">';
echo '<input type="submit" value="envoyer" /></center>';
echo '</form>';
Mise à jour du champs numéro dans la base :
En fait, pour ce dernier, je n'ai rien changé, et il ne se passe rien !
Si j'enlève tout ce qui fait référence à idph et que je change un numéro, tous les numéros changes ....
Bonjour Pierrot,
Je ne connais pas trop ces fonctions, mais pourquoi pas .....
Je suppose que $name correspond au nom du fichier, et que $bcl correspond à son extension qui prendra des valeurs successives en cas de doublon !
Mais si $bcl n’existe pas encore (au début) ?
J'ai écris ceci :
et j'ai cette erreur :
Fatal error: Cannot redeclare namefile() (previously declared in ........
:mad:Ouais ! Ben c'est pô marrant car j'ai toujours pô trouvé ....
Si j'écris ceci, c'est pareil. Le nom ne change pas (ajout de la valeur +1 à la fin) :
$sql = mysql_query('SELECT idph FROM photos WHERE nom='.$fichier );
if( ($nbDePhotosAyantLeMemeNom = mysql_num_rows($sql)) > 0 )
$fichier = $nbDePhotosAyantLeMemeNom + 1;
Comprende pô .... ????
Encore un 'tit coup de main ?
mysql_num_rows() ce serai mieux
a++
Merci Pierrot ! Autant pour moi ......
mais maintenant j'ai l'erreur Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource
Alors j'ai modifié en simplifiant :
$nomDeFichierDansLaBase = $fichier;
$sql = mysql_query('SELECT idph FROM photos WHERE nom='.$nomDeFichierDansLaBase );
$nb = mysql_num_rows($sql);
if($nb > 0 )
$fichier = $nbDePhotosAyantLeMemeNom + 1;
Et si je fais un echo de $fichier et $nomDeFichierDansLaBase, ces variables sont vides ... ???? C'est navrant ......
OK !!!! Après relecture je comprends mieux où tu veux en venir ....
Par contre, j'ai encore une erreur où je ne trouve pas la solution :
Fatal error: Call to undefined function mysql_num_row()
J'ai cru que c'était parceque la base était vide, mais non !!!!!
Bonsoir xTG.
OK et merci pour le bout de script.
Mais qu'est ce que $nbDePhotosAyantLeMemeNom ? Comment le récupérer ?
La variable $nouveauNomDeFichier n'est pas là pour faire joli.
Bonjour xTG, et meilleurs voeux.
OK, j'abonde dans ton sens même si je ne comprends pas tout ........ !!!!
J'ai écrit ceici :
$nbfichier = count($fichier);
$newfichier = $fichier.($nbfichier + 1);
..........
$sql2 = "INSERT INTO photos(nom, lien) VALUES('$fic[0]', '$dossier$newfichier')";
mysql_query($sql2) or die('Erreur SQL !'.$req_fich.mysql_error());
mais là, si je fais un echo des variables, $nbfichier reste à 0, $newfichier reste à 1. Ce qui fait que je récupère un nom toujours = à 1.
En fait, le problème est à l'upload, donc à l'écriture dans la base.
Si j'upload 2 photos du même nom, les deux seront inscrites dans la base, mais le dossier de réception ne comportera que la deuxième image qui aura écrasé la première (du même nom).
A l'upload, j'écris :
Faudrait peut-être que je change le NAME="fichier[]" et lui rajouter une extension ? Mais je sais pas comment !
Et supposons un cas : j'upload "photo123.jpeg" en 4° position. Deux jours après, je rajoute des photos pour le même album, et par le plus grand des hasards je cherche à uploader une photo (autre) nommée aussi "photo123.jpeg" en 4° position. Ce deuxième upload écrasera le premier !
Y'a de quoi se tirer les cheveux, non ?
Enregistres-tu le chemin de l'image ?
Si oui il n'y a aucune raison qu'il t'affiche deux fois l'image de la mer.D'après tes derniers propos j'ai du mal à me représenter ton système. En général on enregistre un ID unique pour chaque photo, un nom pour l'affichage et un chemin vers le fichier.
Donc avoir le même nom ne pose pas problème vu que le chemin vers le fichier est différent.
Et dans le cas où tu aurais deux fichiers ayant le même nom ils ne sont pas dans le même répertoire sinon c'est impossible, donc ce n'est pas un soucis non plus.
Les images je les upload dans un fichier sur serveur. Donc, elles se retrouvent toute ensemble, avec le même chemin d'accès. Que j'enregistre dans la base le chemin (ce que j'avais fait au début) style : "images/gestion/photo.jpg" , ou que j'enregistre uniquement le nom "photo.jpg" et que je mette le chemin dans le script, le résultat mènera au même vu que ce sera le même chemin, et que si il y a deux photos du même nom = conflit. C'est pour ça que je veux pouvoir changer le nom si il existe déjà dans la base.
Je suis d'accord avec toi pour l'id unique (idph pour moi, ici).
J'ai deux tables. Une avec l'id unique, titre et soustitre. L'autre avec l'idph unique, un idliaison identique à l'id de la première table (pour récupérer le titre et soustitre de la l'album), le nom de la photo, le lien, commentaire, .....
A l'upload, si je tente d'uploader ^deux images avec le même nom, je n'aurais que la deuxième. Donc, j'en ai perdu une ......
Faudrait peut-être que je fasse autrement, mais comment ????
Pourquoi mettre l'attribut nom en tant que clé alors que tu as un ID ?
Le fait d'enlever ton attribut nom de la clé te permettrai sans soucis ce que tu veux, tu n'aurai même pas à renommer.Enfin après il semble que tu porte un intérêt à ce renommage. Que comptes-tu faire des noms ? Quel intérêt as-tu à avoir deux mêmes fichiers dont l'un est appelé fichier1 et l'autre fichier2 ?
Pourquoi mettre l'attribut nom en tant que clé alors que tu as un ID ? => c'est parcequ'il n'y a que le nom que je cherche, pour voir s'il existe déjà dans la base.
Le fait d'enlever ton attribut nom de la clé te permettrai sans soucis ce que tu veux, tu n'aurai même pas à renommer => ben le renommer, c'est ce que je cherche à faire, pour éviter qu'il y ait deux fois le même nom.
Que comptes-tu faire des noms ? => J'affiche les photos à l'écran. Et s'il y a deux fois le même nom, il y a deux fois l'affichage de la même foto.
Quel intérêt as-tu à avoir deux mêmes fichiers dont l'un est appelé fichier1 et l'autre fichier2 => pour éviter l'affichage en double de la même foto.
Exemple : je mets en place une image représentant la mer, ayant pour nom "1.jpeg". Le lendemain je veux mettre d'autres images. Je met en place une image représentant le ciel, ayant pour nom "1.jpeg". Ben quand je lirais ma base et que j'afficherais les images, je verrais deux fois celle représentant la mer .....
Bonjour,
Je cherche à enregistrer des éléments (images) dans ma base, mais avant l'enregistrement, je veux tester si le nom existe déjà. Si il existe, le nouveau nom se modifiera en un style "fichier02".
En premier lieu, je lit la base et je recherche la valeur de $nom (identifiant unique de cet enregistrement = idph (sous table). id provient d'une autre table ...)
$fichier est l'élément que je veux inscrire dans la table.
if ($fichier == $nom)
$fichier = $fichier .'02';
A ce point, si je veux enregistrer un fichier (B) portant un nom déjà existant (A) dans la base, j'aurais deux fois l'existant (A). Et à l'affichage, j'aurais donc deux fois la même image (A).
Merci d'avance de m'aider .....
Bonjour,
J'affiche des photos (en php) suite à lecture de ma base.
Je voudrais modifier l'ordre d'affichage, sans avoir à intervenir directement sur la base.
J'ai une table alb_photos qui comporte comme champs : id (l'identifiant), titre_album, soustitre.
Et une table photos avec : idph (identifiant unique), idliaison (qui relie et est identique à l'id de la table précédente), numero (qui permettra l'ordre d'affichage), lien (qui mène à la photo dans un fichier).
J'affiche donc une série de photos avec son numéro dessous que je veux changer et modifier dans la base. Les numéros sont issus du champ (numero).
$requete="SELECT alb_photos.id, alb_photos.titre_album, alb_photos.soustitre, photos.idph, photos.idliaison, photos.numero, photos.lien
FROM alb_photos LEFT JOIN photos ON alb_photos.id=photos.idliaison
WHERE id = '$id' ";
$result = mysql_query($requete,$link) or exit ('Erreur : '.mysql_error() );
$idphEncours = 0;
while($row = mysql_fetch_array($result))
{
if( $idphEnCours != $row['idph'] )
{
echo '<div class="centrer">';
echo '<h2><u>'.$row['titre_album'].'</h2></u>';
echo '<h4><i>'.$row['soustitre'].'</i></h4>';
echo '<table><tr>';
}
if ($idphEnCours = $row['idph'])
{
echo '<form action="maj_ordre_photos.php" method="POST">';
echo '<input type=hidden name="idph" value="'.$row['idph'] .'">';
echo '<td><img border=0 height="50" src="' . $row['lien'] . '"><center>
<input name="numero" type="text" id="numero" value="'.$row['numero'] .'" size="1" maxlength="3"></center></td>';
}
else
{
echo '</tr></table></div>';
}
}
echo '<input type="submit" value="envoyer" />';
echo '</form>';
puis le code "maj_ordre_photos.php" :
Mais dans ce dernier script, je ne récupère à chaque fois que l'idph et le numéro de la dernière photo affichée. Je ne peux donc modifier les autres.
Merci de bien vouloir m'aider.
echo '<a href ="photo_suiv.php?idph='.$idph.'&id_liaison='.$id_liaison.'"><IMG src="../../images/next.gif" border=0 alt="Photo Suivante" width="27" height="30"><br></a></td>';
comme ça, ça passeras mieux
a++
C'est pareil ......
Bonjour,
J'ai un problème pour passer 2 variables d'un script php à un autre. La 1° passe, mais pas la deuxième.
La ligne du script qui envoie la variable :
La réception :
Si je fais var_dump($_GET['idph']), je retrouve mon idph : string(2) "1 " (idph = 1).
Mais avec var_dump($_GET['id_liaison']), j'ai string(0) "" (id_liaison devrait être = à 1 également ....).
Merci de votre aide .....
Bonjour,
Je ne sais pas ce qui se passe, je n'arrive pas à lire une simple table mysql :
Où est mon erreur ?
$commentaire est du texte. Est-ce pour cela ?
Merci
Bonjour,
Je cherche à afficher un pop-up, mais les caractéristiques que je spécifie pour l'affichage ne sont pas respectées. Je dois avoir une erreur dans ma ligne !!!!! Peut-être un "\" en trop ?
Voici pour l'affichage du pop-up :
Merci d'avance pour vos conseils
Bonjour,
Je cherche à faire une page pour uploader plusieurs fichiers en même temps sur un serveur.
Voici ce que j'ai fait et où j'en suis :
1) pour la page de saisie :
et pour le script php d'insertion du fichier dans le dossier désiré (en local, pour l'instant) :
Là, j'ai le message que le fichier a bien été uploadé (3x pour les trois fichiers), mais dans mon dossier de destination "upload", j'ai un fichier Array et c'est tout !!!! ????
Pourquoi ? Comment cela se fait-il ?
Merci
C'est bonnnnnnnnnnnnnnn !!!!!! Ca marche !!!!!!!
J'ai modifié mon script de suppression, et je supprime donc les liens de l'image dans la base ainsi que l'image elle-même dans le dossier ....
Je te remercie pour l'aide que tu m'as apporté ...
A ++
Bonjour xTG.
J'ai revérifié le code d'après ce que tu m'avais marqué précédemment.
J'ai modifié href="./supp_ok_pj.php?mode=suppression&id='.$id.'" en href="./supp_ok_pj.php?mode=suppression&id='.$row2['idpj'].'"
Là, effectivement, je lis l'identifiant (idpj) de l'image. Ca avance ....
Par contre, le script de suppression me dit :
Erreur : Unknown column 'id' in 'where clause'
C'est ça qui est bizarre !!! Ma requête devrait fonctionner ......
J'comprend rien !!!!!!!!! Je vois pas où est l'erreur ????
Sinon, plutôt que de faire <a href="./supp_ok_pj.php?mode=suppression&id='.$id.'"><img border ..... , y'a pas une écriture qui permette de supprimer directement une image en cliquant dessus ?
La clause where te sers de filtre pour la requête.
Elle récupère tous les champs comportant la valeur que tu lui donnes.Tu m'as dit que idpj était l'id de ton image dans la base de donnée, si la requête te dis que ce champs n'existe pas c'est que tu ne m'as pas tout dit. ^^
Je vais donc te décrire mes tables.
Dans la table manifestations : id (valeur unique), texte, .... (peut importe le reste)
Dans la table upload : idpj (valeur unique), id_liaison (égal à id de manifestations, qui sert d'association de l'élément entre les 2 tables), fichier (nom du fichier), lien_fichier (lien pour retrouver où est enregistré le fichier), extension (extension du fichier).
Et dans la première partie, je n'arrive pas à récupérer l'idpj des images affichées ??
Merci xTG ! Mais en retour j'ai l'erreur Unknown column 'id' in 'where clause'
Et j'ai l'impression de ne pas récupérer, donc de lire l'idpj dans la première partie !!!?
Pffffff .........
Tout à fait, l'identifiant de mon image est bien idpj.
Je fais comment pour deleter à partir de "lien_fichier" ??? Comment passer le paramètre du 1° script au 2° ????