IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

PDO input - boucle mysql Update


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 97
    Points : 84
    Points
    84
    Par défaut PDO input - boucle mysql Update
    Bonjour,
    suite à un upload, je souhaiterai mettre en place un système permettant d'ajouter un Titre à l'upload.

    Précision : Upload multiple

    Donc mon code de récupération après l'upload :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    <?php
    try
    {
    	//connexion BDD
    	$bdd = connexpdo ('phototheque','myparam');
     
    	//Requete préparé pour trouver l'ID département
    	$donnees=$bdd->prepare("SELECT IdImg,fichier,titre,commentaire,session,IdPS
    				FROM image WHERE session = ? ORDER BY IdImg");
    	$donnees->execute(array($rand));
    	while ($images = $donnees->fetch(PDO::FETCH_OBJ)) {
     
    		// Cette méthode de récupération récupérer tous dans $image
    		// Pour extraire ce que l'on souhaite il suffit de l'appeler
    		// $image -> IdImg par exemple qui est le champs IdImg
     
    	?>	
    	<tr>
    	<td style="padding-left: 20px; padding-right: 20px;">
     
    	Titre : <input type="text" name="<?php echo "titre_" . $images->IdImg ?>" value=""><br />
    	</td>
     
    	<td style="padding: 20px;"><div align="center"><img src="../photographies/<?php echo $IdPS; ?>/mini/mini_<?php echo $images->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
    	}
    Après avoir cliquer sur le bouton dans le fichier


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    <?php
    	// 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");
     
    	$bdd = connexpdo ('phototheque','myparam');
     
    	foreach($_POST as $cle => $valeur){
    		$IdImg = preg_match('#titre#','',$cle);
     
    		$titre = addslashes($_POST['titre_'.$IdImg]);
     
     
    		$requete = $bdd->exec("UPDATE image SET session='', titre='$titre' WHERE IdImg='$IdImg'"); 
     
     
     
    		}
    ?>
    Ma table "image" :
    IdImg
    fichier
    titre
    commentaire
    session
    IdPS


    test code source pour vérifier le si l'Id est affiché :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <td style="padding-left: 20px; padding-right: 20px;">
    	Titre : <input type="text" name="titre_88" maxlength="50" value=""><br />
    </td>

    Je n'arrive pas à récupérer l'Id de la photo et ainsi avoir un uploader titre unique par Image.
    Avec ce code il me retourne :
    Notice: Undefined index: titre_0 in C:\Bouh Studio\wamp\www\phototheque\formulaire\img-update.php on line 12

    Merci à tous

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Attention dans ton tableau $_POST il n'y a pas que tes input titre. Il y a au moins aussi le bouton submit qui donc ne va correspondre à ta regex...

    Autre point : preg_match renvoie le nombre de solution trouvée (Cela peut aller de 0 = pas de solution à un 1 car preg_match() s'arrête dès qu'elle a trouvé une première solution.) et non pas ce que renvoie le pattern.

    Pourquoi ne pas utiliser un tableau d'input ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="<?php echo 'titre[' . $images->IdImg.']' ?>" value="">
    qui sera accessible par un array :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (isset($_POST['titre'])){
    	foreach($_POST['titre'] as $IdImg => $valeur){
    		$titre = addslashes($valeur);
     
    		$requete = $bdd->exec("UPDATE image SET session='', titre='$titre' WHERE IdImg='$IdImg'"); 
     
    	}
    }

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 97
    Points : 84
    Points
    84
    Par défaut
    Tu as raison,
    le preg_match ne devrais pas etre utiliser ici. J'ai fait une erreur :

    Sans rechanger tous le code j'ai modifier par :

    $IdImg = str_replace('titre_','',$cle);


    Ainsi je récupére bien l'Id


    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. MySQL - Update et insert Multiple
    Par mastronic dans le forum Requêtes
    Réponses: 1
    Dernier message: 22/08/2006, 09h28
  2. Mysql update supprime un enregistrement
    Par Langly dans le forum Requêtes
    Réponses: 5
    Dernier message: 03/08/2006, 17h46
  3. [MySQL] updater un seul tuple a la fois+increment de la cle
    Par kenny49 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 03/07/2006, 12h13
  4. [MySQL] update a partir du resultat d'un select
    Par brice01 dans le forum Langage SQL
    Réponses: 10
    Dernier message: 05/04/2006, 22h44
  5. prob. d' incrémentation /mysql UPDATE
    Par K4trix dans le forum Requêtes
    Réponses: 15
    Dernier message: 01/12/2005, 17h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo