Probleme de requette sur mysql

Probleme de requette sur mysql - PHP - Programmation

Marsh Posté le 18-02-2003 à 14:47:34    

Bonjour, j'ai un petit probleme je ne c pas comment faire pour envoyer une 2eme requette mysql qui serais dans un boucle bon un exemple et vous allez comprendre :  
 

Code :
  1. <?
  2.                  
  3. $req = mysql_query("SELECT * FROM $table_3" );
  4. $res = mysql_numrows($req);
  5.          
  6. $i=0;         
  7. WHILE($res!=$i)
  8.     {
  9.    $id = mysql_result($req,$i,"id_Art" );
  10.    $titre = mysql_result($req,$i,"titre_Art" ); 
  11.    $data = mysql_result($req,$i,"data_Art" ); 
  12.    $langue = mysql_result($req,$i,"langue_Art" );
  13.    $arbo_Art_temp=mysql_result$req,$i,"arbo_Art" );             
  14. ?>
  15. <table width="90%" border="1" cellspacing="0" cellpadding="0" bordercolor="#000099" align="center">
  16.   <tr>
  17.     <td width="25%">
  18.       <div align="center"><a href="../index.php?id=<? echo $id ?>" target="_blank" class="titre-menu"><? echo $titre; ?></a></div>
  19.     </td>
  20.     <td width="5%"><div align="center"><? echo $arbo_Art; ?></div></td>
  21.     <td width="5%">
  22.       <div align="center"><? echo $langue; ?></div>
  23.     </td>
  24.     <td width="25%">
  25.       <div align="center"><br>
  26.       </div>
  27.       <form method="post" action="admin_modif_article.php">
  28.         <div align="center">
  29.           <input type="hidden" name="id" size="3" value="<? echo $id; ?>" maxlength="5">
  30.           <input type="submit" name="Submit3" value="Modifier <? echo "'$langue'";?>">
  31.         </div>
  32.       </form>
  33.     </td>
  34.   </tr>
  35. </table>
  36. <? $i++;
  37.   }
  38. mysql_close();  ?>

 
 
 
et je voudrai pouvoir demande le champ titre qui a son id = a $arbo_Art_temp dans une autre table et que le resultat a savoir $arbo_Art soit affiché dans mon tableau.
 
Voila bon je c pas si vous avez bien compris mais bon voila.

Reply

Marsh Posté le 18-02-2003 à 14:47:34   

Reply

Marsh Posté le 18-02-2003 à 15:02:02    

je me suis mal expliqué ?

Reply

Marsh Posté le 18-02-2003 à 15:04:23    

Reply

Marsh Posté le 18-02-2003 à 15:23:19    

----------------------
requette sql 1 : donne moi les champs toto tata où le champ titi=1 de la table coucou
----------------------
Maintenant que tu connait la valeur de tata
requette sql 2 : donne moi le champs titre où le champ riri=tata de la table rara
----------------------
affiche moi tous les resultats dans un tableau. (donc boucle)
----------------------
 
Putain je suis vraiment pas bon pour m'expliqué désolé.

Reply

Marsh Posté le 18-02-2003 à 15:27:16    

benwar a écrit :

----------------------
requette sql 1 : donne moi les champs toto tata où le champ titi=1 de la table coucou
----------------------
Maintenant que tu connait la valeur de tata
requette sql 2 : donne moi le champs titre où le champ riri=tata de la table rara
----------------------
affiche moi tous les resultats dans un tableau. (donc boucle)
----------------------
 
Putain je suis vraiment pas bon pour m'expliqué désolé.


Heu ... Il existe ce qu'on appelle comunément "les jointures" ...
Pourquoi tu ne fait pas :
select bidule truc from table1, table2 where table1.riri = table2.tata and ( tout tes tes filtres sur table1 )
Faire une seule requête quoi.


---------------
Gérez votre collection de BD en ligne ! ---- Electro-jazzy song ---- Dazie Mae - jazzy/bluesy/cabaret et plus si affinité
Reply

Marsh Posté le 18-02-2003 à 15:39:57    

tomlameche a écrit :


Heu ... Il existe ce qu'on appelle comunément "les jointures" ...
Pourquoi tu ne fait pas :
select bidule truc from table1, table2 where table1.riri = table2.tata and ( tout tes tes filtres sur table1 )
Faire une seule requête quoi.


 
je v tester tout de suite merci ;)

Reply

Marsh Posté le 18-02-2003 à 15:43:36    

la syntaxe est bonne ?  
 

$req = mysql_query("SELECT * FROM $table_3 AND SELECT * FROM $table WHERE id='$arbo_Art_temp'" );

Reply

Marsh Posté le 18-02-2003 à 15:53:16    

benwar a écrit :

la syntaxe est bonne ?  
 

$req = mysql_query("SELECT * FROM $table_3 AND SELECT * FROM $table WHERE id='$arbo_Art_temp'" );




 
bon cela ne marche pas !

Reply

Marsh Posté le 18-02-2003 à 16:04:46    

Ta syntaxe n'est pas bonne nan !
ca serait plutôt qqchose dans ce genre :

Code :
  1. $req = mysql_query("SELECT table3_.*, table.* FROM $table_3, $table WHERE $table.id=$table_3.arbo_Art_temp" );


Message édité par walli le 18-02-2003 à 16:19:51
Reply

Marsh Posté le 18-02-2003 à 16:32:55    

walli a écrit :

Ta syntaxe n'est pas bonne nan !
ca serait plutôt qqchose dans ce genre :

