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 :

foreach manquant


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 4
    Par défaut foreach manquant
    bonjour,
    pour des fins personnels je travail sur une boutqiue en ligne qui est en php et travail avec une base de donne mysql.

    j'ai repris le travail d'une personne qui est abandonné, la travail que j'ai repris est un module qui permet de mettre a jours plusieurs commandes en meme temps. sur cette page j'ai une case de sais pour ajouter un commentaire par client, ces ommentaires sont bien sur differents pour chaque client.

    afin de mettre a jour je parcours la table client et commandes avec une fonction foreach.
    tout marche bien sauf que les commentaires ne sont pas inserer dans la base.
    j'ai essayer pas mal de solution trouver sur le net mais cela ne marche pas. je met ici le bout de code qui effectu les mise a jours en masse.

    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
    // Multi order updates
    if (isset($HTTP_POST_VARS['submit'])){
     if (($HTTP_POST_VARS['submit'] == BUS_SUBMIT)&&(isset($HTTP_POST_VARS['new_status']))){ // Fair enough, let's update ;)
      $status = tep_db_prepare_input($HTTP_POST_VARS['new_status']);
      if ($status == '') { // New status not selected
         tep_redirect(tep_href_link(FILENAME_ORDERS),tep_get_all_get_params());
      }
     
      foreach ($HTTP_POST_VARS['update_oID'] as $this_orderID){
        $order_updated = false;
        $check_status_query = tep_db_query("select customers_name, customers_email_address, orders_status, date_purchased from " . TABLE_ORDERS . " where orders_id = '" . (int)$this_orderID . "'");
        $check_status = tep_db_fetch_array($check_status_query);
        $comments = tep_db_prepare_input($HTTP_POST_VARS['comments']);
     
     
    	if (($check_status['orders_status'] != $status) || tep_not_null($comments)) {
           tep_db_query("update " . TABLE_ORDERS . " set orders_status = '" . tep_db_input($status) . "', last_modified = now() where orders_id = '" . (int)$this_orderID . "'");
     
    	   $customer_notified ='0';
     
    	   $requpdate = "update " . TABLE_ORDERS_STATUS_HISTORY . " set orders_status_status_history_id = '" . tep_db_input($comments) . "', comments = now() where comments = '" . (int)$this_orderID . "'";
    echo $requpdate;
     
              if (isset($HTTP_POST_VARS['notify'])) {
                $notify_comments = '';
                if (isset($HTTP_POST_VARS['notify_comments']) && ($HTTP_POST_VARS['notify_comments'] == 'on')) {
                  $notify_comments = sprintf(EMAIL_TEXT_COMMENTS_UPDATE, $comments) . "\n\n";
                }
                $email = STORE_NAME . "\n" . EMAIL_SEPARATOR . "\n" . EMAIL_TEXT_ORDER_NUMBER . ' ' . $this_orderID . "\n" . EMAIL_TEXT_INVOICE_URL . ' ' . tep_catalog_href_link(FILENAME_CATALOG_ACCOUNT_HISTORY_INFO, 'order_id=' . $this_orderID, 'SSL') . "\n" . EMAIL_TEXT_DATE_ORDERED . ' ' . tep_date_long($check_status['date_purchased']) . "\n\n" . $notify_comments . sprintf(EMAIL_TEXT_STATUS_UPDATE, $orders_status_array[$status]);
                tep_mail($check_status['customers_name'], $check_status['customers_email_address'], EMAIL_TEXT_SUBJECT, $email, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);
                $customer_notified = '1';
              }
              tep_db_query("insert into " . TABLE_ORDERS_STATUS_HISTORY . " (orders_id, orders_status_id, date_added, customer_notified, comments) values ('" . (int)$this_orderID . "', '" . tep_db_input($status) . "', now(), '" . tep_db_input($customer_notified) . "', '" . tep_db_input($comments)  . "')");
              $order_updated = true;
        }
            if ($order_updated == true) {
             $messageStack->add("Order $this_orderID updated.", 'success');
            } else {
              $messageStack->add("Order $this_orderID not updated.", 'warning');
            }
            }// End foreach ID loop
      }
     }
     
    // End Multi order updates
    je solicite donc votre aide merci

    cordialement.

  2. #2
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 28
    Par défaut
    salut
    je te conseille de faire un "echo" de toutes les variables que tu utilises avec la fonction isset() juste pour savoir s'il passe bien dans tes tets de mise à jour (update)

    cela ne peux venir que de la
    sinon c'est que ta variable "tep_db_input($comments)" est vide

    amicalement

    matt

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 4
    Par défaut
    bonjour, merci pour ta reponse.
    j'ai tester echo mais rien a fiare pourtant quand je fais $comment 'mon commentaire' je le trouve bien dans ma table dans le champ comment. je cale dur sur ce souci depuis pas mal de temps.

    j'ai meme tester avec avant la preparation tep_db_input avec un if (HTTP_POST_VARS[comments] BLABLA) rien a faire.

    je suis un peu perdu...

    merci

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 4
    Par défaut
    j'ai donc effefectue cet echo, j'ai remarquer autre chose, si je choisi la commande en premiere ligne du tableau avec d'autres commandes a traiter et que j'ajoute un commentaire a la premiere, le commentare est ajouter a toutes les commandes traitrées, et c'est uniquement ce commentaire, si je mets un commentaire different c'est uniquement celui de la premiere qui est enrergistrée. si je choisi de traitre les autres commande autre que celle en premier dans le tableau alors aucun commentaire est enregistrer en base de donnee.

Discussions similaires

  1. Commande Dos manquante(sous win98)
    Par Ben_becker8 dans le forum Windows 2000/Me/98/95
    Réponses: 9
    Dernier message: 07/05/2004, 17h05
  2. [CR7] dll U25STORE et U25TOTAL manquantes
    Par elifqaoui dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 03/07/2003, 21h25
  3. Réponses: 4
    Dernier message: 04/03/2003, 01h05
  4. Réponses: 2
    Dernier message: 11/08/2002, 21h27

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