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 :

Afficher résultat d'une requete


Sujet :

PHP & Base de données

  1. #1
    Membre régulier Avatar de bilou95
    Inscrit en
    Septembre 2006
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 433
    Points : 117
    Points
    117
    Par défaut Afficher résultat d'une requete
    Je souhaiterai afficher un champ du résultat de mon requete en sélectionnant le dernier enregistrement de ma table


    Code : 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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    <?php
    //Connexion à la base de données
    $db = mysql_connect($cnxhost, $cnxuser, $cnxpass) or die ("Erreur de connexion");
    
    $sql = $_SESSION['USER_NOM'];
    
    $ip = $_SERVER['REMOTE_ADDR'];
    $dat = date("y/m/d");
    $date = date("y/m/d G.i:s", time());
    $nb_connectes = $sql;
    $recupip = $ip;
    $recupdate = $date;
      
    $sql1 = "SELECT * FROM connectes WHERE user_nom='$sql' ORDER BY Date ASC";	
    $query = mysql_query($sql1) or die(mysql_error());
    $nb_row = @mysql_num_rows($query);
    
    
    $row = @mysql_fetch_assoc($query);
     
    if (mysql_num_rows($query) == 0) 
    {	   
    				   $sql2 = "INSERT INTO connectes (user_nom,DateConnect,Date,nbre_fois,Ip) VALUES ('$nb_connectes','$recupdate','$dat',nbre_fois+1,'$recupip')";
    				   $query1 = mysql_query($sql2) or die(mysql_error()); 
    }				
    $fg=mysql_num_rows($query);
    				echo $fg; 
    				   if (mysql_num_rows($query) >= 1)  
    				   { 		
    				   	   	  				@mysql_data_seek($query, $nb_row - 0);
    											
    										if (mysql_num_rows($query) == $dat) 	  
    				     						{										
    				   						$sql3 = "UPDATE connectes SET DateConnect='$date',nbre_fois=nbre_fois+1 WHERE user_nom='$sql'";
    	 			   						$query2 = mysql_query($sql3) or die(mysql_error()); 
    										 	}
    											   	 else
    												 	 {
    													  $sql4 = "INSERT INTO connectes (user_nom,DateConnect,Date,nbre_fois,Ip) VALUES ('$nb_connectes','$recupdate','$dat',nbre_fois+1,'$recupip')";
    				   									  $query3 = mysql_query($sql4) or die(mysql_error());
    													 }	 	  
    				   	}		 
    mysql_close($db);
    ?>

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Hummm j'ai pas trop compris ce que tu veux faire. Mais si c'est bien ce que je pense tu as la réponse ici : Comment se positionner sur le dernier enregistrement d'une requête Select ?

  3. #3
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Oui,
    ou ORDER BY date DESC et lire le premier enregistrement .

  4. #4
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 890
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 890
    Points : 16 337
    Points
    16 337
    Par défaut
    Je rajouterai par rapport au post de N1bus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORDER BY Date DESC LIMIT 0,1

  5. #5
    Membre régulier Avatar de bilou95
    Inscrit en
    Septembre 2006
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 433
    Points : 117
    Points
    117
    Par défaut
    En fait c'est si il y a au moins 1 enregistrement dans la table, il faut se positionner sur le dernier enregistrement et vérifier si la valeur du champ "Date" est différent ou égale a la date du jour (variable '$dat'). Si différent, on fait un INSERT et sinon une mise a jour.

    Le probleme c'est qu'il ne me fait que des INSERT ... j'ai l'impression qu'il ne rentre pas dans la seconde condition 'IF' ...

    Pouvez vous m'aider a résoudre ce probleme ...

    J'ai essayé ca ! mais ca ne marche toujours pas !!!!! !!!!! !!!!!

    Code : 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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    <?php
    //Connexion à la base de données
    $db = mysql_connect($cnxhost, $cnxuser, $cnxpass) or die ("Erreur de connexion");
     
    $sql = $_SESSION['USER_NOM'];
     
    $ip = $_SERVER['REMOTE_ADDR'];
    $dat = date("y/m/d");
    $date = date("y/m/d G.i:s", time());
    $nb_connectes = $sql;
    $recupip = $ip;
    $recupdate = $date;
     
    $sql1 = "SELECT * FROM connectes WHERE user_nom='$sql'";	
    $query = mysql_query($sql1) or die(mysql_error());
     
    $sql2 = "SELECT * FROM connectes WHERE user_nom='$sql' ORDER BY Date DESC LIMIT 0,1";
    $query4 = mysql_query($sql1) or die(mysql_error());
    $nb_row = mysql_num_rows($query4);
     
     
    if (mysql_num_rows($query) == 0) 
    {	   
    				   $sql2 = "INSERT INTO connectes (user_nom,DateConnect,Date,nbre_fois,Ip) VALUES ('$nb_connectes','$recupdate','$dat',nbre_fois+1,'$recupip')";
    				   $query1 = mysql_query($sql2) or die(mysql_error()); 
    }
     
    				if (mysql_num_rows($query) != 0)  
    				   {
    				   	   	  			if (mysql_num_rows($query4) != $dat) 	  
    				     						{
    											 $sql4 = "INSERT INTO connectes (user_nom,DateConnect,Date,nbre_fois,Ip) VALUES ('$nb_connectes','$recupdate','$dat',nbre_fois+1,'$recupip')";
    				   							$query3 = mysql_query($sql4) or die(mysql_error());	
     
     
    										 	}
    											   	 else
    												 {
    									$sql3 = "UPDATE connectes SET DateConnect='$date',nbre_fois=nbre_fois+1 WHERE user_nom='$sql'";
    	 			   						$query2 = mysql_query($sql3) or die(mysql_error());
    												 }	 	  
    				   	}		 
    mysql_close($db);
    ?>

  6. #6
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Déjà tu as des erreurs. Regarde ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (mysql_num_rows($query4) != $dat)
    Tu trouves pas qu'il y a quelque chose de pas normal ?? Tu compares une date (chaine) à un entier

    De plus à quoi te sert de faire $dat et $date ?

    Sinon ton insert il serait bien de préciser lequel qui se fait tout le temps

  7. #7
    Membre régulier Avatar de bilou95
    Inscrit en
    Septembre 2006
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 433
    Points : 117
    Points
    117
    Par défaut
    $date me genere la date du jour et l'heure donc pas facile de faire une comparaison avec ca ... c'est pour cela que j'ai recrée une variable $dat qui va chercher la date du jour ...

    Mais comment ca ? dés que la combinaison $dat=date(y/m/d) est générée ... quelle résultat donne t-elle ?

    Comment dois je procéder ?

    Je susi totalement perdu ... je me sens ridicule ...

  8. #8
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    $date tu l'utilises jamais

    Ton champ Date dans la BDD est de quel format ?

    et petit rappel mysql_num_rows renvoie un entier alors que date renvoie la date du jour (16/10/2006)

  9. #9
    Membre régulier Avatar de bilou95
    Inscrit en
    Septembre 2006
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 433
    Points : 117
    Points
    117
    Par défaut
    variable $date = DateTime
    variable $dat = Date

    Effectivement pour mysql_num_rows renvoie un entier ... oups ... mysql_fetch_array pourrait fonctionner a ton avis ?

  10. #10
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    mysql_num_rows renvoit le nombre d'enregistrements de ta requête pas le résulat du champ Date.
    ---------
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (mysql_result($query4, 0, "tonchampdate") != $dat) {
    ton code
    };
    Si dans ta base, le champ "tonchampdate" est au format 0000-00-00 (Y-m-d)
    il faut que ta variable $dat soit au meme format si tu veux les comparer

  11. #11
    Membre régulier Avatar de bilou95
    Inscrit en
    Septembre 2006
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 433
    Points : 117
    Points
    117
    Par défaut
    Pourtant tout me parait logique .. Mais il ne parvient pas a me mettre a jour le champ désiré ... A chaque connexion il m'incrémente le champ meme si la date est identique (Logiquement il devrait me mettre a jour le champ si la date ($dat) est identique ...

    J'en px plus ce code !!!! argf grgrgrgrgrrg

    Stupide je dois etre !

    Code : 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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <?php
    //Connexion à la base de données
    $db = mysql_connect($cnxhost, $cnxuser, $cnxpass) or die ("Erreur de connexion");
     
    $sql = $_SESSION['USER_NOM'];
     
    $ip = $_SERVER['REMOTE_ADDR'];
    $dat = date("y/m/d");
    $date = date("y/m/d G.i:s", time());
    $nb_connectes = $sql;
    $recupip = $ip;
    $recupdate = $date;
     
    $sql1 = "SELECT * FROM connectes WHERE user_nom='$sql' ORDER BY Date DESC LIMIT 1";	
    $query = mysql_query($sql1) or die(mysql_error());
     
    if (mysql_num_rows($query) == 0) 
    {	   
    				   $sql2 = "INSERT INTO connectes (user_nom,DateConnect,Date,nbre_fois,Ip) VALUES ('$nb_connectes','$recupdate','$dat',nbre_fois+1,'$recupip')";
    				   $query1 = mysql_query($sql2) or die(mysql_error()); 
    }
     
    				if (mysql_num_rows($query) >= 1)  
    				   {  
     
    				   	   	  			if (mysql_result($query, 0,"Date") == $dat) 	  
    				     						{
     
    											$sql3 = "UPDATE connectes SET DateConnect='$date', nbre_fois+1 WHERE user_nom='$sql'";
    	 			   								 $query2 = mysql_query($sql3) or die(mysql_error());
     
    										 	}
    											   	 else
    												 {
    												 $sql4 = "INSERT INTO connectes (user_nom,DateConnect,Date,nbre_fois,Ip) VALUES ('$nb_connectes','$recupdate','$dat',nbre_fois+1,'$recupip')";
    				   							$query3 = mysql_query($sql4) or die(mysql_error());
     
    												 }	 	  
    				   	}		 
    mysql_close($db);
    ?>

  12. #12
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    ton champ Date de ta table est au format Y/m/d ?

  13. #13
    Membre régulier Avatar de bilou95
    Inscrit en
    Septembre 2006
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 433
    Points : 117
    Points
    117
    Par défaut
    Voici la structure de ma table

    Nom : str-table-connectes.JPG
