[SQL/PHP] casser le resultat d'une requete en plusieurs part

Forum de développements privés.

Modérateur: Equipe

Règles du forum
A lire impérativement sur notre page : Règlement

[SQL/PHP] casser le resultat d'une requete en plusieurs part

Messagepar gendo » 02 Mar 2004 à 19:12

Code: Tout sélectionner
	$sql_devoirs = "SELECT d.devoir_name, d.devoir_id
	FROM  phpbb_profs as p, phpbb_school_subject as s, phpbb_devoirs as d
	WHERE p.user_id = $this_user_id
	AND s.subject_id = p.subject_id
	AND d.devoir_subject_id = s.subject_id";


Voilà ma requête, inutile de l'expliquer ca serait long et pas utile. En revnache voilà ce qu'ellle me retourne :

Image

Moi je voudaris pouvoir afficher de la sorte:

  • PHP
    • Devoir 1 de php
    • Devoir 2 de php
  • SQL
    • Devoir 1 de SQL
    • Devoir 2 de php

Sachant que ici PHP et SQL (les noms) sont gérés avec le devoir_subject_id de mon tableau (1 pour php et 4 pour SQL).
Je voudrais faire ceci le plus proprement possible, merci :)
|--------------------------------------------------- Image ---------------------------------------------------|
| Utilisateurs d'internet explorer, je vous deteste......... | Une académie virtuelle? c'est par ICI | Mods phpBB |
| phpBBhacks :: base de données de mods | Denturax | Firefox | Vive Google... Et le délire... Et delirax !!!!!! |
+------------------------------------------------------------------------------------------------------------+
Avatar de l’utilisateur
gendo
Posteur habitué
Posteur habitué
 
Messages: 285
Enregistré le: 25 Fév 2004 à 21:30
Localisation: $userdata['user_interests']

Re: [SQL/PHP] casser le resultat d'une requete en plusieurs

Messagepar Dr DLP » 02 Mar 2004 à 20:54

Tu peux ajouter :
Code: Tout sélectionner
ORDER BY p.user_id
Avatar de l’utilisateur
Dr DLP
Floodeur universel
Floodeur universel
 
Messages: 8411
Enregistré le: 05 Mar 2003 à 23:49
Localisation: Var ( 83 )

Messagepar gendo » 02 Mar 2004 à 21:48

Dr J'ai résussit :D Je sais toujours pas comment :)
See :
Code: Tout sélectionner
	$sql_devoirs = "SELECT d.devoir_name, d.devoir_id, s.subject_name
	FROM  phpbb_profs as p, phpbb_school_subject as s, phpbb_devoirs as d
	WHERE p.user_id = $this_user_id
	AND s.subject_id = p.subject_id
	AND d.devoir_subject_id = s.subject_id
	ORDER BY d.devoir_subject_id";
		if ( !($sql_devoirs_result = $db->sql_query($sql_devoirs)) )
		{
			message_die(GENERAL_ERROR, 'Error in obtaining profs info', '', __LINE__, __FILE__, $sql);
		}

		if($db->sql_numrows($sql_devoirs_result) > 0) 
		{
			$template->assign_block_vars('cours', array());
		}
		
	while($sql_devoirs_row = $db->sql_fetchrow($sql_devoirs_result)) 
	{

			if($sql_devoirs_row['subject_name'] != $prev_devoir_name) 
			{
					$template->assign_block_vars('cours.subject', array(
					'TITRE' => $sql_devoirs_row['subject_name'] )
					);

			}
	
				$template->assign_block_vars('cours.subject.titre', array(
					'TITRE' => $sql_devoirs_row['devoir_name'] )
					);
			$prev_devoir_name = $sql_devoirs_row['subject_name'];

	}



Coté tpl :)
Code: Tout sélectionner
<!-- BEGIN cours -->
			<table width="100%" cellpadding="0" cellspacing="0" border="0">
	<!-- BEGIN subject -->		

			<tr>
		<td class="catLeft" colspan="0" align="right">&nbsp;{cours.subject.TITRE}</td>
		<td class="rowpic" colspan="0" align="right">&nbsp;</td>	
			</tr>


			<!-- BEGIN titre -->
			<tr>		
		<td colspan="0" align="right">&nbsp;{cours.subject.titre.TITRE}</td>
		<td colspan="0" align="right">&nbsp;</td>
			</tr>
			<!-- END titre -->
	<!-- END subject -->
			</table>
<!-- END cours -->


Et ca fonctionne :) cool, non? 8)
|--------------------------------------------------- Image ---------------------------------------------------|
| Utilisateurs d'internet explorer, je vous deteste......... | Une académie virtuelle? c'est par ICI | Mods phpBB |
| phpBBhacks :: base de données de mods | Denturax | Firefox | Vive Google... Et le délire... Et delirax !!!!!! |
+------------------------------------------------------------------------------------------------------------+
Avatar de l’utilisateur
gendo
Posteur habitué
Posteur habitué
 
