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 :

Probleme enregistrement table temporaire [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 137
    Par défaut Probleme enregistrement table temporaire
    Salut,

    je suis en train de développer un script en PHP/MySQL et pour mon besoin j'ai décidé de créer une table temporaire pour effectuer un calcul. Dans mon script PHP je lui post des paramètres que l'on coche par le biais de checkbox.
    Pas de problème particulier pour afficher mes données.

    Cependant, dès que j'ai rajouté la ligne de la table temporaire, ça m'enregistre que le premier élément du checkbox pas tous les autres .

    Est que quelqu'un aurait une idée de comment résoudre mon problème ?

    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    foreach($_POST['admin'] as $categ){
    echo "$categ <br/>";
    $sql = "select count(distinct `IDPatient`) as Nombre, annee, LesioCIMO from export where LesioCIMO like '".$categ."' 
    and age>=".$age1." 
    group by annee order by annee desc";
    $result = mysql_query($sql) or die(mysql_error());
     
     
    echo "<table border='1'>
    <tr>
    <th>Nombre</th>
    <th>annee</th>
    <th>LesionCIMO</th>
     
    </tr>";
    while($row = mysql_fetch_assoc($result))
      {
    echo "<tr>";
      echo "<td>" . $row['Nombre'] . "</td>";
      echo "<td>" . $row['annee'] . "</td>";
      echo "<td>" . $row['LesioCIMO'] . "</td>";
      echo "</tr>";
    }
    echo "</table>";
    echo "<br/><br/>";
     
    //creation d'une table temporaire//
    mysql_query("CREATE TEMPORARY TABLE sumgliomeyear (nombre int(11), LesioCIMO varchar(20), annee varchar(20))") OR DIE ("Erreur insertion temp table"); 
     
     
    $somall = "insert into sumgliomeyear (select count(distinct `IDPatient`), LesioCIMO, annee from export where LesioCIMO like '".$categ."' and `IDPatient` not like '@%'
    and age>=".$age1." group by annee order by annee desc)";
     
    mysql_query($somall) OR DIE ("Erreur insertion temp table");
     
    $showresult =mysql_query("select sum(nombre) as somme, annee from sumgliomeyear group by annee");
     
    echo "<table border='1'>
    <tr>
    <th>Nombre</th>
    <th>annee</th>
     
    </tr>";
     
    while($rowz = mysql_fetch_assoc($showresult) or exit(mysql_error())) {
    echo "<td>" . $rowz['somme'] . "</td>";
    echo "<td>" . $rowz['annee'] . "</td>";
     
    echo "</tr>";
    }
    echo "</table>";
    //Fin du test//
     
    }//fin du foreach

  2. #2
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    Bonjour, peux tu afficher le code du formulaire avec les checkbox en question ?

    Merci

    A+

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    normal ou pas ? : la création de la table est à l'intérieur du foreach ...
    ... vu qu'il n'y a aucun commentaire dans le code ...

  4. #4
    Expert confirmé

    Avatar de FirePrawn
    Homme Profil pro
    Consultant technique
    Inscrit en
    Mars 2011
    Messages
    3 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique

    Informations forums :
    Inscription : Mars 2011
    Messages : 3 179
    Par défaut
    Bonjour,

    Ta requête de création se fait en boucle

    Edit: grilled par jreaux
    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Je ne réponds pas aux questions techniques en MP.

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 137
    Par défaut
    Salut,
    Voila en gros comment s'articule mon formulaire.

    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
     
    <form name = "stat" action="StatTV.php" method="POST">
    ...
    <input type="TEXT" name="age1" size="3"></input>&nbsp;<=Age
     
    <?php
    require_once "config.php";
    $sqlRq = "Select cimo, fnomen from morphosai";
     
    $result = mysql_query($sqlRq) or trigger_error(mysql_error(),E_USER_ERROR);
    ?>
     
    <table cellpadding="0" cellspacing="0" border="0" class="display" id="example">
     
    ...
     
    <?php while(list($cimo,$fnomen)=mysql_fetch_row($result)){
    ?>
    <tr class="gradeX">
    <?php
    echo '<td align="center" bgcolor="#FFFFFF"><input type="checkbox" name="admin[]" value="'.$cimo.'" /></td>';?>
    <td><?php echo $cimo ?></td>
    <td><?php echo $fnomen?></td>
    </tr>
    <?php } ?>
    </tbody>
    </table>
    </form>
    En fait, ça marché bien, jusqu'à ce que j’essaie d'inclure une table temporaire pour enregistrer les données.

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 137
    Par défaut
    oui j'ai enlevé la création de la table temporaire du foreach, ça fait la même chose .

  7. #7
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo '<pre>';
    print_r($_POST['admin']);
    echo '</pre>';
    t'affiche quoi ?

  8. #8
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 137
    Par défaut
    j'affiche chaque valeur $cimo qui a été cochée dans les checkbox.

  9. #9
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql = "select count(distinct `IDPatient`) as Nombre, annee, LesioCIMO from export where LesioCIMO like '".$categ."' 
    and age>=".$age1." 
    group by annee order by annee desc";
    te renvoie à chaque fois un résultat ?

  10. #10
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 137
    Par défaut
    Salut syl2095,

    oui je te confirme que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $sql = "select count(distinct `IDPatient`) as Nombre, annee, LesioCIMO from export where LesioCIMO like '".$categ."' 
    and age>=".$age1." 
    group by annee order by annee desc";
    me retourne à chaque un fois un résultat. C'est depuis que j'ai rajouté les lignes de codes pour la table temporaire que ça ne marche plus. Du moins que ça me prends en compte que la première occurrence cochée .

  11. #11
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 137
    Par défaut
    Bon, j'ai finalement compris ce qui n'allez pas. Mon tableau et ma requête qui affiche le résultat de l'insert into dans la table temporaire n'était pas placé au bon endroit. Je l'ai sorti de la boucle foreach. Maintenant ça marche .

    Merci à ceux qui m'ont aidé .

    A+

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

Discussions similaires

  1. Probleme Creation table temporaire
    Par phpaide dans le forum JDBC
    Réponses: 3
    Dernier message: 09/04/2009, 11h19
  2. Probleme ecriture table temporaire
    Par freed201 dans le forum DB2
    Réponses: 9
    Dernier message: 02/04/2009, 09h49
  3. Insertion des enregistrements d'une table temporaire dans un état
    Par Chayanne47 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 18/04/2008, 11h46
  4. duplication d'enregistrements dans une table temporaire
    Par nawac dans le forum Langage SQL
    Réponses: 8
    Dernier message: 22/06/2007, 16h53
  5. [VB6] [ADO] Pb ajout enregistrement table liée
    Par fikou dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 01/10/2002, 11h49

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