Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/07/2011, 10h49   #1
Candidat au titre de Membre du Club
 
Inscription : décembre 2010
Messages : 45
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 45
Points : 12
Points : 12
Par défaut Update Titre img après Upload multiple

Bonjour,
avançant dans mon apprentissage du Php, je me tourne vers vous pour vous demandez une petite aide sur une requete.

Je peux uploader 1 ... ou plusieurs images.
Les images après traitement apparaissent sur une page : detail-upload.php

Dans cette page j'affiche : un titre (à compléter) et l'image.
Le problème provient de l'envoi du formulaire aux fichier qui doit faire l'update. Il ne boucle pas la requete et je ne vois pas trop comment je pourrais faire.


detail-upload.php :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
 
<form method="post" action="../formulaire/img-update.php">
                                    	<table>
                                    		<tbody>
	<div align="center">
 
	<?php 
		if(ctype_digit($_POST['rand'])){
		// Appel de la fonction de connexion à la BDD	
		include_once("../config/connexpdo.inc.php");
		try
			{
			//connexion BDD
			$bdd = connexpdo ('phototheque','myparam');
 
			// Déclaration variable
			$rand = ($_POST['rand']);
			$IdPS = ($_POST['id']);
			//Requete préparé pour trouver l'ID département
			$requete_prepare_1=$bdd->prepare("SELECT IdImg,fichier,titre,commentaire,session,IdPS
							FROM image WHERE session = ? ORDER BY IdImg"); // on prépare notre requête
			$requete_prepare_1->execute(array($rand));
			while ($row = $requete_prepare_1->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_NEXT)) {
			$data = $row[0].$row[1]. $row[2]. $row[3]. $row[4] . $row[5];
			$IdImg = $row[0];
			$fichier = $row[1];
			$titre = $row[2];
			$commentaire = $row[3];
			$session = $row[4];
			$IdPs = $row[5];
 
			?>	
			<tr>
			<td style="padding-left: 20px; padding-right: 20px;">
				<input type="hidden" id="idimg" name="idimg" value="<?php echo $IdImg; ?>">
				<input type="hidden" id="idps" name="idps" value="<?php echo $IdPs; ?>">
			Titre : <input type="text" id="titre" name="titre" maxlength="50" value=""><br />
			</td>
 
			<td style="padding: 20px;"><div align="center"><img src="../photographies/<?php echo $IdPS; ?>/<?php echo $fichier; ?>" alt="image" /></div></td></tr>
			<?php	} ?>
				<tr><td colspan="2"><input type="submit" value="Modifier les informations" /></td></tr>
			<?php	} 
				catch(Exception $e)
										{
											die('Erreur : '.$e->getMessage()); //En cas d'erreur précédemment, on affiche un message et on arrête tout
										}
										}else{
 
										echo 'Votre session est invalide'; }
?>
 
											</div>
                                   		</tbody></table>
			</form>
Traitement après envois du formulaire:




Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
<?php
//initialisation des variable
session_start();
 
// Appel de la fonction de connexion à la BDD	
	include_once("../config/connexpdo.inc.php");
// Appel de la fonction Majuscule et accent	
include("../fonction/mise_majuscule.php");
// Récupération des variables
//Declaration variables
	$Titre=ucfirst(($_POST['titre']));	
	$IdImg=($_POST['idimg']);
	$IdPS=($_POST['idps']);
 
// Traitement des données envoyées
//Vérification que le mot de passe soit le meme que la confirmation
			try
				{
					//connexion BDD
					$bdd = connexpdo ('phototheque','myparam');
					$queryPassword = $bdd->exec("UPDATE image SET titre='$Titre' WHERE IdImg='$IdImg'"); 
 
 
							//Information et re-direction	
							echo "<script type=\"text/javascript\">
							alert('Images mise à jour. ')</script>";
 
				}
			catch(Exception $e)
				{
					die('Erreur : '.$e->getMessage()); //En cas d'erreur précédemment, on affiche un message et on arrête tout
				}
 
	//redirection
	echo '<meta http-equiv="refresh" content="0; url=../admin/edit-poste-source.php?id=' . rawurlencode($IdPS) . '">';
 