Messages: 285
Enregistré le: 25 Fév 2004 à 21:30
Localisation: $userdata['user_interests']

Messagepar Dr DLP » 02 Mar 2004 à 21:55

Juste un mot , ouch !
Avatar de l’utilisateur
Dr DLP
Floodeur universel
Floodeur universel
 
Messages: 8411
Enregistré le: 05 Mar 2003 à 23:49
Localisation: Var ( 83 )

Messagepar gendo » 03 Mar 2004 à 15:12

Dr DLP a écrit:Juste un mot , ouch !

Sens positif? ou alors j'ai fait un truc complètement barbare :P
|--------------------------------------------------- Image ---------------------------------------------------|
| Utilisateurs d'internet explorer, je vous deteste......... | Une académie virtuelle? c'est par ICI | Mods phpBB |
| phpBBhacks :: base de données de mods | Denturax | Firefox | Vive Google... Et le délire... Et delirax !!!!!! |
+------------------------------------------------------------------------------------------------------------+
Avatar de l’utilisateur
gendo
Posteur habitué
Posteur habitué
 
Messages: 285
Enregistré le: 25 Fév 2004 à 21:30
Localisation: $userdata['user_interests']

Messagepar gendo » 03 Mar 2004 à 16:52

bon, propre ou pas propre ca fonctionne bien :

résultat

Biensûr la liste des devoirs/cours sur la gauche est crée uniquement avec les devoirs postés par l'utilisateur qui utilise la page. Et la liste déroulante des matières contient uniquement les matières dont la personne est responsable :)
Alors Dr? tu vois un peu à quoi tu m'as amené :)
|--------------------------------------------------- Image ---------------------------------------------------|
| Utilisateurs d'internet explorer, je vous deteste......... | Une académie virtuelle? c'est par ICI | Mods phpBB |
| phpBBhacks :: base de données de mods | Denturax | Firefox | Vive Google... Et le délire... Et delirax !!!!!! |
+------------------------------------------------------------------------------------------------------------+
Avatar de l’utilisateur
gendo
Posteur habitué
Posteur habitué
 
Messages: 285
Enregistré le: 25 Fév 2004 à 21:30
Localisation: $userdata['user_interests']

Messagepar Dr DLP » 03 Mar 2004 à 17:13

Ca promet sacrément ton mod :)

Et la liste déroulante des matières contient uniquement les matières dont la personne est responsable

Comment tu as géré ça ?
Avatar de l’utilisateur
Dr DLP
Floodeur universel
Floodeur universel
 
Messages: 8411
Enregistré le: 05 Mar 2003 à 23:49
Localisation: Var ( 83 )

Messagepar gendo » 03 Mar 2004 à 17:27

Avec des requetes barbare :)

Code: Tout sélectionner
	$sql_prof = "SELECT p.subject_id, s.subject_name
	FROM  phpbb_profs as p, phpbb_school_subject as s
	WHERE p.user_id = $this_user_id
	AND s.subject_id = p.subject_id";

		if ( !($pre_result_profs = $db->sql_query($sql_prof)) )
			{
			message_die(GENERAL_ERROR, 'Error in obtaining profs info', '', __LINE__, __FILE__, $sql);
			}
	
		$template->assign_block_vars('defaut', array(
			'TITRE' => $HTTP_POST_VARS['titre']));

		while($result_profs = $db->sql_fetchrow($pre_result_profs)) 
		{
				$template->assign_block_vars('defaut.prof', array(
						'PROF_VALUE' => $result_profs['subject_id'],
						'PROF_NAME' => $result_profs['subject_name'])
						);
		}


En liant les tables, je ne selectionne que les sujets dont l'id du professeur est associée dans la table des profs. Comme cela je n'ai que les sujets dopnt il est responsable.
La suite tu t'en doute, j'ai ma requete, je la décompose, et avec un assign_vars sous forme de bloc associé à une boucle je construit la liste déroulante :)

Code: Tout sélectionner
				<!-- BEGIN prof -->
				 <option value="{defaut.prof.PROF_VALUE}" name="{defaut.prof.PROF_VALUE}">{defaut.prof.PROF_NAME}</option> 
				<!-- END prof -->
|--------------------------------------------------- Image ---------------------------------------------------|
| Utilisateurs d'internet explorer, je vous deteste......... | Une académie virtuelle? c'est par ICI | Mods phpBB |
| phpBBhacks :: base de données de mods | Denturax | Firefox | Vive Google... Et le délire... Et delirax !!!!!! |
+------------------------------------------------------------------------------------------------------------+
Avatar de l’utilisateur
gendo
Posteur habitué
Posteur habitué
 
Messages: 285
Enregistré le: 25 Fév 2004 à 21:30
Localisation: $userdata['user_interests']


Retourner vers Développements privés

 


  • Articles en relation
    Réponses
    Vues
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité