Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3509 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  pb de concatenation

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

pb de concatenation

n°958530
attentio
Posté le 21-01-2005 à 15:02:55  profilanswer
 

boujour,  
j'ai un probleme de concatenation, je ne comprends pas pourquoi.
actuellement $mail_ref ne boucle pas, par contre si j'enleve la ligne $cad =mysql_fetch_array($req_caddy);ca marche mais j'ai besoin de $laref pour ma seconde requete.

Code :
  1. <?
  2. // requete 1
  3. $req_caddy=mysql_query("SELECT * FROM commande WHERE commande='126'" );
  4. $cad =mysql_fetch_array($req_caddy);
  5. $laref=$cad[1];
  6. // requete 2
  7. $req_articles = mysql_query("SELECT * FROM articles WHERE ref='$laref'" );
  8. $arti =mysql_fetch_array($req_articles);
  9. // affichage de la liste
  10. $mail_ref = "";
  11. while($resultat =mysql_fetch_row($req_caddy)){
  12. $mail_ref .= $arti[2]." prix de l'article :"
  13. .$resultat[2]."quantité : "
  14. .$resultat[3]."<br>";
  15. ?>


a quoi est du cette erreur ? comment doit m'y prendre ?
merci de votre aide


Message édité par attentio le 24-03-2005 à 20:44:01

---------------
L'ordinateur a de la mémoire mais aucun souvenir ...
mood
Publicité
Posté le 21-01-2005 à 15:02:55  profilanswer
 

n°958534
Profil sup​primé
Posté le 21-01-2005 à 15:05:58  answer
 

echo $laref = ??

n°958539
simogeo
j'ai jamais tué de chats, ...
Posté le 21-01-2005 à 15:08:12  profilanswer
 

tu n'as visiblement pas compris l'utilisation de mysql_fetch_array :
 
je te renvoie vers la doc :  
http://fr2.php.net/manual/fr/funct [...] -array.php
 
regardes en dessous aussi les exemples d'utilisation.
Et reviens poser ta question, si tu as toujours un problème :)


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°958542
Profil sup​primé
Posté le 21-01-2005 à 15:11:26  answer
 

meme pas vu, il le met en row :'(

n°958573
attentio
Posté le 21-01-2005 à 15:30:17  profilanswer
 