?>

Seul le titre de la dernière image est uploadé.

Merci à vous
bouuuh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 11h37   #2
Membre confirmé
 
Avatar de Retrokiller069
 
Homme Bertrand
Étudiant
Inscription : octobre 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Bertrand
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 216
Points : 268
Points : 268
Bonjour,

si j'ai bien compris ton code, c'est normale que tu modifies que le dernier élément. Si tu veux modifier tous les éléments, il faudra que tu récupères un tableau d'informations.

Pour cela, dans ta boucle while de detail-upload.php tu dois changer les input:

Code :
1
2
3
4
5
6
<td style="padding-left: 20px; padding-right: 20px;">
    <input type="hidden" id="idimg[]" name="idimg" value="<?php echo $IdImg; ?>">
    <input type="hidden" id="idps" name="idps[]" value="<?php echo $IdPs; ?>">
    Titre : <input type="text" id="titre" name="titre[]" maxlength="50" value=""><br />
</td>
ainsi tu pourras récupérer un tableau d'élément. Après il faudra que tu fasses un boucle qui parcours tous ces tableaux et qui update chaque information.

voila en espérant t'avoir aider
__________________
Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître

Ps: N'oubliez pas SVP
Retrokiller069 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 19/07/2011, 11h43   #3
Candidat au titre de Membre du Club
 
Inscription : décembre 2010
Messages : 45
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 45
Points : 12
Points : 12
Oui c’est bien je ne sais pas comment affecter l'update à tous les titre suivant l'Id de l'image car il garde en mémoire que le dernier

Je vais essayé de voir avec ce que tu m'as mis et je te tiens au courant.


merci amis motard :p (du moins je suppose vue ton avatar)
bouuuh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 12h02   #4
Membre confirmé
 
Avatar de Retrokiller069
 
Homme Bertrand
Étudiant
Inscription : octobre 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Bertrand
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 216
Points : 268
Points : 268
Citation:
Envoyé par bouuuh Voir le message
merci amis motard :p (du moins je suppose vue ton avatar)
bien vue
__________________
Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître

Ps: N'oubliez pas SVP
Retrokiller069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 13h21   #5
Membre éprouvé
 
Homme romain escudier
Développeur informatique
Inscription : juin 2011
Messages : 300
Détails du profil
Informations personnelles :
Nom : Homme romain escudier
Âge : 22
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2011
Messages : 300
Points : 471
Points : 471
n'oubliez pas le tag résolu si ça fonctionne
sinon j'aurais pas dis mieux bien que je prefere (pour les fichiers) plusieurs champ avec un nom différents plutot qu'un nom avec indice, mais c'est un avis personnel
__________________
Pas de solution, pas de probleme

Une réponse utile (ou +1) le pouce vert
Une réponse à votre question

skeud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 18h16   #6
Candidat au titre de Membre du Club
 
Inscription : décembre 2010
Messages : 45
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 45
Points : 12
Points : 12
J'ai pas encore mis en place mon code pour le réaliser,
si cela fonctionne j'oublierai pas la balise résolu


Juste un précision :

l'indice [] tu le met dans id=.. ou nom=.. car en reprenant le code tu le met 1 fois dans l'un 1 fois dans l'autre


Merci
bouuuh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 20h39   #7
Membre confirmé
 
Avatar de Retrokiller069
 
Homme Bertrand
Étudiant
Inscription : octobre 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Bertrand
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 216
Points : 268
Points : 268
pardon, tu le mets sur le name bien évidemment. L'id n'est qu'un identifiant. N’hésite pas à mettre ton code si tu as besoin d'aide ^^
__________________
Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître

Ps: N'oubliez pas SVP
Retrokiller069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 12h09   #8
Candidat au titre de Membre du Club
 
Inscription : décembre 2010
Messages : 45
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 45
Points : 12
Points : 12
J'ai reussis à faire ce que tu m'as conseillé en utilisant une petite variante :

http://www.developpez.net/forums/d11...-mysql-update/


Merci à vous sa m'a bien aidé
bouuuh est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h23.


 
 
 
 
Partenaires

Hébergement Web