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 :

Résultat d'un tableau dans des champs d'une BD


Sujet :

PHP & Base de données

  1. #1
    Membre régulier

    Homme Profil pro
    Restaurateur
    Inscrit en
    Juin 2008
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Restaurateur
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2008
    Messages : 316
    Points : 102
    Points
    102
    Billets dans le blog
    1
    Par défaut Résultat d'un tableau dans des champs d'une BD
    Bonjour,

    j'ai le resultat d'une requete qui s'affiche dans un tableau :
    des lignes sont generees automatiquement suivant le nombres d'enregistrement dans cette table :

    je voudrais pouvoir envoyer certaine ligne de ce tableau dans une autre table de ma BD,
    comment faire ?
    d'avance Merci..
    je suis tres coincé...

  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
    Tu veux dire quoi par "certaines lignes" ?
    Des lignes que l'utilisateur selectionne ?

    Et par "envoyer une ligne" ?
    inserer les champs de cet enregistrement dans une autre table ou les deplacer dans une autre table ?

    A voir aussi ce qui est plus soigné dans la conception de la base : il est peut etre plus simple de
    - stocker uniquement l'index de l'enregistrement dans la deuxieme table
    ou
    - simplement ajouter un marqueur sur l'enregistrement de la premiere table.

  3. #3
    Membre régulier

    Homme Profil pro
    Restaurateur
    Inscrit en
    Juin 2008
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Restaurateur
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2008
    Messages : 316
    Points : 102
    Points
    102
    Billets dans le blog
    1
    Par défaut
    merci d'avoir repondu...
    il s'agit en fait de tracer des livraisons de produits pour une brasserie...
    je veux pouvoir stocker des quantite de livraison et des prix...
    ma feuille de départ est ici

    je veux pouvoir reprendre tous les elements de la lignes avec en plus la quantité " livraison "

    voilà
    merci.

  4. #4
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    199
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 199
    Points : 148
    Points
    148
    Par défaut
    Je pense que tu dois juste checker si ton champ est vide ou null. Si il ne l´est pas alors update. Dans un while oú ta requete serait un truc du genre SELECT * FROM mesproduits.

    De la tu passes en revue tout a chaque fois.

    Une caisse d´Amstel Msieur siouplait !

  5. #5
    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
    Il faut deja commencer par differencier les differentes lignes car actuellement tous les champs d'une colonne ont le meme nom.

    Le plus simple va etre d'utiliser l'id du produit concerné :
    [CODE]echo '<input type="text" name="qt_recept[' . $id . ']" size="6">';/CODE]

    Comme cela a la réception du formulaire tu récupéres la valeur saisie pour chaque produit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if ($_POST['qt_recept']) {
    foreach ($_POST['qt_recept'] as $id=>$qt) {
      // insertion des lignes dans l'autre table
    }
    Pour l'insertion il serait peut etre judicieux de ne pas re-stocker toutes les valeurs mais seulement celles qui peuvent varier ; comme le prix.
    Par exemple pourquoi enregistrer le nom du produit dans la table des stocks et dans la table des livraisons ?

    L'insertion pourrait donner ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    foreach ($_POST['qt_recept'] as $id=>$qt) {
      $sql = 'SELECT prix FROM stock WHERE id =' . $id;
      ...........
      $prix = $row['prix'];
      ..........
     
      $sql = "INSERT INTO livraisons (produit, prix, quantite) VALUES ($id, $prix, $qt)";
    }

  6. #6
    Membre régulier

    Homme Profil pro
    Restaurateur
    Inscrit en
    Juin 2008
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Restaurateur
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2008
    Messages : 316
    Points : 102
    Points
    102
    Billets dans le blog
    1
    Par défaut
    je veux restocké le nom des produits, car, je pourrais ne plus en utiliser demain, et donc garder une trace...
    Si j'utilise " id " de chaque produit... il faudrait qu'il se genere automatiquement...
    je ne vais pas faire un tableau avec toutes ces entrés, comment je fais....?? ?

    merci de m'aider... c'est gentil

  7. #7
    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
    Si je comprends bien, la liste des produits de ton formulaire ne provient pas d'une bdd, c'est juste écrit "à la main" ?

  8. #8
    Membre régulier

    Homme Profil pro
    Restaurateur
    Inscrit en
    Juin 2008
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Restaurateur
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2008
    Messages : 316
    Points : 102
    Points
    102
    Billets dans le blog
    1
    Par défaut
    si si, toutes les infos du tableau arrivent d'une BD...
    si j'utilise l'id, j'ecris quoi...?
    $id = ????
    c'est complexe..?? non, ?

  9. #9
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    199
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 199
    Points : 148
    Points
    148
    Par défaut
    Pour ton id produit,
    un autoincrement dans phpmyadmin par ex fera tres bien l´affaire.

  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
    Ah tu veux dire que ta table produit ne comporte pas d'id ?

    Il faudrait effectivement bon d'en mettre un.
    Comme l'indique juju03, un champ autoincrement remplit parfaitement le rôle.

  11. #11
    Membre régulier

    Homme Profil pro
    Restaurateur
    Inscrit en
    Juin 2008
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Restaurateur
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2008
    Messages : 316
    Points : 102
    Points
    102
    Billets dans le blog
    1
    Par défaut
    si si,
    toutes mes tables contiennent un "id" auto incrementé...
    mais pour recuperer de mon tableau, il faut que je le recupere, c'est ça...

    je galere dans les codes..

  12. #12
    Membre régulier

    Homme Profil pro
    Restaurateur
    Inscrit en
    Juin 2008
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Restaurateur
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2008
    Messages : 316
    Points : 102
    Points
    102
    Billets dans le blog
    1
    Par défaut
    je viens dans mon code de l'affichage des produit de rajouter ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<td bgcolor="#CCCCCC"><div align="center">'.$row["-1"].'<input type="text" name="qt_recept[' . $num . ']" size="6"></td>';
    est-ce correct,
    mon "id" se nomme "num" dans toutes mes tables et est incrementé en auto ...

  13. #13
    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
    Ba tu le recuperes de la meme facon que tu recuperes le nom du produit.

  14. #14
    Membre régulier

    Homme Profil pro
    Restaurateur
    Inscrit en
    Juin 2008
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Restaurateur
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2008
    Messages : 316
    Points : 102
    Points
    102
    Billets dans le blog
    1
    Par défaut
    j'ai une recuperation d'erreur lorsque j'envoie le formulaire...
    sur la derniere ligne le " ?>" tu sais pourquoi...?
    est-ce bon le code..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
     
    foreach ($_POST['qt_recept'] as $id=>$qt) {
      $sql = 'SELECT prix FROM info_produit WHERE num =' . $num;
     
      $prix = $row['prix'];
     
     
      $sql = "INSERT INTO reception (nom_produit, prix, qt_recept) VALUES ($num, $prix, $qt_recpet)";
      {
    ?>

  15. #15
    Membre actif Avatar de Gaara-Manga
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Avril 2007
    Messages : 247
    Points : 239
    Points
    239
    Par défaut
    Erreur d'accolade^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
     
    foreach ($_POST['qt_recept'] as $id=>$qt) {
      $sql = 'SELECT prix FROM info_produit WHERE num =' . $num;
     
      $prix = $row['prix'];
     
     
      $sql = "INSERT INTO reception (nom_produit, prix, qt_recept) VALUES ($num, $prix, $qt_recpet)";
    }
    ?>

  16. #16
    Membre régulier

    Homme Profil pro
    Restaurateur
    Inscrit en
    Juin 2008
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Restaurateur
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2008
    Messages : 316
    Points : 102
    Points
    102
    Billets dans le blog
    1
    Par défaut
    pardon voilà le code..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
     
    foreach ($_POST['qt_recept'] as $num=>$qt_recept) {
      $sql = 'SELECT prix FROM info_produit WHERE num =' . $num;
     
      $prix = $row['prix'];
     
     
      $sql = "INSERT INTO reception (nom_produit, prix, qt_recept) VALUES ($num, $prix, $qt_recpet)";
      {
    ?>

  17. #17
    Membre régulier

    Homme Profil pro
    Restaurateur
    Inscrit en
    Juin 2008
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Restaurateur
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2008
    Messages : 316
    Points : 102
    Points
    102
    Billets dans le blog
    1
    Par défaut
    Alors avec ce code dans ma feuille qui envoie mon formulaire dans ma BD
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
     
    foreach ($_POST['qt_recept'] as $num=>$qt_recept) {
    $sql = 'SELECT prix FROM info_produit WHERE num =' . $num;
     
    $prix = $row['prix'];
     
     
    $sql = "INSERT INTO reception (nom_produit, prix, qt_recept) VALUES ($num, $prix, $qt_recpet)";
    }
    ?>
    je n'ai pas du tout les données envoyées...
    voilà le type d'enregistrement que j'ai

  18. #18
    Membre actif Avatar de Gaara-Manga
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Avril 2007
    Messages : 247
    Points : 239
    Points
    239
    Par défaut
    Fait attention à tes quotes dans ta requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    foreach ($_POST['qt_recept'] as $num=>$qt_recept) 
    {
        $sql = 'SELECT prix FROM info_produit WHERE num ='.$num;
     
        $prix = $row['prix'];
     
        $sql = "INSERT INTO reception (nom_produit, prix, qt_recept) VALUES ('".mysql_real_escape($num)."', '".mysql_real_escape($prix)."', '".mysql_real_escape($qt_recpet)."')";
    }
    ?>

    (Toujours bien aussi d'utiliser un mysql_real_escape pour protéger les insertions sql des caractères spéciaux )

  19. #19
    Membre régulier

    Homme Profil pro
    Restaurateur
    Inscrit en
    Juin 2008
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Restaurateur
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2008
    Messages : 316
    Points : 102
    Points
    102
    Billets dans le blog
    1
    Par défaut
    merci, je ne savais pas...
    tout ce qui est '"()²]@, et d'autres ne passeront pas, juste des chiffres ou des lettres

  20. #20
    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
    Heu ce que j'avais écris etait une piste, pas un code complet exploitable.
    Il manque des bouts.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    foreach ($_POST['qt_recept'] as $num=>$qt_recept) 
    {
        $sql = 'SELECT prix FROM info_produit WHERE num ='.$num;
        $result = mysql_query($sql);
        $row = mysql_fetch_assoc($result)
        $prix = $row['prix'];
     
        $sql = "INSERT INTO reception (nom_produit, prix, qt_recept) VALUES ('".mysql_real_escape($num)."', '".mysql_real_escape($prix)."', '".mysql_real_escape($qt_recpet)."')";
    }
    ?>
    Mais bon je ne vois toujours pas pourquoi stocker le nom du produit ici. A moins que le nom du produit ne change dans le temps.

Discussions similaires

  1. Afficher le résultats dans des champs de texte
    Par mehdi.cheddani dans le forum VB.NET
    Réponses: 22
    Dernier message: 31/03/2013, 17h16
  2. [MySQL] Mettre le nom des champs d'une table dans un tableau
    Par beegees dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/10/2008, 15h43
  3. Importer un fichier texte dans des champs d'une table
    Par Cyriusix dans le forum Modélisation
    Réponses: 1
    Dernier message: 17/04/2008, 14h18
  4. Comment inclure un tableau dans un champ d'une table Paradox ?
    Par spartacus13 dans le forum Bases de données
    Réponses: 4
    Dernier message: 11/04/2008, 22h49
  5. [SQL] Compteur de saisies dans des champs d'une BDD
    Par guillaumeIOB dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 28/02/2007, 13h54

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