j'ai mis
while($resultat =mysql_fetch_array($req_caddy)
 ... et ca marche pas mieux : j'ai qu'un seul enregistrement qui s'affiche


Message édité par attentio le 21-01-2005 à 15:30:44
n°958587
Profil sup​primé
Posté le 21-01-2005 à 15:36:05  answer
 

mysql_fetch_array
$var['champ']
 
et pas
 
$var[offset]

n°958607
attentio
Posté le 21-01-2005 à 15:42:26  profilanswer
 

...je peux pas ! C sur une page pour un paiement securisé ... et je ne sais pour quelle raison, il n'accepte pas les champs ... je suis obligé de jongler avec les 'offsets'!

n°958610
KangOl
Profil : pointeur
Posté le 21-01-2005 à 15:43:38  profilanswer
 

donne nous l'url qu'on aille pas y perde de l'argent parce que vu comme tu codes...


---------------
Nos estans firs di nosse pitite patreye...
n°958612
simogeo
j'ai jamais tué de chats, ...
Posté le 21-01-2005 à 15:43:56  profilanswer
 

dans ces cas là .. mysql_fetch_array($result, MYSQL_NUM)


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°958643
attentio
Posté le 21-01-2005 à 15:59:18  profilanswer
 

c'est pas mieux avec le MYSQL_NUM ! toujours un seul enregistrement a l'affichage
 

Code :
  1. <? php
  2. // requete 1  
  3. $req_caddy=mysql_query("SELECT * FROM commande WHERE commande='126'" );
  4. $cad =mysql_fetch_array($req_caddy);
  5. $laref=$cad[1];
  6. // requete 2  
  7. $req_articles = mysql_query("SELECT * FROM articles WHERE ref='$laref'" );
  8. $arti =mysql_fetch_array($req_articles);
  9. // affichage de la liste  
  10. $mail_ref = "";
  11. while($resultat =mysql_fetch_array($req_caddy,MYSQL_NUM )){
  12. $mail_ref .= $arti[2]." prix de l'article :"
  13. .$resultat[2]."quantité : "
  14. .$resultat[3]."<br>";
  15. ?>


je rapelle que C a cause des lignes
$cad =mysql_fetch_array($req_caddy);
$laref=$cad[1];
que ca ne marche pas !
 
merci de votre aide

mood
Publicité
Posté le 21-01-2005 à 15:59:18  profilanswer
 

n°958663
KangOl
Profil : pointeur
Posté le 21-01-2005 à 16:06:02  profilanswer
 

au fait qu'est-ce que tu essayes de faire ??


---------------
Nos estans firs di nosse pitite patreye...
n°958664
simogeo
j'ai jamais tué de chats, ...
Posté le 21-01-2005 à 16:06:28  profilanswer
 

déjà :

Code :
  1. $cad =mysql_fetch_array($req_caddy,MYSQL_NUM);
  2. $laref=$cad[1];


 
:o


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°958669
Xav_
The only one...
Posté le 21-01-2005 à 16:11:01  profilanswer
 

Citation :

c'est pas mieux avec le MYSQL_NUM ! toujours un seul enregistrement a l'affichage


 
si tu veux que pour chacune des réference, tu recupère les infos correspodante dans la table article, il faut inclure le ta 2ème requete dans le while du premier mysql_fetch_array...
 

Code :
  1. // requete 1  
  2. $req_caddy=mysql_query("SELECT * FROM commande WHERE commande='126'" ); 
  3. while ($cad =mysql_fetch_array($req_caddy)) //boucle qui parcours les enregistrements
  4.   $laref=$cad[1];
  5.   // requete 2   
  6.   $req_articles = mysql_query("SELECT * FROM articles WHERE ref='$laref'" );
  7.   $arti=mysql_fetch_array($req_articles);
  8.    // ... etc ...
  9.    // ton affichage
  10. } //fin de la boucle


 
PS: à moins que tu es vraiment besoin de tout (ce dont je doute), optimise tes SELECT * (notemment la deuxieme requete où il me semble que tu ne récupère que le prix de l'article)


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°958686
attentio
Posté le 21-01-2005 à 16:29:09  profilanswer
 

je voudrais tout simplement afficher un pauvre petit tableau dans lequel il y a la facture d'une commande.
ex :
table commande
1 | art1 | 15€ |126
2  | art2 | 20€ |126
 
table articles
1|nom_de_mon article_1 |
2|nom_de_mon article_1 |
 
donc dans un premier tps je veux qu'il affiche toutes les commandes avec 126
puis a la place du 1 et 2 de ces enregistrements il affiche le nom de l'article  
seules contraintes :
-l'utilisation de $tableau[offset]
-l'utilisation de $mail_ref .= ...
 
merci infiniment de votre aide
 

n°958694
Profil sup​primé
Posté le 21-01-2005 à 16:35:22  answer
 

et ben met un mysql_fetch_row !!

n°958704
attentio
Posté le 21-01-2005 à 16:44:12  profilanswer
 

meme en mettant tout dans mon while, il m'affiche toujours qu'un seul enregistrement  :??:

n°958707
Profil sup​primé
Posté le 21-01-2005 à 16:45:18  answer
 

et t'as mis la deuxieme query dans un while aussi :??:

n°958726
attentio
Posté le 21-01-2005 à 16:51:50  profilanswer
 

ben ...vi  :ange:

n°958731
Xav_
The only one...
Posté le 21-01-2005 à 16:54:08  profilanswer
 

chacal_one333 a écrit :

et ben met un mysql_fetch_row !!


ou meme un mysql_fetch_object, et la plus de pb de tableau, c'est des objets que tu manipule ;)


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°958732
Xav_
The only one...
Posté le 21-01-2005 à 16:55:17  profilanswer
 

attentio a écrit :

meme en mettant tout dans mon while, il m'affiche toujours qu'un seul enregistrement  :??:


rassure moi, la commande que tu utilise pour tester, elle contient plus d'un article au moins ???


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°958758
attentio
Posté le 21-01-2005 à 17:12:30  profilanswer
 

oui ... oui  
si j'enleve  
$cad =mysql_fetch_array($req_caddy);  
$laref=$cad[1];
tout marche sauf que je ne pas afficher le nom de l'article correspondant (dans la table articles

n°958759
simogeo
j'ai jamais tué de chats, ...
Posté le 21-01-2005 à 17:13:16  profilanswer
 

attentio a écrit :

oui ... oui  
si j'enleve  
$cad =mysql_fetch_array($req_caddy);  
$laref=$cad[1];
tout marche sauf que je ne pas afficher le nom de l'article correspondant (dans la table articles


 
putain maisssssssssss http://forum.hardware.fr/forum2.ph [...] 12#t958664
 
 :fou:  :fou:  :fou:  


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°958777
attentio
Posté le 21-01-2005 à 17:26:31  profilanswer
 

houlala,  t'ennerve pas mon cheri  :(  
meme en mettant MYSQL_NUM sur $cad ... ca marche pas !
auuu seccouuurrrsss  :pt1cable:

n°958821
lolofora
Posté le 21-01-2005 à 18:01:00  profilanswer
 

si ta clé primaire, c'est "commande" çà risque pas de retourner plus que 1 enregistrement :
$req_caddy=mysql_query("SELECT * FROM commande WHERE commande='126'" );  

n°958826
Xav_
The only one...
Posté le 21-01-2005 à 18:04:37  profilanswer
 

lolofora a écrit :

si ta clé primaire, c'est "commande" çà risque pas de retourner plus que 1 enregistrement :
$req_caddy=mysql_query("SELECT * FROM commande WHERE commande='126'" );


 
meme si c'est pas la clé primaire, mais qu'il n'y qu'une seule commande "126", c'est kler qu'il y aura qu'un seul enregistrement !!!!!


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°958850
attentio
Posté le 21-01-2005 à 18:23:02  profilanswer
 

non ... commande n'est pas ma clé primaire
 

Code :
  1. TABLE `commande` (
  2.   `commande_id` int(10) unsigned NOT NULL auto_increment,
  3.   `ref` char(13) NOT NULL default '',
  4.   `prix_produit` float(4,2) NOT NULL default '0.00',
  5.   `quantite` tinyint(3) unsigned NOT NULL default '0',
  6.   `commande` int(10) default NULL,
  7.   PRIMARY KEY  (`commande_id`,`ref`)
  8. ) TYPE=MyISAM AUTO_INCREMENT=66 ;


 

Code :
  1. CREATE TABLE `articles` (
  2.   `ref` int(10) NOT NULL auto_increment,
  3.   `designer` varchar(30) default NULL,
  4.   `nom_article` varchar(60) default NULL,
  5.   PRIMARY KEY  (`ref`)
  6. ) TYPE=MyISAM AUTO_INCREMENT=54


   

n°958866
KangOl
Profil : pointeur
Posté le 21-01-2005 à 18:41:08  profilanswer
 

il est lié a quoi commande.commande ? a articles.ref ??
 
si, oui faut vraiment que tu revois tes bases en sgbd (sans jeux de mots)


---------------
Nos estans firs di nosse pitite patreye...
n°958925
attentio
Posté le 21-01-2005 à 19:26:52  profilanswer
 

non ... commande.ref=articles.ref

n°958927
KangOl
Profil : pointeur
Posté le 21-01-2005 à 19:29:39  profilanswer
 

bha c'est pareil : une commande est associée a un article !
donc on peut pas commander plus d'un article :/


---------------
Nos estans firs di nosse pitite patreye...
n°958953
attentio
Posté le 21-01-2005 à 19:54:49  profilanswer
 

ben non ... ma table table commande de contient pas les commandes contrairement a ce qu'on pourait penser mais elle ser justement a mettre en relation 2 tables dont articles mais aussi commande_client qui elle a un identifiant unique (216) qu'on retrouve dans le champ commande
ex :
****************************
table commande_client
****************************
id : 216
nom : dupont
montant : 35.00 €
****************************
table commande
****************************
commande_id :1
ref : 34
prix_produit 10.00  
quantite :2
commande : 216
-----------------------------
commande_id :2
ref : 47
prix_produit 15.00  
quantite :1
commande : 216
****************************
table articles
****************************
ref : 34
nom_article : mon_article34
prix : 10.00
----------------------------
ref : 47
nom_article : mon_article47
prix : 15 .00
*****************************
 
j'espere etre clair :ange:  
merci

n°958956
KangOl
Profil : pointeur
Posté le 21-01-2005 à 19:59:47  profilanswer
 

bon ok !!


---------------
Nos estans firs di nosse pitite patreye...
n°959001
attentio
Posté le 21-01-2005 à 21:39:42  profilanswer
 

le plus enervant c'est que j'ai deja reussi a afficher tout cela dans ma zone admin mais la j'ai besoin d'utiliser le while parce que ces donnees doivent etre envoyées dans un mail.
voici le code de cette page

Code :
  1. <?
  2. //affiche_commandes_admin.php
  3. //requetes
  4. $req_articles = mysql_query("SELECT * FROM articles,commande WHERE articles.ref=commande.ref" );
  5. $req_caddy=mysql_query("SELECT * FROM commande WHERE commande='$commande_id'" );
  6. $resultatarticles=mysql_fetch_array($req_articles);
  7. //boucle
  8. for($n=0; $n<mysql_num_rows($req_caddy); $n++ ){
  9. $resultatcaddy =mysql_fetch_array($req_caddy);
  10. echo $resultatarticles['nom_article'];
  11. echo $resultatcaddy['quantite'].'<br>';
  12. }
  13. ?>


voilou
 
merci de votre aide


Message édité par attentio le 21-01-2005 à 21:40:43
n°959079
T509
$job-&gt;GetJob(now)
Posté le 22-01-2005 à 00:08:24  profilanswer
 

attentio a écrit :

boujour,  
j'ai un probleme de concatenation, je ne comprends pas pourquoi.
actuellement $mail_ref ne boucle pas, par contre si j'enleve la ligne $cad =mysql_fetch_array($req_caddy);ca marche mais j'ai besoin de $laref pour ma seconde requete.

Code :
  1. <?
  2. // requete 1
  3. $req_caddy=mysql_query("SELECT * FROM commande WHERE commande='126'" );
  4. $cad =mysql_fetch_array($req_caddy);
  5. $laref=$cad[1];
  6. // requete 2
  7. $req_articles = mysql_query("SELECT * FROM articles WHERE ref='$laref'" );
  8. $arti =mysql_fetch_array($req_articles);
  9. // affichage de la liste
  10. $mail_ref = "";
  11. while($resultat =mysql_fetch_row($req_caddy)){
  12. $mail_ref .= $arti[2]." prix de l'article :"
  13. .$resultat[2]."quantité : "
  14. .$resultat[3]."<br>";
  15. ?>


a quoi est du cette erreur ? comment doit m'y prendre ?
merci de votre aide


 
 
 
Un peu d'analyse en français :
1- Tu vas chercher les articles du caddie 126
2- tu vas chercher la référence du premier article
3- tu vas chercher les info de l'article dont tu as la référence
4- tu boucles tant que tu as des articles dans le caddie pour  
    a- afficher le nom du premier article du caddie
    b- afficher le prix
    c- afficher la quantité
5- fin de boucle
 
Cherche l'erreur ...
 
Pour faire plus simple, tu peux tout avoir en une seule requête.
 
A+

n°959081
attentio
Posté le 22-01-2005 à 00:15:25  profilanswer
 

aide moi stp !!! j'ai beau tourner le probleme dans tous les sens depuis le debut de l'apres midi et je ne trouve pas !
merci infiniment

n°959083
T509
$job-&gt;GetJob(now)
Posté le 22-01-2005 à 00:17:59  profilanswer
 

Tu ne vas chercher les infos que du 1er article sans jamais aller chercher les autres !

n°959089
attentio
Posté le 22-01-2005 à 00:28:29  profilanswer
 

c'est a dre ?

n°959096
attentio
Posté le 22-01-2005 à 01:04:39  profilanswer
 

comment dois m'y prendre?

n°959097
KangOl
Profil : pointeur
Posté le 22-01-2005 à 01:05:38  profilanswer
 

en utilisant ton cerveau :o


---------------
Nos estans firs di nosse pitite patreye...
n°959098
attentio
Posté le 22-01-2005 à 01:07:39  profilanswer
 

hahaha

n°959099
attentio
Posté le 22-01-2005 à 01:11:08  profilanswer
 

je comprends bien que je recupere uniquement le premiere article ...mais comment faire ? expliquez moi  :(

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  pb de concatenation

 

Sujets relatifs
[ColdFusion] recréer une variable par concaténationconcaténation de chaîne - jdk 1.5
Récusrivité , concaténationProbleme de concatenation
Concatenation de chaineConcaténation difficile
probleme de concaténation requete mysqlconcatenation + une valeur
concatenationconcatenation Nom-Date
Plus de sujets relatifs à : pb de concatenation


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)