Accueil > Forum > > > > Deux while en alternance dans un while
Deux while en alternance dans un while
mercredi 6 mai 2009 à 10:41:33 |
Deux while en alternance dans un while

xxiv
|
xxiv Bonjour à tous, Voilà le code qui suit, permet d'afficher des outils pédagogiques venant de deux banques de données. Ce que j'aimerais c'est que le résultat de l'une puis de l'autre s'affiche et ainsi de suite jusqu'à ce qu'il n'y ai plus de résultat à afficher. Pour le moment il affiche bien tout les résultat mais d'une banque de donnée puis tout ceux de l'autre, sans alternance. Si vous pouviez me donner un petit coup de pouce, sans pour autant donner une réponse complète, vous me seriez d'une grande aide. Merci d'avance $number = $number_enviro + $number_rid; echo "<b>$number</b> outils péda ont été trouvé. <b>$number_rid</b> sur RID et <b>$number_enviro</b> sur ENVIRO "; echo "<dl class='table_results'>"; $r=0; $e=0; while ( $r+$e < $number ) {
//Affichage Outils FROM Rid while ( $voir = mysql_fetch_array($sql_rid_result)) { $id_rid = $voir[0]; $titre_rid = $voir[1]; echo "<dt> <a href='../media/media_display.php?&media_id=$id_rid'>$titre_rid</a> </dt> <dd> <div class='tools_bar'></div> <span class='list_descr_title'>Auteurs : FROM RID</span> <span class='enum_results'></span><br/> <span class='list_descr_title'>Type de support : </span> <span class='enum_results'></span><br/> <span class='list_descr_title'>Approche: </span> <span class='enum_results'></span> <br/><span class='list_descr_title'>Thèmes : </span> <span class='enum_results'></span><br/> <span class='list_descr_title'>Publics : </span> <span class='enum_results'></span> </dd>"; $r++; } //Affichage outils FROM ENVIRO while ( $voir2 = mysql_fetch_array($sql_enviro_result) ) { $id_enviro = $voir2[0]; $titre_enviro = $voir2[1]; echo "<dt> <a href='../media/media_display.php?&media_id=$id_enviro'>$titre_enviro</a> </dt> <dd> <div class='tools_bar'></div> <span class='list_descr_title'>Auteurs : FROM Enviro</span> <span class='enum_results'></span><br/> <span class='list_descr_title'>Type de support : </span> <span class='enum_results'></span><br/> <span class='list_descr_title'>Approche: </span> <span class='enum_results'></span> <br/><span class='list_descr_title'>Thèmes : </span> <span class='enum_results'></span><br/> <span class='list_descr_title'>Publics : </span> <span class='enum_results'></span> </dd>"; $e++; } }; echo "</dl>";ps: je suis là si il vous manque des informations pour répondre.
|
|
mercredi 6 mai 2009 à 10:46:32 |
Re : Deux while en alternance dans un while

faiblard
|
Bonjour,
Tu ne fais pas l'affichage de suite dans le while. Tu récupères les données, tu les tries et range dans un seul tableau et tu affiches après. ------------------------------------------------------------------- La recherche est ton amie ! Promis elle ne te mordra pas... Enjoy N'oubliez pas d'accepter pour aidez les autres quand ils cherchent !
|
|
mercredi 6 mai 2009 à 10:59:41 |
Re : Deux while en alternance dans un while

kohntark
|
Salut,
On ne voit pas l'intégralité de tes requêtes, mais pourquoi ne pas les grouper en 1 seule ? Du style : SELECT ENVIRO.outils, Rid.outil FROM ENVIRO, Rid
Tu pourrais ainsi parvenir à tes fins avec 1 seule boucle while
Cordialement,
Kohntark -
|
|
mercredi 6 mai 2009 à 11:14:52 |
Re : Deux while en alternance dans un while

