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 :

Insertion et mise à jour de nouvelle lignes


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 97
    Points : 56
    Points
    56
    Par défaut Insertion et mise à jour de nouvelle lignes
    Bonjour,
    j'ai une petite appli php qui tourne bien dont le principe est l'assignation d'actions corrective suite à un probleme. La premiere etape et la description du probleme, puis la creation des actions par des responsables. J'ai donc une table entete, et une table details lié a la table entete par son index.

    Aujourd'hui le formulaire contient un fini de ligne de details (10), et lors de la creation de la fiche ente, je rempli la table entete et egalement la table details avec 10 lignes vides (uniquement le n° de la ligne, et l'index de l'entete de la fiche)

    Lors de la modif de cette fiche toutes les actions seront mises à jour avec des updates...

    Tout cela marche trés bien, mais:
    1_ ma table details est pleine de ligne vide.
    2_ impossible d'ajouter plus de 10 lignes

    Alors je viens demander conseils, pour connaitre la meilleure pratique a adopter dans ce genre de situation. Je voudrais idealement utiliser ajax pour pouvoir ajouter une ligne est proposer directement une nouvelle ligne, ou bien avoir un bouton qui permette d'ajouter x lignes de saisie. Mais ils faut pouvoir egalement modifier toutes les autres lignes facilement...

    Merci pour vos conseils et lumieres!
    A+
    VooDoo

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Bonjour,

    1_ ma table details est pleine de ligne vide.
    Pourrais-tu nous montrer le code et le formulaire impliqués ?
    2_ impossible d'ajouter plus de 10 lignes
    Pourrais-tu nous en dire plus que "impossible" ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 97
    Points : 56
    Points
    56
    Par défaut
    Merci pour ta réponse, mais je penses que tu as mal saisie mon probleme. le code marche trés bien, c'est juste l'aspect fontionnel qui me parait pas top.
    Mais pour ton info, j'ai ca :
    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
    //Insertion des lignes actions pour mise à jour future. (fait en meme tps que la creation de l'entete de la fiche)
     
    				for ($i=1;$i<=10;$i++)
    				{
    				$query_actions="INSERT INTO fia_details (numint,ligne) values ('$numint','$i') ";
    				mysql_query($query_actions);
    				}
     
    et le form:
     <?php for ($i=1;$i<=10;$i++)
    			{
    			echo '
        <tr>
          <td height="29"><input name="costtitle['.$i.']"  size="80" type="text" id="costtitle" value="'.$costtitle[$i].'" /></td>
          <td><input name="costqty['.$i.']" type="text" id="costqty" value="'.$costqty[$i].'" /></td>
          <td><input name="cost['.$i.']" type="text" id="cost" value="'.$cost[$i].'" /></td>  </tr>'; }

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Bonjour,

    Excuse moi j'avais lu un peu trop vite ta question

    Le côté Ajax c'est plus la cerise sur le gateau au niveau ergonomique, cela evite un rafraichissement de la page mais on peut tout a fait faire sans ça.

    Moi je fais comme ca dans les grandes lignes :
    - si formulaire validé {
    INSERT du nouvel enregistrement
    UPDATE des enregistrements existants
    }
    - boucle qui affiche les enregistrements dans la base
    - formulaire vierge pour saisir un nouvel enregistrement

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 97
    Points : 56
    Points
    56
    Par défaut
    Merci pour ta reponse.
    mais comment fait-tu pour distinguer les lignes qui sont des insert de celles qui sont des updates??

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    J'appelle mes lignes existantes name="ligne[$id]"
    et ma nouvelle ligne : name="new_ligne"

    Je recupere donc $_POST['ligne'] a parcourir et UPDATEr
    et $_POST['new_ligne'] à insérer

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 97
    Points : 56
    Points
    56
    Par défaut
    ok, tu es donc limité à une seule nouvelle ligne par soumission...
    moi c'est en moyenne 3 a 4 lignes sans regularité...

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux en avoir autant que tu veux : name="new[]"

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 97
    Points : 56
    Points
    56
    Par défaut
    oui effectivement...
    Bon je vais voir coté ajax si je trouves qquechoses, sinon je ferai ca.
    Merci à toi.
    Bonne nuit!
    A+
    VooDoo

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je te rappelle ce que je t'ai déjà dit : Ajax je fait rien de plus pour ca, il evite juste de rafraichir la page.

Discussions similaires

  1. [MySQL] Mise à jour dynamique des lignes d'un tableau
    Par woodyfrance dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 29/02/2008, 11h50
  2. Mise à jour - SET multi-lignes Oracle
    Par Fab916 dans le forum SQL
    Réponses: 3
    Dernier message: 19/09/2007, 11h54
  3. Attribut de Mise à jour d'une ligne
    Par moezm7 dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/07/2007, 15h02
  4. Insertion ou mise à jour impossible...
    Par kobe dans le forum Bases de données
    Réponses: 6
    Dernier message: 01/08/2005, 08h37

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