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

  FORUM HardWare.fr
  Programmation
  PHP

  non

 

Sujet(s) à lire :
    - Visual C++
 

recuperer des données des differentes tables




Attention si vous cliquez sur "voir les résultats" vous ne pourrez plus voter

 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

non

n°2152864
asmarouis
Posté le 08-08-2012 à 00:47:56  profilanswer
 

j'ai un probleme.. je veux afficher des numeros de telephone et leur zone mais les deux table n'ont pas un lien direct il y en a 2 autre table par intermediare ; lors de l'affichage tous les num apparaissent mais pour les zone seulement la 1ere zone s'affiche et les autres non. pourriez vous m'aider c'est mon code:  
<?php
 
// on se connecte à notre base
$base = mysql_connect ('localhost', 'root', ''#;  
mysql_select_db #'tunisie_telecom', $base# ;  
?>
 
<table border=4 bgcolor="#51A8FF" st#le="border-color: #003162">
<TR><th>Numero</th><th>Ref_Derangement</th><th>Etat</th><th>Zone</th></TR>
<?php
 
// lancement de la requete
$sql = 'SELECT numero,refderangement,etat FROM derangementgis where etat != "BAE" and etat !="AN"';  
$num_tel ='select num_tel_du,num_tel_au,rg_id from quotas_central_lt';  
$mslink='select mslink,ccl from rg';
$ccl='select code_ccl,nom_ccl from ccl ';
 
// on lance la requête #mysql_query# et on impose un message d'erreur si la requête ne se passe pas bien #or die#
$req = mysql_query#$sql# ;  
$req1=mysql_query#$num_tel#;
$req2=mysql_query#$mslink#;
$req3=mysql_query#$ccl#;
// on recupere le resultat sous forme d'un tableau
while#$data = mysql_fetch_array#$req##
{
 $num=$data#'numero'#;
 $eta=$data#'etat'#;
 $ref=$data#'refderangement'#;
 
 // on affiche les résultats
 echo '<tr><td width="300" st#le="border-color: #003162; "><div align="center">',$num,'<td width="300" st#le="border-color: #003162; "><div align="center">',$ref,'</td><td width="300" st#le="border-color: #003162; "><div align="center">',$eta,'</td>';
 
 
 while #$data1 = mysql_fetch_array#$req1##
 {
  if#$num>=$data1#'num_tel_du'# and $num<=$data1#'num_tel_au'##
  {
   
   while #$data2 = mysql_fetch_array#$req2##
   {
    if#$data2#'mslink'#==$data1#'rg_id'##
    {
     
     while #$data3 = mysql_fetch_array#$req3##
     {
      if#$data3#'code_ccl'#==$data2#'ccl'##
      {
      $zone=$data3#'nom_ccl'#;
      echo'<td width="300" st#le="border-color: #003162; "><div align="center">',$zone,'</td></tr>';
      }
     }
    }
   }
  }
 }
       
}
mysql_close ##;  
?>

mood
Publicité
Posté le 08-08-2012 à 00:47:56  profilanswer
 

n°2152870
rufo
Pas me confondre avec Lycos!
Posté le 08-08-2012 à 08:41:17  profilanswer
 

normal que les parenthèses soient remplacées par des # :??:
 
Merci aussi de mettre un titre explicite au topic.
 
Pour ton pb, il faut faire des jointures entre les tables concernées. D'une manière générale, apprendre le sql serait une bonne idée ;)
 
Ex : where etat != "BAE" and etat !="AN"';     peut devenir avantageusement where etat NOT IN ("BAE", "AN"');


Message édité par rufo le 08-08-2012 à 08:42:14

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2152974
asmarouis
Posté le 08-08-2012 à 19:07:00  profilanswer
 

pour les # j'ai copier mon code avec des parenthese mais jcp pk sont transformés... koi faire si j n'ai pas des jointures directe entre les 2 table car j'ai juste qqes tables extraites d'une base de donnée d'une societé et j peux pas avoir tte la base avec tous les liens

n°2153033
rufo
Pas me confondre avec Lycos!
Posté le 09-08-2012 à 19:08:14  profilanswer
 

Ca serait bien que tu nous postes le MCD des tables que t'as actuellement de dispo...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2153069
bardiel
Debian powa !
Posté le 10-08-2012 à 11:26:58  profilanswer
 

Titre ? :o

asmarouis a écrit :

pour les # j'ai copier mon code avec des parenthese mais jcp pk sont transformés...


Utilises la balise code (bouton C/C++) ou fixe :jap:  
 

<?php
 
// on se connecte à notre base
$base = mysql_connect ('localhost', 'root', '');  
mysql_select_db #'tunisie_telecom', $base) ;  
?>
 
<table border=4 bgcolor="#51A8FF" style="border-color: #003162">
<TR><th>Numero</th><th>Ref_Derangement</th><th>Etat</th><th>Zone</th></TR>
<?php
 
// lancement de la requete
$sql = 'SELECT numero,refderangement,etat FROM derangementgis where etat != "BAE" and etat !="AN"';  
$num_tel ='select num_tel_du,num_tel_au,rg_id from quotas_central_lt';  
$mslink='select mslink,ccl from rg';
$ccl='select code_ccl,nom_ccl from ccl ';
 