xxiv
|
//For Faiblard Je ne maitrise pas vraiment les array, mais petite question si je met tout dans un tableau et que je le re sort par après dans le while. Si je fais un echo venant de la Base1 et de la Base2, que va t'il se passer si il n'y a pas le même nombre de résultats venant de l'une et de l'autre? La boucle va s'arrêter? Ou je vais avoir des résultats avec les variables vide?
echo "<dt> <a href='../media/media_affiche.php?&media_id=$id_rid'>$titre_rid</a> </dt> <dd> <div class='tools_bar'></div> <span class='list_descr_title'>Auteurs : FROM RID</span> <span class='enum_results'></span><br/> <span class='list_descr_title'>Type de support : </span> <span class='enum_results'></span><br/> <span class='list_descr_title'>Approche: </span> <span class='enum_results'></span> <br/><span class='list_descr_title'>Thèmes : </span> <span class='enum_results'></span><br/> <span class='list_descr_title'>Publics : </span> <span class='enum_results'></span> </dd> <dt> <a href='../media/media_display.php?&media_id=$id_enviro'>$titre_enviro</a> </dt> <dd> <div class='tools_bar'></div> <span class='list_descr_title'>Auteurs : FROM Enviro</span> <span class='enum_results'></span><br/> <span class='list_descr_title'>Type de support : </span> <span class='enum_results'></span><br/> <span class='list_descr_title'>Approche: </span> <span class='enum_results'></span> <br/><span class='list_descr_title'>Thèmes : </span> <span class='enum_results'></span><br/> <span class='list_descr_title'>Publics : </span> <span class='enum_results'></span> </dd>";
//For Kohntark voilà la première partie du scripte. Sinon pour tout faire en une je ne vois pas trop comment faire, vu que les deux bases son physiquement distante. Et qu'elle ne sont pas tout à fais identiques au niveau de leur construction?
//Déclaration variables Envirodoc $_SESSION['theme_enviro'] = $t_enviro; $_SESSION['public_enviro'] = $p_enviro; $_SESSION['approche_enviro'] = $ap_enviro; $_SESSION['support_enviro'] = $s_enviro; //Déclaration variables Réseau-idée $_SESSION['theme_rid'] = $t_rid; $_SESSION['public_rid'] = $p_rid; $_SESSION['approche_rid'] = $ap_rid; $_SESSION['support_rid'] = $s_rid; //Déclaration variable commune $_SESSION['keyword'] = $keyword; $_SESSION['ok'] = 1;
//Début du test d'existance des variables pour RID et création de la requête par concaténation// rid_connect(); $sql_rid= 'SELECT DISTINCT m.media_id, m.media_name FROM media AS m '; if (isset($_SESSION['theme_rid'])&&($_SESSION['theme_rid'])!="") { $sql_rid .= ' INNER JOIN media_theme mth ON mth.media_id = m.media_id'; }
if (isset($_SESSION['public_rid'])&&($_SESSION['public_rid'])!="") { $sql_rid .= ' INNER JOIN media_public mpu ON mpu.media_id = m.media_id '; } if (isset($_SESSION['approche_rid'])&&($_SESSION['approche_rid'])!="") { $sql_rid .= ' INNER JOIN media_media_type map ON map.media_id = m.media_id '; } if (isset($_SESSION['support_rid'])&&($_SESSION['support_rid'])!="") { $sql_rid .= ' INNER JOIN media_support msup ON msup.media_id = m.media_id '; }
if (0<1) { $sql_rid .= ' WHERE m.val_state=15728640'; } if (isset($_SESSION['theme_rid'])&&($_SESSION['theme_rid'])!="") { $sql_rid .= ' AND mth.theme_id="'.$_SESSION['theme_rid'].'"'; }
if (isset($_SESSION['titre'])&&($_SESSION['titre'])!="") { $sql_rid .= ' AND m.media_nom LIKE "'.$_SESSION['titre'].'"'; }
if (isset($_SESSION['public_rid'])&&($_SESSION['public_rid'])!="") { $sql_rid .= ' AND mpu.public_id="'.$_SESSION['public_rid'].'"'; } if (isset($_SESSION['approche_rid'])&&($_SESSION['approche_rid'])!="") { $sql_rid .= ' AND map.media_type_id="'.$_SESSION['approche_rid'].'"'; } if (isset($_SESSION['support_rid'])&&($_SESSION['support_rid'])!="") { $sql_rid .= ' AND msup.type_id="'.$_SESSION['support_rid'].'"'; }
if (isset($_SESSION['keyword'])&&($_SESSION['keyword'])!="") { $ar='SELECT DISTINCT keyword_id FROM keyword WHERE keyword_nom_search like "'.$_SESSION['keyword'].'"';
$result_ar = mysql_query($ar);
while ( $voir = mysql_fetch_row($result_ar )){ echo $aIdsr[] = $voir[0]; };
$br="SELECT DISTINCT media_id FROM media_keyword WHERE keyword_id in (".implode(',', $aIdsr).")";
$result_br = mysql_query($br);
while ( $voir = mysql_fetch_row($result_br )){ echo $bIdsr[] = $voir[0]; };
$sql_rid .= " AND media_id in (".implode(',', $bIdsr).")";
}
if (0<1) { $sql_rid .= ' ORDER BY m.media_name'; } //FIN du test d'existance des variables pour RID et création de la requête par concaténation// $sql_rid_result = mysql_query($sql_rid); $number_rid = mysql_num_rows($sql_rid_result);
//Début du test d'existance des variables pour ENVIRO et création de la requête par concaténation//
enviro_connect(); $sql_enviro= 'SELECT DISTINCT m.media_id, m.media_nom FROM media AS m '; if (isset($_SESSION['theme_enviro'])&&($_SESSION['theme_enviro'])!="") { $sql_enviro .= ' INNER JOIN media_theme mth ON mth.media_id = m.media_id'; }
if (isset($_SESSION['public_enviro'])&&($_SESSION['public_enviro'])!="") { $sql_enviro .= ' INNER JOIN media_public mpu ON mpu.media_id = m.media_id '; } if (isset($_SESSION['approche_enviro'])&&($_SESSION['approche_enviro'])!="") { $sql_enviro .= ' INNER JOIN media_media_type map ON map.media_id = m.media_id '; } if (isset($_SESSION['support_enviro'])&&($_SESSION['support_enviro'])!="") { $sql_enviro .= ' INNER JOIN media_support msup ON msup.media_id = m.media_id '; }
if (0<1) { $sql_enviro .= ' WHERE m.val_state=100 AND outil_peda_id =0'; } if (isset($_SESSION['theme_enviro'])&&($_SESSION['theme_enviro'])!="") { $sql_enviro .= ' AND mth.theme_id="'.$_SESSION['theme_enviro'].'"'; }
if (isset($_SESSION['titre'])&&($_SESSION['titre'])!="") { $sql_enviro .= ' AND m.media_nom LIKE "'.$_SESSION['titre'].'"'; }
if (isset($_SESSION['public_enviro'])&&($_SESSION['public_enviro'])!="") { $sql_enviro .= ' AND mpu.public_id="'.$_SESSION['public_enviro'].'"'; } if (isset($_SESSION['approche_enviro'])&&($_SESSION['approche_enviro'])!="") { $sql_enviro .= ' AND map.media_type_id="'.$_SESSION['approche_enviro'].'"'; } if (isset($_SESSION['support_enviro'])&&($_SESSION['support_enviro'])!="") { $sql_enviro .= ' AND msup.type_id="'.$_SESSION['support_enviro'].'"'; }
if (isset($_SESSION['keyword'])&&($_SESSION['keyword'])!="") { $ae='SELECT DISTINCT keyword_id FROM keyword WHERE keyword_nom_search like "'.$_SESSION['keyword'].'"';
$result_ae = mysql_query($ae);
while ( $voir = mysql_fetch_row($result_a )){ echo $aIdse[] = $voir[0]; };
$be="SELECT DISTINCT media_id FROM media_keyword WHERE keyword_id in (".implode(',', $aIdse).")";
$result_be = mysql_query($be);
while ( $voir = mysql_fetch_row($result_be )){ echo $bIdse[] = $voir[0]; } $sql_enviro .= " AND media_id in (".implode(',', $bIdse).")"; }
if (0<1) { $sql_enviro .= ' ORDER BY m.media_nom'; } //FIN du test d'existance des variables pour ENVIRO et création de la requête par concaténation// $sql_enviro_result = mysql_query($sql_enviro); $number_enviro = mysql_num_rows($sql_enviro_result);
|
|
mercredi 6 mai 2009 à 11:55:55 |
Re : Deux while en alternance dans un while

