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 :

Concaténer deux variables


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 111
    Points : 58
    Points
    58
    Par défaut Concaténer deux variables
    bonjour a tous,
    voici un bout du code d'une application sur laque je travaille:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $i=1;
    while ($i<=6)
     {
       $sql = " insert into COLIS values ('',  '$desi$i', '$qte$i','$pd$i', '$prix$i', '$codeexpedition') ";
       $rep=requette_sql($sql);
       $i=$i+1;
     }
    en realité a chaque insertion dans la base de donnees, on doit avoir quelque chose coe ça :
    " insert into COLIS values('', $desi1, $qte1, $pd1, $prix1, $codeexpedition) ainsi de suite jusqu'a ('', $desi6, $qte6, $pd6, $prix6, $codeexpedition) ou $desi, $qte, $pd, $prix, $codeexpedition sont en realite des variables donc le contenu change en fonction des indices.
    mon probleme est que apres l'enregistrement, dans ma base de donnees les valeurs de ces champs sont toujours et dans l'ordre :1, 2, 3, 4, 5, 6,.
    je pense que le probleme vient de la syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      $sql = " insert into COLIS values ('',  '$desi$i', '$qte$i','$pd$i', '$prix$i', '$codeexpedition') ";
    comment est que je peux la corriger ? j'ai essayé '$desi.$i' ça n'a pas marche

    merci de votre aide.
    cordialement

  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,

    Tu peux utiliser cette notation :
    Par contre ca serait plus joli d'utiliser des tableaux qui sont la justement pour contenir des données de ce genre.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut
    C'est peut être idiot, mais pourquoi n'utilises tu pas des array (tableaux), pour les indices c'est bien plus pratique ?
    ----
    L'avenir appartient à ceux dont les salariés se lèvent tôt.

  4. #4
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 111
    Points : 58
    Points
    58
    Par défaut
    j'ai essayé avec les tableaux le probleme c'est comment remplir mon tableau ? et la je suis confronté au meme probleme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    $details=array();
    $i=1;
    for ($i=1; $i<=6; $i=$i+1)
    {
    $detail[$i]=array('$qte$i', '$desi$i', '$pd$i', '$prix$i' );
    }
    j'ai essayé avec et ça ne marche toujours pas !!!

  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
    et ça ne marche toujours pas !!!
    Compare autant de fois ce que tu as ecris avec ce que j'ai écris que tu as mis de points d'exclamations.

    j'ai essayé avec les tableaux le probleme c'est comment remplir mon tableau ?
    Le tableau n'est pas a faire en sortie mais en entrée : $qte = array(1=>21312, 2=>32424234);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 111
    Points : 58
    Points
    58
    Par défaut
    j'envoi l'integralite de mon script pour que ce soit plus claire je le fais en trois parties pour isoler la partie qui pose probleme:

    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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    <?php
    session_start();
    // appel du fichier des fonctions
    include_once'mes_fonctions.php';
     
    $nomexp=$_POST['nomexp'];
    $prenomexp=$_POST['prenomexp'];
    $telexp=$_POST['telexp'];
    $paysexp=$_POST['paysexp'];
    $villeexp=$_POST['villeexp'];
    $rueexp=$_POST['rueexp'];
     
    $nomdest=$_POST['nomdest'];
    $prenomdest=$_POST['prenomdest'];
    $teldest=$_POST['teldest'];
    $paysdest=$_POST['paysdest'];
    $villedest=$_POST['villedest'];
    $ruedest=$_POST['ruedest'];
     
     
    $qte1=$_POST['qte1']; $qte2=$_POST['qte2']; $qte3=$_POST['qte3']; $qte4=$_POST['qte4']; $qte5=$_POST['qte5']; $qte6=$_POST['qte6'];
    $desi1=$_POST['desi1']; $desi2=$_POST['desi2']; $desi3=$_POST['desi3']; $desi4=$_POST['desi4']; $desi5=$_POST['desi5']; $desi6=$_POST['desi6'];
    $pd1=$_POST['pd1']; $pd2=$_POST['pd2']; $pd3=$_POST['pd3']; $pd4=$_POST['pd4']; $pd5=$_POST['pd5']; $pd6=$_POST['pd6']; 
    $prix1=$_POST['prix1']; $prix2=$_POST['prix2']; $prix3=$_POST['prix3']; $prix4=$_POST['prix4']; $prix5=$_POST['prix5']; $prix6=$_POST['prix6'];
     
     
    $_SESSION['dateexpedition']=$_POST['dateexpedition'];
    $_SESSION['heureexpedition']=$_POST['heureexpedition'];
    $dateexp=$_SESSION['dateexpedition'];
    $heureexpedition=$_SESSION['heureexpedition'];
     
    $_SESSION['statut']=$_POST['statut'];
    $statut=$_SESSION['statut'];
     
    $_SESSION['typepay']=$_POST['typepay'];
    $typepayment=$_SESSION['typepay'];
     
    // se connecte a la bd.
    connection_bd(projetcourier);
    // insert l'expediteur.
    $sql = " insert into EXPEDITEURS values ('', '$nomexp', '$prenomexp', '$telexp', '$paysexp', '$villeexp', '$rueexp') ";
    $rep=requette_sql($sql);
    mysql_close();
     
    // recupere le code du dernier expediteur.
    connection_bd(projetcourier);
    $sql = " select code_exp from EXPEDITEURS ";
    $rep=requette_sql($sql);
    mysql_close();
     
    while($ligne=mysql_fetch_array($rep))
    {
     $codeexpediteur=$ligne['code_exp'];
    }
     
    // insert le destinataire
    connection_bd(projetcourier);
    $sql = " insert into DESTINATAIRES values ('', '$nomdest', '$prenomdest', '$teldest', '$paysdest', '$villedest', '$ruedest') ";
    $rep=requette_sql($sql);
    mysql_close();
    // recupere le code du dernier destinataire.
    connection_bd(projetcourier);
    $sql = " select * from DESTINATAIRES ";
    $rep=requette_sql($sql);
    mysql_close();
     
    while($ligne=mysql_fetch_array($rep))
    {
     $codedestinataire=$ligne['code_dest'];
    }
     
    // enregistre l'expedition
    connection_bd(projetcourier);
    $sql = " insert into EXPEDITIONS values ('', '$codeexpediteur', '$codedestinataire', NULL, '$dateexp', '$heureexpedition', '$statut', '$typepayment') ";
    $rep=requette_sql($sql);
    // recupere le code de la derniere expedition.
    $sql = " select * from EXPEDITIONS ";
    $rep=requette_sql($sql);
    $ligne=mysql_fetch_array($rep);
     
    while($ligne=mysql_fetch_array($rep))
    {
     $codeexpedition=$ligne['code_expedition'];
    }
    partie qui pose probleme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $i=1;
    while ($i<=6)
     {
     
       $sql = " insert into COLIS values ('',  ${'desi'.$i}, ${'qte'.$i}, ${'pd'.$i}, ${'prix'.$i}, $codeexpedition) ";
       $rep=requette_sql($sql);
       $i=$i+1;
    }
    fin du script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    mysql_close();
    echo " enregistrement effectué ";
     
    ?>
    merci,,

  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
    dans ton formulaire tu mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for ($i = 0; $i < 5; $i++) { 
          echo '<input type="text" name="qte[]" />
                  <input type="text" name="desi[]" />';
    }
    et ensuite pour ton traitement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    foreach ($desi as $n=>$value) {
    $sql = " insert into COLIS values (''," . intval($_POST['desi'][$n]) . "," .  intval($_POST['qte'][$n]) . ",  .......
    L'avantage (enorme) de cette méthode et qui si tu decides de mettre 30 lignes au lieu de 6, tu as juste un chiffre a changer.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Concaténer deux variables
    Par bibi666 dans le forum Débuter
    Réponses: 2
    Dernier message: 14/07/2009, 13h48
  2. Concaténer deux variables
    Par Vascogil dans le forum SAS Base
    Réponses: 4
    Dernier message: 26/05/2008, 10h19
  3. concaténer deux variables de type entière
    Par beegees dans le forum C
    Réponses: 22
    Dernier message: 02/11/2007, 12h52
  4. Concaténer deux variables dans une boucle
    Par jeremie74 dans le forum Flash
    Réponses: 2
    Dernier message: 22/05/2007, 19h51
  5. Concaténer deux variables ?
    Par glsn dans le forum ASP
    Réponses: 2
    Dernier message: 19/12/2003, 13h53

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