Comment récupérer une valeur incrémenter

Fermé
la29mel - 19 févr. 2007 à 11:05
la29mel Messages postés 2 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 19 février 2007 - 19 févr. 2007 à 12:21
Bonjour,

je cherche à générer un fichier txt. à partir d'une bdd mysql. Je dois générer pour chaque ligne un numéro de ligne incrémentation de 1 à chaque ligne. Le soucis c'est que je dois récupérer le numéro auto-incrémenter à l'intérieur de ce même fichier pour une ligne d'enregistrement qui est une description plus préçise d'une autre ligne d'enregistrement. Pour avoir un visuel, voici le fichier que je génére en php à l'exception du champs ICI J'AIMERAI RECUPERER $nombre qui est la problématique de mon développement :

"E";"36 ";" 10";"260207";"260207"
"L";"36";"1";"1757";"4"
"C";"36";"ICI J'AIMERAI RECUPERER 1";"commentaire 1 pour commande 36"
"C";"36";"ICI J'AIMERAI RECUPERER 1";"commentaire 2 pour commande 36"
"E";"37 ";" 10";"080207";"080207"
"L";"37";"3";"1286";"1"
"L";"37";"4";"1386";"1"
"L";"37";"5";"1155";"1"
"L";"37";"6";"7";"1"
"C";"37";"ICI J'AIMERAI RECUPERER 5";"commentaire 1 pour commande 37"

Est-ce que quelqu'un aurai une petite idée pour récupérer le numéro de ligne.

3 réponses

lepetitelephant Messages postés 5 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 19 février 2007
19 févr. 2007 à 11:15
est-ce que la valeur incrémentée est déjà un champ de ta base de données (et plus généralement est-ce que les différentes lignes que tu afffiches sont des lignes distinctes de la table?)
en gros peux-tu donner un aperçu des champs de la/les tables lues
0
la29mel Messages postés 2 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 19 février 2007
19 févr. 2007 à 11:46
Ok,

Bon je vais essayer de synthétiser la problématique :

Tous les champs sont des données récupérées d'une table, les seules données qui sont générées automatiquement c'est le numéro de ligne.

Description des champs :
"E";"36 ";" 10";"260207";"260207"
"Lettre E";"id_commande";"id_client";"reference";"code_barre"

"L";"36";"1";"1757";"4"
"Lettre L";"id_commande";"num autoincrémenté débutant à 1";"id_produit";"qunatite_commande"

"C";"36";"ICI J'AIMERAI RECUPERER 1";"commentaire 1 pour commande 36"
"lettre C";"id_commande";"récupérer num autoincrémenté de la ligne L Précédente";"commentaire"

Pour les ligne commençant par "L", le troisième champs est le numéro de la ligne générée automatiquement à partir de 1.

Pour les lignes commençant par "C", le troisième champs devrait reprendre le numéro de la ligne "L" precedente.
Dans l'exemple ci-dessous le 3ème champs de la 1ière ligne C devrait contenir le chiffre 1

"E";"36 ";" 10";"260207";"260207"
"L";"36";"1";"1757";"4"
"C";"36";"ICI J'AIMERAI RECUPERER 1";"commentaire 1 pour commande 36"
"C";"36";"ICI J'AIMERAI RECUPERER 1";"commentaire 2 pour commande 36"
"E";"37 ";" 10";"080207";"080207"
"L";"37";"3";"1286";"1"
"L";"37";"4";"1386";"1"
"L";"37";"5";"1155";"1"
"L";"37";"6";"7";"1"
"C";"37";"ICI J'AIMERAI RECUPERER 5";"commentaire 1 pour commande 37"
0
lepetitelephant Messages postés 5 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 19 février 2007
19 févr. 2007 à 12:11
hmm
je ne vois toujours pas très bien si chacune de TES lignes est une ligne de la table ou non, mais c'est pas bien grave, si comme tu le dis chaque ligne "C" doit reprendre le numéro de la ligne "L" précédente, ne peux-tu pas déclarer une variable, initialise à 0, et à chaque fois que tu remplis la condition pour écrire "C", tu incrémente de 1 avant d'écrire TA ligne, dans laquelle tu fais appel à ta variable, et quand tu arrives à une ligne en "C", tu reprend sans incrémenter la valeur de ta variable, elle sera alors bien égale à la dernière valeur prise dans une ligne "L"

par contre ça suppose que tu récupères les infos de la table dans le bon ordre...
tu ne peux vraiment pas donner un aperçu de la requête que tu dois faire initialement sur la base?
0
la29mel Messages postés 2 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 19 février 2007
19 févr. 2007 à 12:21
Ok,


$orders_query = tep_db_query("select
o.orders_id,
o.customers_id,
o.orders_status,
o.orders_date_finished,
o.currency,
o.currency_value,
from orders as o
");

//Pour générer les lignes commençant par E :
while($orders = tep_db_fetch_array($orders_query)){
$orders_id = $orders['orders_id'];
$orders_status = $orders['orders_status'];


//Pour générer les lignes commençant par L :
$orders_products = tep_db_query("select orders_products_id, orders_id, products_id, products_model, products_name, products_price, final_price, products_tax, products_quantity, products_ecotax, ecotax_rates_id from orders_products
where orders_id = " . $orders_id);


//Pour générer les lignes commençant par C :
$orders_products_comment = tep_db_query("select orders_status_history_id, orders_id, orders_status_id, date_added, customer_notified, comments from orders_status_history
where orders_id = " . $orders_id);
while($row_orders_products_comment = mysql_fetch_array($orders_products_comment)){
0