faiblard
|
Tu n'es pas habitué au tableau... commence donc a approfondir t'es connaissances dessus car c'est une chose indispensable...
Le plus simple :
while n° 1 ( ...) { //tu stock dans un premier tableau }
puis
while n° 2 ( ...) { //tu stock dans un second tableau }
ensuit tu fait un for pour remplir un troisieme tableau avec tes deux premier...
et tu d'aide de phpnet pour les fonctions à utiliser http://fr3.php.net/manual/fr/ref.array.php ------------------------------------------------------------------- La recherche est ton amie ! Promis elle ne te mordra pas... Enjoy N'oubliez pas d'accepter pour aidez les autres quand ils cherchent !
|
|
mercredi 6 mai 2009 à 12:12:33 |
Re : Deux while en alternance dans un while

kohntark
|
Je n'ai pas pris le temps de décrypter des masses le code  Puisqu'il s'agit de 2 bases distantes il faut oublier ma proposition. L'idéal serait de ne faire qu'un seul tableau multidimensionnel basé sur un index commun aux deux résultats. $res = array( [db1]=> array([resultat1]=>array([0]=>'jbkj'), [resultat2]=>array([0]=>'jbkb'), etc ...), [db2]=> array([resultat1]=>array([0]=>'jaa'), [resultat2]=>array([0]=>'arb', [1]=>'po'), etc ...) ); Un simple foreach fera l'affaire pour l'affichage. Quel est l'élément commun aux 2 bases ? J'adore ton if(0<1) il sert à quoi au juste si ce n'est à rien ?  Cordialement, Kohntark -
|
|
mercredi 6 mai 2009 à 15:19:31 |
Re : Deux while en alternance dans un while

xxiv
|
ok merci
le if(0<1) c'est juste pour que order by et le where s'affiche toujours même si tout les champs du formulaire reste vide.
sinon l'élément commun c'est le media_id et media_nom. La table media est quasiment identique d'une base à l'autre au niveau des champs, il y en a un ou deux qui change. Mais les données sont différentes. Il peut y a avoir des id commun au deux tables sans qu'il ne parle du même sujet.
Sinon connais tu un bon site où l'on traitre du tableau multidimensionnel basé sur un index commun?
Encore merci
XxIv
|
|
vendredi 8 mai 2009 à 11:35:42 |
Re : Deux while en alternance dans un while

xxiv
|
Je n'arrive pas à comprendre la structure. j'ai un message d'erreur
Parse error: syntax error, unexpected '[', expecting ')'
$result = array( [rid]=>array([ID]=>array([0]=>$sql_rid), [titre]=>array([1]=>$sql_rid)), [env]=>array([ID]=>([0]=>$sql_enviro), [titre]=>([1]=>$sql_enviro)) );
Si vous saviez me donner un petit coup de pouce = )
|
|
vendredi 8 mai 2009 à 12:00:13 |
Re : Deux while en alternance dans un while

kohntark
|
Ce que je te donnais n'était pas du code valide mais un affichage du résultat qu'il faudrait obtenir.
Tu devrais commencer par te documenter sur les tableaux en PHP et a bien les assimiler (c'est la base) : http://fr2.php.net/manual/fr/language.types.array.php http://fr2.php.net/manual/fr/book.array.php
Cordialement,
Kohntark -
|
|
Cette discussion est classée dans : while, number, echo, enviro, rid
Répondre à ce message
Sujets en rapport avec ce message
résultat d'un while puis l'autre et on relance la boucle [ par xxiv ]
Bonjour à tous,Voilà le code qui suit, permet d'afficher des outils pédagogiques venant de deux banques de données.Ce que j'aimerais c'est que le résu
Récup infos saisies dans un while [ par Khenat375 ]
Bonjour, débutant en php, j'aurais voulu savoir comment récupérer des infos saisies par l'utilisateur, cette saisie se faisant dans des input générés
requête insert dans une boucle while [ par adnanedelphi ]
bonsoir j'ai créé une requete d'insertion dans une boucle while : le code: [code=php] prepare("select * from eleve where n_class = ?"); // une
enlever un while [ par spiesalex ]
Salut tous le monde, include('connect.php'); $reponse = mysql_query("SELECT * FROM tribunat ORDER BY ID DESC LIMIT 0,70"); while ($donnees = mysql_f
Problème de while ne fonctionnant pas [ par tony1239456 ]
Bonjour j'ai un problème avec ma fonction while qui devrait m'afficher un résultat sous forme d'un tableau. Voici mon code :&l
Problème due à une boucle while... [ par nanti ]
Bonjour à tous ! Je panique car je tente de récupérer une variable dans un champ input de type text et je n'y parviens pas... Voici donc mon code pou
Probleme de boucle while (enfin je crois) [ par blackvault ]
Petit problème... ma requête n'affiche qu'un résultat alors qu'il yen a plusieurs dans la base de données... j'ai l'impression que la boucle while s'i
prob de variable avec une boucle do... while [ par jonguignolo ]
salut est ce quequelqu'un peu me dire pk quand $i=5 mon $nume n'est pas pris comme entier????$acqui = 2.225;$b = $acqui*1000;$num = round($b,3)
pagination [ par elodieb ]
bonjour,je souhaite me servir de ce code de bourgi 220 qui me parait tres simple en esayant de l'adapter mais il ya un message d'erreurmerci d'avance
Affichage tableau avec checkbox !!! [ par El_Catalan_Francesco ]
Bonjour a tous, voila j'ai une premiere page qui affiche les données d'une base de donnée sous forme de tableau avec checkbox : include ("connect.inc"
Livres en rapport
|
Derniers Blogs
XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz
Forum
CHAMPS TIMECHAMPS TIME par vargas
Cliquez pour lire la suite par vargas
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|