Page 1 sur 1

traiter des données par lot

Posté : 18 août 2005, 14:00
par ryanu
Bonjour,
Je cherche à affecter des codes de facturation à mes factures que j'enregistre environ une fois par mois.

Ma requête sélectionne dans la base de donnée tous les enregistrements qui n'ont pas de code de type "F4"
Ensuite je ne sais pas comment faire :
- pour mémoriser tous ces enregistrement dans une variable
- pour affecter à ces enregistrements le "F + numéro", sachant qu'il faut reprendre la numérotation à partir du dernier code qui a été affecté (exemple "F26", donc commencer à "F27").

Merci de votre aide

Posté : 19 août 2005, 12:00
par ryanu
Comment faire pour mémoriser plusieurs id d'une page à l'autre pour ensuite affecter une opération à un lot d'enregistrements ?

Posté : 19 août 2005, 12:07
par mere-teresa
D'une page à l'autre ?

- GET
- POST
- SESSION
- COOKIE

Plusieurs données ?

Tableau PHP.

Posté : 19 août 2005, 12:08
par Cyrano
Garde les dans une variable de session en créant un tableau :
$_SESSION['id_fact'] = array();
Ensuite quand tu as besoin d'en garder une en mémoire, fais un
array_push($_SESSION['id_fact'], $valeur_id);
Ça signifie également que tu dois avoir un session_start() partout sur le site au début de chaque page avant tout envoi vers le navigateur.

Posté : 29 août 2005, 15:13
par ryanu
Je n'arrive pas à enregistrer des numéros qui se suivent à plusieurs factures à la fois.
Voici le code la page où je récupère les ID des factures auxquelles il faut affecter un numéro de facture :

Après j'arrive à détecter dans la base le dernier numero_fac qui a été enregistré : en comptant toutes les factures qui ont codecompta=1, j'obtiens le nombre à partir duquel ajouter "1" pour continuer ma numérotation.

Ensuite je ne sais pas comment générer des numero_fac qui se suivent et les affecter aux factures_id récupérés dans $factures.


<form method="post" action="">
<?
      mysql_connect ("127.0.0.1","root") or die("probleme de selection de la table :" . mysql_error());
      mysql_select_db("société");
?>
<?      $factures=$_POST["factures"];    ?>

	  <input type="varchar" size="10" name=numero_fac value=
    
	  				   $f="F";
                       $query="SELECT * FROM factures WHERE  codecompta=1 ";
                       $res=mysql_query($query);

                       $nb_res=mysql_num_rows($res);
                       $res1= $nb_res+1;
                       $res2=("$f$res1");
                       $numero_fac=$res2;

                       $requete = " SELECT factures_id FROM factures where numero_fac='$numero_fac'";
                       $rs = mysql_query($requete);


                       if($numero_fac == mysql_fetch_array($rs))
                       {
                             $i=1;
                             do {

                                 $res4= ("$f$i");
                                 $res5=$res4;
                                 $i++;

                                 } while ( $res5 == mysql_fetch_array($rs));
                        print ("$res5");

                       }
                       else
                       {

                        print ("$numero_fac");

                       }
                ?> >
				
				
<?php 
 $i=0;
   while ($i <  count($factures)):
  $affect="UPDATE factures SET numero_fac='$numero_fac' WHERE factures_id=\"$factures[$i]\"";
  $resaffect= mysql_query ($affect);
  $i++;
   endwhile;
 ?>
<br>
<b> LE NUMERO DE FACTURE :<? print("$numero_fac"); ?></font> A BIEN ETE ENREGISTRE!!</b>
		 
    <?php
                  mysql_close();
  ?>
  <div align="center">
  <input type="submit" name="Submit2" value="valider">

  </form>

Merci de m'aider