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 :

Ma requête ne retourne qu'un nom si leur valeur sont egal => je veux avoir les 2 noms


Sujet :

PHP & Base de données

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    mai 2005
    Messages
    3 000
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : mai 2005
    Messages : 3 000
    Points : 906
    Points
    906
    Par défaut Ma requête ne retourne qu'un nom si leur valeur sont egal => je veux avoir les 2 noms
    Bonjour,
    Je m'approche du but

    J'ai encore deux petit probleme dont, evidemment, j'ai aucune idée comme les resoudre.

    Je vais essay<er dêtre tres claire:

    J'ai une fonction qui va tourner en boucle et créer a chaque fois une cellule dans laquelle le numero du jour s'affichera (1 à 30 ou 31). (En fait c'est pas une cellule c'est un <li>.

    Jusqu'a la ca marche nikel crome, c'est pouquoi pour simplifeir je vais parler d'une cellule au lieu d'un <li>.

    Voilé, donc dans ma cellule j'ai le jour qui s'affiche. Cette valeur est stockée dans une variable $dates (yyy-mm-dd), je récupere cette valeur et je la passe dans une fonction
    Voici le detail de cette function
    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
     
    $date=$_SESSION['availability_annee'].'-'.$_SESSION['availability_mois'].'-';
    	#CONSIDERONS QUE: $_SESSION['availability_annee']="2007"; 
    	#CONSIDERONS QUE: $_SESSION['availability_mois']="06";
    	function Date_du_jour($date){
    		if(!empty($_SESSION['availability_mois']) AND !empty($_SESSION['availability_annee'])){
    			#Si $dates est plus grand que START mais pas plus grand que END
    			$select_availability = 'SELECT * FROM holiday WHERE "'.$date.'" >= start AND end >= "'.$date.'"';
    			$query_availability = mysql_query($select_availability) or die('Erreur SQL : <br>'.$select_availability.'<br>'.mysql_error());
    			$nb_availability = mysql_num_rows($query_availability); 
    			if ($nb_availability < 1) { 
    				$nb_availability=0;
    			}
     
    			while($result_availability=mysql_fetch_assoc($query_availability)){
    			$array = array(
    				"qui" =>  ucfirst(strtok($result_availability['who'],".")),
    				#"start" => $result_availability['start'],
    				#"end" => $result_availability['end'],
    				"approuved" => $result_availability['statut'],
    				"reason" => $result_availability['reason']
    			);
    			print_r($array['qui']);
    			echo '<br>';
    			return $array['qui'];
     
    			}	
    		}
    	}
    Jusqu'ici ca marche nikel crome sauf que:
    1. LE plus important
    Si dans ma table il y a deux personne dont leur vacance à la meme date, MySQL va ignorer la deuxieme, il retournera uniquement le premier qu'il rencontera. En d'autre mot il ne retourne pas toute les personne dont les date coincide pour le meme jour de congé

    2.
    Dans return array['qui'], comment puis je faire pour qu'il me returne qui, reason, statut


    print_r($array['qui']); returne tout ce que je veux, sauf que si il y a deux personne absente le meme jour, il en return qui une

    Voici un exemple de ma table

    table=holiday
    id + start + end + nom
    +++++++++++++++++++++++++++++++++++
    1 + 2007.06.01 + 2007.06.11 + paolo
    +++++++++++++++++++++++++++++++++++
    2 + 2007.06.10 + 2007.06.11 + pierre

    Si $dates est egal à 2007.06.11, dans mon exemple ci-dessu, il me returna que paolo, alors qu'il devrait afficher paolo et pierre

    Es-ce que j'ai tété claire?

    Mille merci pour vos lumières?
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  2. #2
    Membre confirmé Avatar de papyphp
    Profil pro
    Inscrit en
    avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : avril 2005
    Messages : 438
    Points : 587
    Points
    587
    Par défaut
    Salut,


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    while($result_availability=mysql_fetch_assoc($query_availability)){
    			$array = array (...(
    Dans ta boucle, tu écrases $array à chaque itération
    Essaye ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    while($result_availability=mysql_fetch_assoc($query_availability)){
    			$array[] = array (...(
    Lu kinze d' awousse, la Vierje arandje û dusbrôle lu timp.

  3. #3
    Débutant  
    Profil pro
    Inscrit en
    mai 2005
    Messages
    3 000
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : mai 2005
    Messages : 3 000
    Points : 906
    Points
    906
    Par défaut
    Ben c'est idem, il me montre pas que pierre est absent le 10 et 11. Il n'indique que Paolo.

    Et comment je peux retourner qui, reason et staut?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    			while($result_availability=mysql_fetch_assoc($query_availability)){
    			$array[] = array(
    				"qui" =>  ucfirst(strtok($result_availability['who'],".")),
    				#"start" => $result_availability['start'],
    				#"end" => $result_availability['end'],
    				"approuved" => $result_availability['statut'],
    				"reason" => $result_availability['reason']
    			);
    			print_r($array);
    			echo '<br>';
    			return $array;
    Mais es-ce que je fais bien d'utiliser un array?

    Encore merci
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  4. #4
    Membre confirmé Avatar de papyphp
    Profil pro
    Inscrit en
    avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : avril 2005
    Messages : 438
    Points : 587
    Points
    587
    Par défaut
    A première vue, le return se trouve dans la boucle while

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    while($result_availability=mysql_fetch_assoc($query_availability)){
    			$array[] = array(
    				"qui" =>  ucfirst(strtok($result_availability['who'],".")),
    				#"start" => $result_availability['start'],
    				#"end" => $result_availability['end'],
    				"approuved" => $result_availability['statut'],
    				"reason" => $result_availability['reason']
    			);
                            }
    			print_r($array);
    			echo '<br>';
    			return $array;
    Lu kinze d' awousse, la Vierje arandje û dusbrôle lu timp.

Discussions similaires

  1. [MySQL-5.6] Requête imbriquée retournant le nom d'une table pour FROM
    Par henrif dans le forum Requêtes
    Réponses: 2
    Dernier message: 14/04/2015, 17h34
  2. Requête qui retourne la somme totale de durées
    Par fayred dans le forum Requêtes
    Réponses: 3
    Dernier message: 04/01/2008, 17h21
  3. Ma requête ne retourne rien!
    Par nounowa dans le forum JDBC
    Réponses: 6
    Dernier message: 12/07/2007, 17h17
  4. [MySQL] Savoir si la requête ne retourne aucun résultat
    Par mickado dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 06/04/2007, 10h37
  5. Réponses: 17
    Dernier message: 08/07/2005, 19h53

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