// on lance la requête #mysql_query# et on impose un message d'erreur si la requête ne se passe pas bien #or die#
$req = mysql_query($sql);  
$req1=mysql_query($num_tel);
$req2=mysql_query($mslink);
$req3=mysql_query($ccl);
// on recupere le resultat sous forme d'un tableau
while($data = mysql_fetch_array($req))
{
 $num=$data('numero');
 $eta=$data('etat');
 $ref=$data('refderangement');
 
 // on affiche les résultats
 echo '<tr><td width="300" style="border-color: #003162; "><div align="center">',$num,'<td width="300" style="border-color: #003162; "><div align="center">',$ref,'</td><td width="300" style="border-color: #003162; "><div align="center">',$eta,'</td>';
 
 
 while ($data1 = mysql_fetch_array($req1))
 {
  if($num>=$data1('num_tel_du') and $num<=$data1('num_tel_au'))
  {
   
   while ($data2 = mysql_fetch_array($req2))
   {
    if($data2('mslink')==$data1('rg_id'))
    {
     
     while ($data3 = mysql_fetch_array($req3))
     {
      if($data3('code_ccl')==$data2('ccl'))
      {
      $zone=$data3('nom_ccl');
      echo'<td width="300" style="border-color: #003162; "><div align="center">',$zone,'</td></tr>';
      }
     }
    }
   }
  }
 }
       
}
mysql_close ();  
?>


 
Ensuite à ta ligne  

// on lance la requête #mysql_query# et on impose un message d'erreur si la requête ne se passe pas bien #or die#


Il manque justement après le "or die" :D donc pas top pour le débug.
Ensuite stocké des commandes dans des variables, pas top non plus. Donc :

// lancement de la requete
$sql = 'SELECT numero,refderangement,etat FROM derangementgis where etat != "BAE" and etat !="AN"';  
$num_tel ='select num_tel_du,num_tel_au,rg_id from quotas_central_lt';  
$mslink='select mslink,ccl from rg';
$ccl='select code_ccl,nom_ccl from ccl ';
 
// on lance la requête #mysql_query# et on impose un message d'erreur si la requête ne se passe pas bien #or die#
$req = mysql_query($sql);  
$req1=mysql_query($num_tel);
$req2=mysql_query($mslink);
$req3=mysql_query($ccl);


Devient :

// lancement de la requete
$req = mysql_query(SELECT numero,refderangement,etat FROM derangementgis WHERE etat != "BAE" and etat !="AN);  
$req1=mysql_query(SELECT num_tel_du,num_tel_au,rg_idt FROM quotas_central_lt);
$req2=mysql_query(SELECT mslink,ccl FROM rg);
$req3=mysql_query(SELECT code_ccl,nom_ccl FROM ccl);


Enfin tu stockes directement des morceaux entiers de bases dans des variables ? [:s@ms:2]


---------------
Grippe ? Coronavirus ? Portez votre masque correctement ! :D
n°2153104
NewsletTux
&lt;Insérez ici votre vie /&gt;
Posté le 10-08-2012 à 21:34:55  profilanswer
 

bardiel a écrit :


Il manque justement après le "or die" :D donc pas top pour le débug.
Ensuite stocké des commandes dans des variables, pas top non plus. Donc :

// lancement de la requete
$sql = 'SELECT numero,refderangement,etat FROM derangementgis where etat != "BAE" and etat !="AN"';  
$num_tel ='select num_tel_du,num_tel_au,rg_id from quotas_central_lt';  
$mslink='select mslink,ccl from rg';
$ccl='select code_ccl,nom_ccl from ccl ';
 
// on lance la requête #mysql_query# et on impose un message d'erreur si la requête ne se passe pas bien #or die#
$req = mysql_query($sql);  
$req1=mysql_query($num_tel);
$req2=mysql_query($mslink);
$req3=mysql_query($ccl);


Devient :

// lancement de la requete
$req = mysql_query(SELECT numero,refderangement,etat FROM derangementgis WHERE etat != "BAE" and etat !="AN);  
$req1=mysql_query(SELECT num_tel_du,num_tel_au,rg_idt FROM quotas_central_lt);
$req2=mysql_query(SELECT mslink,ccl FROM rg);
$req3=mysql_query(SELECT code_ccl,nom_ccl FROM ccl);


Enfin tu stockes directement des morceaux entiers de bases dans des variables ? [:s@ms:2]


 
 
hormis les quotes qui manquent à tes mysql_select (oui ça attend un String ;))  je pense que stocker les requêtes en variable n'est pas une si mauvaise idée pour débugger... ça permet de construire la requête, même si dans le cas que tu mets en évidence ça ne sert effectivement pas plus que ça.


---------------
NewsletTux - outil de mailing list en PHP MySQL
n°2153105
xaeon
Profil: TT
Posté le 10-08-2012 à 23:59:28  profilanswer
 

C'est surtout la façon de nommer les variables qui prête à confusion qui est à souligner, le procédé visant à stocker la requête dans une variable est comme le souligne NewsletTux pas si dénué d’intérêt.
 
Mais nommer la première $sql, puis derrière donner des noms qui laissent croire que le contenu est le résultat de la requête n'est pas vraiment une bonne méthode.

n°2153180
bardiel
Debian powa !
Posté le 13-08-2012 à 12:51:08  profilanswer
 

NewsletTux a écrit :

hormis les quotes qui manquent à tes mysql_select (oui ça attend un String ;))


Hmmmfectivement, mais ça fait un moment que je n'ai pas fait de PHP :D


---------------
Grippe ? Coronavirus ? Portez votre masque correctement ! :D

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

  non

 

Sujets relatifs
Plus de sujets relatifs à : non


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR