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

PHP & Base de données Discussion :

Modification en masse


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 197
    Par défaut Modification en masse
    Bonjour,

    Je voudrai savoir si il est possible de faire une modification en masse dans une base de données.

    Je m'explique j'ai une petite base avec ID, Lien de la photo, Rang

    Rang étant l'ordre sous lequel je souhaite que les images s'affichent.

    Si je souhaite modifier l'ordre d'affichage, il faut bien sur que je change la valeur de toutes les images dans la colonne Rang.

    Y a t il un manip pour eviter de faire les changements un par un

    Merci

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 247
    Par défaut
    Ca va dépendre essentiellement d'une seule chose, la façon dont est déterminé le nouveau rang pour une image donnée.

    - S'il est déterminable de façon logique ou mathématique à partir d'autres éléments dans la table (ou la base) concernant cette photo, il peut peut-être y avoir moyen suivant ce mode de détermination.

    - Si, au contraire, il est déterminé en fonction de données extérieures, voire de manière suggestive, du propre fait de ta pensée par exemple, ça va être beaucoup plus compliqué voir impossible. Il faudra faire autant de requêtes que d'images en modifier.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 197
    Par défaut
    Merci pour ta réponse

    En fait l'ordre sera determiné par la valeur que j'aurai donné dans le champ "Rang" à savoir un chiffre 1, 2 , 3 .....

    Et l'idée est de pouvoir donner au chiffre 3 une nouvelle valeur (1 par exemple) pour l'afficher en premier.

  4. #4
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 247
    Par défaut
    Dans ce cas, ça peut être possible. Il suffirait de faire une requête de type "... Rang=1 là ou Rang=3".

    Mais cela va concerner toutes les images sans exception qui sont de rang 3 et qui vont devenir de rang 1, à moins que tu ais d'autres moyen de filtrer.

    Mais c'est pas suffisant, car après modifications, les images de rang 3 seront devenus de rang 1, mais celles de rang 1 seront resté de rang 1. Il sera difficile de différencier les anciennes de rang 1 des nouvelles, si ce n'est pas fait avant. Faut-il donc faire d'autres modifications.

    Il faut bien poser toutes les modifications sur un papier et réfléchir à un plan avant de commencer à faire les requêtes.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 197
    Par défaut
    Je suis en train d'essayer qq chose du genre
    Affichage de l'image
    Numero actuel du rang
    Input la nouvelle valeur du rang

    Mais je ne sais pas vraiment quoi en faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <form action="modif_2.php" metod="post">
    	<td><center><img src="upload/<?=$objResult["Picture"];?>">
    	<br><?=$objResult["GalleryName"];?><br>
        Nouvel ordre : <input type="text" name="newrang"></center><br>
        <input type="submit" value="Modifier"></td>
        </form>
    GalleryName étant le numéro du rang affichage.

  6. #6
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 247
    Par défaut
    Pour le code, html apparemment, je ne pourrais pas beaucoup t'aider, mais l'idée est que, au summit de ton formulaire, tu es un code coté serveur qui réagisse en récupérant la valeur saisie, et l'id de l'image en cours pour exécuter une requete update sur ta base avec mise à jour du rang avec la valeur pour l'enregistrement correspondant à l'id

  7. #7
    Membre Expert Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Par défaut
    Salut,

    Si j'ai bien compris, ton problème est que tu ne veux pas renuméroter toutes les lignes parce que tu changes la position d'une ligne ?

    Le mieux est alors de définir ton rang non pas comme un entier, mais comme un décimal.

    Algorithmiquement, quand tu changes de position une valeur, tu recherches quelles sont les rang actuels de de ceux qui y sont, et tu prend le milieux par exemple.

    Genre :
    1
    2
    3
    4

    Tu déplaces le 3 en deuxième :
    1
    1.5
    2
    3
    4

    Tu changes ensuite le 4 pour le mettre en 1 :
    0.5
    1
    1.5
    2
    3
    4

    Puis disons le dernier en 3 ème position :
    0.5
    1
    1.25
    1.5
    2
    3
    4

    La syntaxe de la chose dépendra de ton SGBD. Au pire, tu l'implémentes dans ton langage client.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 197
    Par défaut
    Merci Pacman,

    En fait c'est pas tout à fait ça que je recherche, même si au bout du compte ça pourrait être une solution.

    Je souhaite donner la main à un "administrateur" pour modifier l'ordre des images.

    Alors je me suis penché sur un bout de code, mais comme je suis une quiche en MySQL...

    Ca donne ça
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     <?php
       //connection au serveur
      $cnx = mysql_connect( "Host", "User", "Pass" ) ;
     
      //sélection de la base de données:
      $db  = mysql_select_db( "Base" ) ;
     
     
      //récupération de la variable d URL,
      //qui va nous permettre de savoir quel enregistrement modifier
      $id  = $_GET["idRang"] ;
     
      //requête SQL:
      $sql = "SELECT * FROM gallery WHERE id = ".$id ;
     
      //exécution de la requête:
      $requete = mysql_query( $sql, $cnx ) ;
     
      //affichage des données:
      if( $result = mysql_fetch_object( $requete ) )
      {
      ?>
    <form name="insertion" action="modification2.php" method="POST">
      <input type="hidden" name="id" value="<?php echo($id) ;?>">
      <table border="0" align="center" cellspacing="2" cellpadding="2">
        <tr align="center">
          <td>Image</td>
          <td><input type="text" name="image" value="<?php echo($result->image) ;?>"></td>
        </tr>
        <tr align="center">
          <td>Rang</td>
          <td><input type="text" name="rang" value="<?php echo($result->rang) ;?>"></td>
        </tr>
        <tr align="center">
          <td>Nom</td>
          <td><input type="text" name="nom" value="<?php echo($result->nom) ;?>"></td>
        </tr>
     
        <tr align="center">
          <td colspan="2"><input type="submit" value="modifier"></td>
        </tr>
      </table>
    </form>
      <?php
      }//fin if 
      ?>
    Je ne suis pas sur du tout de ce code d'ailleurs j'ai un message d'erreur :

    Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /homepages/6/d249513418/htdocs/sunshine/test/upload2/modification.php on line 20
    et la ligne 20 c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if( $result = mysql_fetch_object( $requete ) )

    Merci

Discussions similaires

  1. [SP-2007] Modification en masse d'une liste sous Excel .iqy
    Par cricri2000 dans le forum SharePoint
    Réponses: 2
    Dernier message: 21/05/2010, 08h59
  2. Modification en masse de fichier FMB
    Par tizmut dans le forum Forms
    Réponses: 4
    Dernier message: 26/09/2007, 10h12
  3. Modifications de masse à faire
    Par BZH75 dans le forum ASP
    Réponses: 4
    Dernier message: 18/06/2007, 14h59
  4. [EDI] Modification de masse de fichiers PHP
    Par lodan dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 11/01/2007, 10h06

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