Code :
  1. $req = mysql_query("SELECT table3_.*, table.* FROM $table_3, $table WHERE $table.id=$table_3.arbo_Art_temp" );




 
ca marche po  :cry:


Message édité par benwar le 18-02-2003 à 16:33:17
Reply

Marsh Posté le 18-02-2003 à 16:32:55   

Reply

Marsh Posté le 18-02-2003 à 16:34:33    

benwar a écrit :


 
ca marche po  :cry:


 
g pas dit que ma syntaxe etait correcte non plus, mais que c'etait quelquechose dans ce style la.
fais une recherche dans google sur les jointures et adapte a ta requete !

Reply

Marsh Posté le 18-02-2003 à 16:44:25    

walli a écrit :


 
g pas dit que ma syntaxe etait correcte non plus, mais que c'etait quelquechose dans ce style la.
fais une recherche dans google sur les jointures et adapte a ta requete !
 


Pis tu devrai peut être arréter de poster toute les 10 minutes un message du type "Ca marche po" !  
T'imagine un peu si tout ceux qui apprennent se mettent à faire comme toi ? On apprend pas en pausant une question toutes les 10 minutes, faut mettre un peu la main à la pate ... :pfff:


---------------
Gérez votre collection de BD en ligne ! ---- Electro-jazzy song ---- Dazie Mae - jazzy/bluesy/cabaret et plus si affinité
Reply

Marsh Posté le 18-02-2003 à 16:45:21    

bon je me reexplique :  
 
1er requette :  


<? $req = mysql_query("SELECT * FROM $table_3" );  
$res = mysql_numrows($req);  
   
$i=0;            
WHILE($res!=$i)  
    {
   $arbo_Art_temp = mysql_result($req,$i,"arbo_Art" );
   $titre = mysql_result($req,$i,"titre_Art" );
?>


tableau en html :
1er enregistrement : |<? echo "$arbo_Art"; ?>|<? echo "$titre"; ?>|
2nd enregistrement : |<? echo "$arbo_Art"; ?>|<? echo "$titre"; ?>|
etc...

<? $i++;  
  }
mysql_close();  ?>


 
Vous avez remarqué que j'affiche dans mon tableau la variable $arbo_Art et non $arbo_Art_temp car $arbo_Art serais le resultat d'une requette sql où je demanderais les enregistrements où le champ id serais = a $arbo_Art_temp.

Reply

Marsh Posté le 18-02-2003 à 16:47:15    

tomlameche a écrit :


Pis tu devrai peut être arréter de poster toute les 10 minutes un message du type "Ca marche po" !  
T'imagine un peu si tout ceux qui apprennent se mettent à faire comme toi ? On apprend pas en pausant une question toutes les 10 minutes, faut mettre un peu la main à la pate ... :pfff:  


 
excuse mais ca fait deja 2 jours que je me prend la tete dessus et ct plutot a titre humouristique.
 
Enfin dsl .

Reply

Marsh Posté le 19-02-2003 à 12:29:50    

Bonjour, je recapitule mon probleme :
 
1er requette mysql :  
<?
$req = mysql_query("SELECT * FROM $table_3" );  
$res = mysql_numrows($req);  
 
$i=0;  
WHILE($res!=$i)  
{
$id = mysql_result($req,$i,"id_Art" );
$titre = mysql_result($req,$i,"titre_Art" );  
$arbo_Art_temp = mysql_result($req,$i,"arbo_Art" ); ?>
<tr>
<td><? echo "$id"; ?></td>
<td>><? echo "$titre"; ?>td>
<td>><? echo "$arbo_Art"; ?></td>
</tr>
</table>
 
<? $i++;  
}
mysql_close(); ?>
 
Vous avez remarqué que la variable de la 3eme colonne est $arbo_Art et non $arbo_Art_temp comme dans ma premiere requette mysql car je veux envoyer une 2nd requette mysql qui serais :  
 
$req2 = mysql_query("SELECT titre FROM $table WHERE id='$arbo_Art_temp'" );  
$arbo_Art = mysql_result($req2,$i,"titre" );
 
et je voudrai donc que le resultat de la 2nd requette $arbo_Art se mette dans le tableau generé par une boucle de la requette 1.
 
Et là vraiment je suis au dela de mes compétences...  
 
voila ou j'en suis en incluent dans ma requette 1 une jointure :  
 

$req = mysql_query("SELECT *,$table.titre FROM $table_3,$table WHERE $table_3.id=$table.arbo_Art" );


 
Merci d'avance.

Reply

Marsh Posté le 19-02-2003 à 13:08:10    


ta jointure est pas bonne, tu contredis ton :
FROM $table WHERE id='$arbo_Art_temp'
 
ca serait plutot ca, avec le schema des tables, ca serait qd meme plus facile plutot que de le deviner via le code.
 

Code :
  1. $req = mysql_query("SELECT $table_3.id_art,$table_3.titre_art,$table.titre FROM $table_3,$table WHERE $table_3.arbo_art=$table.id" );


 
 
 
plutot que

Code :
  1. $res = mysql_numrows($req); 
  2. $i=0; 
  3. WHILE($res!=$i) 
  4. {
  5. $id = mysql_result($req,$i,"id_Art" );
  6. $titre = mysql_result($req,$i,"titre_Art" ); 
  7. $arbo_Art_temp = mysql_result($req,$i,"arbo_Art" );


 
utilise plutot un  

Code :
  1. while ($res = mysql_fetch_array($req))
  2. {
  3. $id = $res["id"];
  4. ...
  5. }

Reply

Marsh Posté le 19-02-2003 à 14:19:45    

Merci ca marche c cool vraiment merci ;)  :love:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed