Probleme de requete sur tableau associatif. (Très complexe)

tdldp Messages postés 2 Date d'inscription lundi 21 février 2005 Statut Membre Dernière intervention 1 mars 2005 - 1 mars 2005 à 21:24
tdldp Messages postés 2 Date d'inscription lundi 21 février 2005 Statut Membre Dernière intervention 1 mars 2005 - 1 mars 2005 à 21:29
Bonsoir à tous,

J'ai un gros soucis de requete sur un tableau associatif :

Le script partiel suivant fonctionne comme il se devrait : Il affiche les données de la table stock et de la table photo recuperé en fonction d'un numero de dossier.
La table photo contient 2 type de données : num_dossier et fichier
dans un cas pratique : le dossier 1010 à 2 fichier photo 1010_1.jpg et 1010_2.jpg

le fonctionnement du script cidessous renvoi donc 2 ligne :
Num fichier | Fichier
1010 | 1010_1.jpg
1010 | 1010_2.jpg

<?php


//on se connecte à la base de donnée


$db = mysql_connect('hote','user','mot de passe') or die ("erreur de connexion");


//on selectionne votre base


mysql_select_db('nom de la base',$db) or die ("erreur de connexion base");

//on controle la recuperation de donnée dans l'url
$num_dossier = $_GET['num_dossier'];
echo ' numero de dossier = ' .$num_dossier. '
';


$rs_d mysql_query("SELECT * FROM stock WHERE num_dossier".$num_dossier." ORDER BY num_dossier ASC") or die ("La consultation de la requête sur 'stock' est impossible");$rs_ph mysql_query("SELECT * FROM photos WHERE num_dossier".$num_dossier." ORDER BY num_dossier ASC") or die ("La consultation de la requête2 sur 'photo' est impossible");


$rs_d_numrows=mysql_num_rows($rs_d);
$rs_ph_numrows=mysql_num_rows($rs_ph);


$qte=mysql_num_fields($rs_ph);/*nombre de champs sélectionnés*/


echo "\";
echo \"----
\";/*couleur grise*/

for ($i=0;$i<$qte;$i++){
echo \" ";
echo mysql_field_name($rs_ph,$i);/*les noms des champs*/
echo " |\";
}

echo \"\";
echo \"----
\";
while ($row = mysql_fetch_array($rs_ph,MYSQL_ASSOC)) {/*array des données*/

foreach ($row as $elem) {/*pour chaque élément...*/
echo \"
$elem

, \";
}
echo \"\";
}
echo "
";

Mon soucis !!!!!!!

Comment puisje recuperer la donnée "fichier" uniquement sans le num de dossier, et dans le cadre d'une boucle, afficher les images en fonction du nombre de photos disponsible par dossier, avec la premiere photo en affichage principal, et les photos suivantes (é à 4 max) en vignette.
Le code ci-dessous est presque bon. Il m'affiche les cadres des images au bonnes dimensions, mais m'affiche partout la meme photo au lieu de prendre successivement chaque photo disponible.



<?php
while ($donnees2 = mysql_fetch_array($rs_ph, MYSQL_ASSOC))
{
foreach($donnees2 as $cle => $element2)
{
if ($rs_ph_numrows <= 1) {
echo 'Boucle 1';
echo '[../../medias/photos/'.$donnees2['fichier'].' ';
echo ']';
}
print_r($donnees2);


if ($rs_ph_numrows <= 1) {
echo 'Boucle 1';
echo '[../../medias/photos/'.$donnees2['fichier'].' ';
echo ']';
}
else {
$h = 20;
$v = 40;
$m = 0;
echo 'boucle 2 :';
echo $m; echo $h; echo $v;
while (($m<($rs_ph_numrows)) AND ($m<4))
{
echo 'boucle 2.1 :';
echo $m; echo $h; echo $v;
if ($m == 0) {
echo 'boucle 2.1.1:';
echo $m; echo $h; echo $v;
echo '[../../medias/photos/'.$donnees2['fichier'].' ';
echo ']';
$h=428;
$v=5;
$m = $m +1;
}
else {
foreach($donnees2 as $truc2 => $element2)
{
echo 'boucle 2.1.2:';
echo $m; echo $h; echo $v;
echo '[../../medias/photos/'.$donnees2['fichier'].' ';
echo ']';
$v=$v+130;
$m = $m +1;
}
}
}
}
}
?>



MERCI A TOUS CEUX QUI POURRONT M'AIDER.

1 réponse

tdldp Messages postés 2 Date d'inscription lundi 21 février 2005 Statut Membre Dernière intervention 1 mars 2005
1 mars 2005 à 21:29
Petite Correction suite erreur de post :

Le script qui me pose soucis est le suivant :


<?php
while ($donnees2 = mysql_fetch_array($rs_ph, MYSQL_ASSOC))
{
foreach($donnees2 as $cle => $element2)
{
if ($rs_ph_numrows <= 1) {
echo 'Boucle 1';
echo '[../../medias/photos/'.$donnees2['fichier'].' ';
echo ']';
}
else {
$h = 20;
$v = 40;
$m = 0;
echo 'boucle 2 :';
echo $m; echo $h; echo $v;
while (($m<($rs_ph_numrows)) AND ($m<4))
{
echo 'boucle 2.1 :';
echo $m; echo $h; echo $v;
if ($m == 0) {
echo 'boucle 2.1.1:';
echo $m; echo $h; echo $v;
echo '[../../medias/photos/'.$donnees2['fichier'].' ';
echo ']';
$h=428;
$v=5;
$m = $m +1;
}
else {
foreach($donnees2 as $truc2 => $element2)
{
echo 'boucle 2.1.2:';
echo $m; echo $h; echo $v;
echo '[../../medias/photos/'.$donnees2['fichier'].' ';
echo ']';
$v=$v+130;
$m = $m +1;
}
}
}
}
}
?>



MERCI A TOUS CEUX QUI POURRONT M'AIDER.
0
Rejoignez-nous