Affichages : 74
Taille : 39,6 Ko

    Merci

  14. #14
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Déjà tu as une erreur de format tes dates sont au format : YYYY-MM-DD et toi tu demandes à date() de te les mettre au format DD-MM-YYYY

  15. #15
    Membre régulier Avatar de bilou95
    Inscrit en
    Septembre 2006
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 433
    Points : 117
    Points
    117
    Par défaut
    De toute facon je ne fais aucune comparaison avec la variable $date ... je n'utilise que $dat qui genere une date au format anglais ...

    Crois tu que ca vient de la ?

  16. #16
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Oui car c'est toujours pas le bon format.

    y/m/d n'est pas la même chose que y-m-d

    Même chose pour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $date = date("y/m/d G.i:s", time());

  17. #17
    Membre régulier Avatar de bilou95
    Inscrit en
    Septembre 2006
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 433
    Points : 117
    Points
    117
    Par défaut
    Pourtant si je veux modifier le champ 'défaut' de ma structure de champ 'Date' en mettant 0000/00/00 ... Il me le remet en 0000-00-00

    Galere ! Galere ...

    I'm sorry je suis chiant ... Dites le moi !

  18. #18
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Crois tu que ca vient de la ? :
    oui,

    ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (mysql_result($query, 0,"Date") == $dat)
    indique que tu compare une date "Y-m-d" (année : 4 chiffres + TIRET + mois : 2 chiffres + TIRET + jour : 2chiffres) à une date y/m/d (année : 2 chiffres + SLASHE + mois : 2 chiffres + SLASHE + jour : 2 chiffres)la variable $dat

    Tu ne trouveras jamais une date qui correspond.

    Déclares ta variable comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $dat = date("Y-m-d");  // ce qui correspond au format de ton champ Date
    là la condition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (mysql_result($query4, 0, "tonchampdate") != $dat) {
    ton code
    };
    fonctionnera

  19. #19
    Membre régulier Avatar de bilou95
    Inscrit en
    Septembre 2006
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 433
    Points : 117
    Points
    117
    Par défaut
    Je dois etre idiot ...

    Ca ne fonctionne pas ... Tout en ayant modifer le format de la date au niveau Php pour que cela soit identique au format du champ "Date" dans ma table SQL ...

    Bon bah bonne soirée ...

    Et Mercii pour ton aide ... je lache l'affaire !

  20. #20
    Membre régulier Avatar de bilou95
    Inscrit en
    Septembre 2006
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 433
    Points : 117
    Points
    117
    Par défaut
    Personne veux s'occuper de moi ?

    Sniffffffff


Discussions similaires

  1. [MySQL] afficher résultat d'une requete
    Par naazih dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 26/05/2008, 17h31
  2. Réponses: 3
    Dernier message: 25/11/2005, 14h51
  3. [QReport] Afficher le résultat d'une requete
    Par PFX dans le forum C++Builder
    Réponses: 2
    Dernier message: 31/05/2005, 14h38
  4. résultat d'une requete affiché par mois
    Par zorely dans le forum Langage SQL
    Réponses: 7
    Dernier message: 03/05/2004, 07h18

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