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 :

select 4 table avec Join et where un soucis


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 54
    Par défaut select 4 table avec Join et where un soucis
    Bonjour je voudrais joindre 4 tables

    Voici ce que j'ai essayer:
    Code PHP : 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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    $sql = "SELECT  idclient, id, confirmrappel  FROM rdv WHERE confirmrappel = $daterdvref AND (idcomm = $nomcomref OR idcomm2 = $nomcomref)  AND (confirm = '3') and resultatrdv ='0'  order BY confirmrappel ASC";
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    while($data = mysql_fetch_array($req)) 
        {
     
        $idclientr = $data['idclient'];
        $idr = $data['id'];
        $sql10 = "SELECT  t2.nomclient, t2.prenomclient, t2.cp ,t2.ville, t2.telephone, t2.portable, t4.couleur, t3.Idcomm   FROM rdv AS t1 INNER JOIN prospet AS t2 ON t2.id = t1.idclient INNER JOIN zone AS t3 ON t3.cp = t2.cp INNER JOIN couleur AS t4 ON t4.id = t2.cp  WHERE t1.id = $idr  order BY t1.id ASC";
        $req10 = mysql_query($sql10) or die('Erreur SQL !<br>'.$sql10.'<br>'.mysql_error());
        $data10 = mysql_fetch_array($req10);
        $nom_clientr = strtoupper($data10['t2.nomclient']);
        if($nom_clientr>0)
            {
        $couleurtdrappel = 'bgcolor="#FF0000"';    
        $prenom_clientr = ucfirst($data10['t2.prenomclient']);
        $CPR = $data2['t2.cp'];
        $testcom = $data2['t3.Idcomm'];
        $viller = strtoupper($data10['t2.ville']);
        $telephoner = chunk_split($data10['t2.telephone'],"2"," ");
        $portabler = chunk_split($data10['t2.portable'],"2"," ");
        $couleurzoneR= $data10['t4.couleur'];
        if(!empty($couleurzoneR) and $nomcomref==$testcomm)
            {
            $couleurtdzoneR ='bgcolor="'.$couleurzoneR.'"';
            }
     
     
        echo("
            <table width=\"100\" border=\"1\">
                      <tr>
                    <td width=\"45\">");
     
                    echo("<strong>Rappel</strong></td>");
     
     
                        echo("<td width=\"139\" colspan=\"2\" $couleurtdzoneR><a href=\"index3.php?page=page/admin/agenda/index&page2=com/ficheraptelepro&id=$idclientr\" target=\"_parent\">$nom_clientr<br>$prenom_clientr</a>
                    </td>
                       </tr>");
     
     
     
                        echo("<tr><td colspan=\"3\" $couleurtdrappel>
                       $CPR&nbsp;$viller");
                    if(!empty($telephoner))
                        {
                    echo("<br>$telephoner");
                        }
                    if(!empty($portabler))
                        {
                    echo("<br>$portabler");
                        }   
          echo("</td>
     
              </tr>");
     
     
        echo'</table>';
     
     
     
     
        }
        }
    Quelqu'un aurai une idée merci d'avance

    Je n'ai pas d'erreur mais rien ne s'affiche

    Merci d'avance

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Commence par controler dans phpmyadmin ce que retourne tes requetes.

    Si elle ne retourne rien, ou pas ce que tu voudrais, dans phpmyadmin ; tu peux laisser tomber toute la partie PHP.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 54
    Par défaut
    Je ne comprend pas ce que tu veux dire par laisser tomber la partie PHP ?????

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 54
    Par défaut
    J'ai trouver une partie de mon erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql10 = "SELECT  t2.nomclient, t2.prenomclient, t2.cp ,t2.ville, t2.telephone, t2.portable, t4.couleur, t3.Idcomm   FROM rdv AS t1 INNER JOIN prospet AS t2 ON t2.id = t1.idclient INNER JOIN zone AS t3 ON t3.cp = t2.cp INNER JOIN couleur AS t4 ON t4.id = t3.Idcouleurs    AND t1.id='$idr'  ";
    Mais ca ne s'affiche pas

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    ba la tu nous mets une tartine de code mais si la requete en premiere ligne ne donne rien, ca ne sert a rien de regarder la deuxieme ligne.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 54
    Par défaut
    La première ligne est bonne je fesais un appel base par base avant.
    j'ai voulut réunir les 4 bases pour optimer
    ancien code :
    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    $sql = "SELECT  idclient, id, confirmrappel  FROM rdv WHERE confirmrappel = $daterdvref AND (idcomm = $nomcomref OR idcomm2 = $nomcomref)  AND (confirm = '3') and resultatrdv ='0'  order BY confirmrappel ASC";
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    while($data = mysql_fetch_array($req)) 
    	{
     
    	$idclientr = $data['idclient'];
    	$idr = $data['id'];
    	$sql10 = "SELECT  id FROM rdv WHERE idclient = $idclientr  order BY id ASC";
    	$req10 = mysql_query($sql10) or die('Erreur SQL !<br>'.$sql10.'<br>'.mysql_error());
    	$data10 = mysql_fetch_array($req10);
    	$idr2 = $data10['id'];	
    	if($idr==$idr2)
    		{
    	$confirmrappel = $data['confirmrappel'];
    	$couleurtdrappel = 'bgcolor="#FF0000"';
    	$sql2 = "SELECT * FROM prospet where id='$idclientr' ";
    	$req2 = mysql_query($sql2) or die('Erreur SQL !<br>'.$sql2.'<br>'.mysql_error());
    	$data2 = mysql_fetch_array($req2);	
    		$nom_clientr = strtoupper($data2['nomclient']);
    		$prenom_clientr = ucfirst($data2['prenomclient']);
    		$CPR = $data2['cp'];
    		$viller = strtoupper($data2['ville']);
    		$telephoner = chunk_split($data2['telephone'],"2"," ");
    		$portabler = chunk_split($data2['portable'],"2"," ");
     
    		$sql3 = "SELECT * FROM zone where cp='$CPR' and Idcomm = $nomcomref";
    		$req3 = mysql_query($sql3) or die('Erreur SQL !<br>'.$sql3.'<br>'.mysql_error());
    		$data3 = mysql_fetch_array($req3); 
    		$idcouleursR= $data3['Idcouleurs'];
     
     
    		$sql4 = "SELECT * FROM couleur where id='$idcouleursR' ";
    		$req4 = mysql_query($sql4) or die('Erreur SQL !<br>'.$sql4.'<br>'.mysql_error());
    		$data4 = mysql_fetch_array($req4); 
    		$couleurzoneR= $data4['couleur'];
    		if(!empty($couleurzoneR))
    			{
    			$couleurtdzoneR ='bgcolor="'.$couleurzoneR.'"';
    			}
     
     
    	echo("
    		<table width=\"100\" border=\"1\">
      				<tr>
    			    <td width=\"45\">");
     
    				echo("<strong>Rappel</strong></td>");
     
     
    					echo("<td width=\"139\" colspan=\"2\" $couleurtdzoneR><a href=\"index3.php?page=page/admin/agenda/index&page2=com/ficheraptelepro&id=$idclientr\" target=\"_parent\">$nom_clientr<br>$prenom_clientr</a>
    				</td>
    				   </tr>");
     
     
     
    					echo("<tr><td colspan=\"3\" $couleurtdrappel>
    			   	$CPR&nbsp;$viller");
    				if(!empty($telephoner))
    					{
    				echo("<br>$telephoner");
    					}
    				if(!empty($portabler))
    					{
    				echo("<br>$portabler");
    					}   
      	echo("</td>
     
      		</tr>");
     
     
    	echo'</table>';
     
     
     
     
    	}
    	}
    	}
    Je suis sur que l'on peut tout réunir en une seule ligne mais je ne vois pas comment faire sans les where ???

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Qu'est ce que te bloque pour n'avoir qu'une seule requete en tout et pour tout ?
    Pourquoi veux-tu te passer des WHERE ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Selection multi table avec filtre
    Par curumo dans le forum Requêtes
    Réponses: 6
    Dernier message: 20/11/2009, 23h16
  2. Récuperer différence entre deux tables avec JOIN
    Par Takumi dans le forum Requêtes
    Réponses: 6
    Dernier message: 17/08/2009, 22h59
  3. requete sur deux tables avec join et coalesce
    Par nifufu dans le forum Requêtes
    Réponses: 14
    Dernier message: 10/02/2009, 13h51
  4. selection de table avec un suffix
    Par phildu dans le forum Outils
    Réponses: 1
    Dernier message: 26/02/2007, 23h20
  5. Insert avec select sur table avec Trigger d'insertion
    Par bran_noz dans le forum Développement
    Réponses: 5
    Dernier message: 23/12/2005, 14h38

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