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 :

D'après vous ce code est correct ? [MySQL]


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 D'après vous ce code est correct ?
    Pour ma part, le code fonctionne au début mais plante au fur et a mesure du code ...

    Afficher simplement la derniere visite de l'utilisateur.


    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
    45
    46
    47
    48
    //Fichier de configuration
    require ("cnx/login_sql.php");
    require ("cnx/login_sql.php");
    //Connexion à la base de données
    $db = mysql_connect($cnxhost, $cnxuser, $cnxpass) or die ("Erreur de connexion");
     
    //Connexion à la table Users
    mysql_select_db($cnxbase,$db);
     
    $date = date("d-m-Y");
     
    $user=$_SESSION['USER_NOM'];
     
    echo '<br>';
    //Affichage Dernière visite de l'utilisateur
     
    $d_conn = "SELECT user_nom, DateConnect FROM connectes WHERE user_nom='".$user."'";
    $req_d_conn = mysql_query ($d_conn) or die ('Erreur SQL !<br>'.mysql_error());
     
    echo '<center>
     
    <table width="90%" bgcolor="#CFA8AF" cellpadding="0" cellspacing="0" border="0">	
    <tr>
    	<td align="center"><center><font size="1" color="#FFFFFF">Bienvenue <strong>'.$_SESSION['USER_PRENOM'].'</strong></font></center></td>
    </tr>';
    // On se positionne sur le 2e enregistrement
    mysql_data_seek($req_d_conn, 1);
     
    while($data=mysql_fetch_assoc($req_d_conn))
    {
    echo '<tr><td align="center"><center><font size="1" color="#FFFFFF">Derniere visite : <strong>'.$data['DateConnect'].'</strong></font></center></td>'; 
    break;
    }
    	'
    </tr>
     
    <tr>	
    	<td align="center"><a href="?numlien=logoff"><font color="#CD6767" size="1">Logout</font></a></td>
    </tr>
     
    </table>';
     
    echo '<br>';
     
    echo '<tr>
          <center><font size="1" color="#FFFFFF"><strong>'.$date.'</center></font></strong>
          </tr>';
    ?>

  2. #2
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    euh après ton while t'as tout un morceau qui devrait être dans un echo je pense
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  3. #3
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    tu peux faire tout ton code juste avec une requete bien faite du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete=SELECT user_nom, DateConnect FROM connectes WHERE user_nom='".$user."' order by DateConnect DESC Limit 0,1"
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  4. #4
    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
    Le probleme c'est que la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_data_seek($req_d_conn, 1);
    fait bien pointer le curseur a partir de la 2e ligne ... mais dépassé 2 lignes, la boucle WHILE ne fait pas son effet ... il me retourne a chaque fois la 2e ligne de la 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
    45
    46
    47
    48
    49
    50
    <?
    //Fichier de configuration
    require ("cnx/login_sql.php");
    require ("cnx/login_sql.php");
    //Connexion à la base de données
    $db = mysql_connect($cnxhost, $cnxuser, $cnxpass) or die ("Erreur de connexion");
     
    //Connexion à la table Users
    mysql_select_db($cnxbase,$db);
     
    $date = date("d-m-Y");
     
    $user=$_SESSION['USER_NOM'];
     
    echo '<br>';
    //Affichage Dernière visite de l'utilisateur
     
    $d_conn = "SELECT user_nom, DateConnect FROM connectes WHERE user_nom='".$user."' order by id";
    $req_d_conn = mysql_query ($d_conn) or die ('Erreur SQL !<br>'.mysql_error());
     
    echo '<center>
    
    <table width="90%" bgcolor="#CFA8AF" cellpadding="0" cellspacing="0" border="0">	
    <tr>
    	<td align="center"><center><font size="1" color="#FFFFFF">Bienvenue <strong>'.$_SESSION['USER_PRENOM'].'</strong></font></center></td>
    </tr>';
    // On se positionne sur le 2e enregistrement
     
    mysql_data_seek($req_d_conn, 1);
     
    while($data=mysql_fetch_assoc($req_d_conn))
    {
    echo '<tr><td align="center"><center><font size="1" color="#FFFFFF">Derniere visite : <strong>'.$data['DateConnect'].'</strong></font></center></td>';
    break;
    }
    	echo'
    </tr>
    
    <tr>	
    	<td align="center"><a href="?numlien=logoff"><font color="#CD6767" size="1">Logout</font></a></td>
    </tr>
    
    </table>';
     
    echo '<br>';
     
    echo '<tr>
          <center><font size="1" color="#FFFFFF"><strong>'.$date.'</center></font></strong>
          </tr>';
    ?>

  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
    Peut etre le à la fin de la boucle WHILE ??? qui empeche de continuer dans son analyse de la table ?

    Je présume non ?

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Points : 716
    Points
    716
    Par défaut
    Tout à fait break force la sortie de la boucle, tu ne passes donc pas plus d'une fois par le while ^^
    Tout pas mieux que tout le monde : évitez les questions techniques en mp sinon à quoi bon poster sur un forum ?

    Petite citation : "Le sage cherche la vérité, l'imbécile l'a déjà trouvée"

  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
    shit ... Obligé de passer par une boucle IF dans la boucle WHILE pour des conditions ...

    Si champs_table est identique a $_SESSION['USER_NOM']
    alors
    afficher résultat
    sinon
    rien

    ?????????

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Points : 716
    Points
    716
    Par défaut
    ?????????????
    Une condition dans la requete ne suffirait pas ???
    Tout pas mieux que tout le monde : évitez les questions techniques en mp sinon à quoi bon poster sur un forum ?

    Petite citation : "Le sage cherche la vérité, l'imbécile l'a déjà trouvée"

  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
    Wouah ... ca me dépasse là !

    Déja que je suis une quiche de quiche (je débute ) ...

    je vais réfléchir ...

  10. #10
    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 plante ... j'en ai aucune idée ...

    je lache l'affaire ... argffffffff

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Points : 716
    Points
    716
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $d_conn = "SELECT user_nom, DateConnect FROM connectes WHERE user_nom='".$user."' order by id";
    Cette requete te ramène déjà seulement les enregistrements correspondants à ton user, pourquoi créer une condition supplémentaire ?
    Tout pas mieux que tout le monde : évitez les questions techniques en mp sinon à quoi bon poster sur un forum ?

    Petite citation : "Le sage cherche la vérité, l'imbécile l'a déjà trouvée"

  12. #12
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Lol je comprends plus rien de ce que tu veux faire.

    Bilou je te l'ai déjà dit dans un autre topic tu te prends trop la tête en te focalisant sur les "soucis" de langage PHP alors que c'est un gros problème de logique que tu as, alors prend un peu de recul réfléchis à la logique de ce que tu veux faire, pense à l'algo pour faire ça et après tu codes en PHP (mais avec les fonctions que tu as déjà utilisé tu devrais t'en sortir), mais surtout réfléchis et comprends la logique du code que tu écris (si je fais ça keskispass, et est-ce que c'est ce que je veux vraiment, ...).
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  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
    Certes je dois trop me retourner les petites neurones qu'il me reste

    Mais j'arrive pas a comprendre ...

    Avec la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_data_seek($req_d_conn, 1);
    ... Il se pose donc a la 2e ligne de la table ... mais pourquoi alors le résultat qu'il me retourne n'est que le 2e champ de la table ... Logiquement avec la boucle WHILE il devrait parcourir et lancer sa recherche a partir de la 2e ligne ...

    Snifffffff ...

  14. #14
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Points : 716
    Points
    716
    Par défaut
    Tu as apporté la réponse toi même :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    while($data=mysql_fetch_assoc($req_d_conn))
    {
    //on affiche
    echo '<tr><td align="center"><center><font size="1" color="#FFFFFF">Derniere visite : <strong>'.$data['DateConnect'].'</strong></font></center></td>';
     
    //on sort de la boucle
    break;
    }
    Enlève le break et si ca ne renvoie qu'un enregistrement c'est qu'il n'y en a que 2 en base
    Tout pas mieux que tout le monde : évitez les questions techniques en mp sinon à quoi bon poster sur un forum ?

    Petite citation : "Le sage cherche la vérité, l'imbécile l'a déjà trouvée"

  15. #15
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Citation Envoyé par bilou95
    mais pourquoi alors le résultat qu'il me retourne n'est que le 2e champ de la table ... Logiquement avec la boucle WHILE il devrait parcourir et lancer sa recherche a partir de la 2e ligne ...
    tu voulais dire 2° enregistrement je suppose...

    Peux-tu donner la dernière version de ton code stp ?

    Mais il faudrait répondre à ratapapa...

    Edit : ah bah grilled par ratapapa en personne lol
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  16. #16
    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
    Imaginons que dans la table apparaisse les memes enregistrements (meme USER_NOM) mais (bien sur) avec une date de connexion différente (DateConnect).

    Et bien si je retire le il m'affiche tout les enregistrements.

    Par contre si il y a 2 enregistrements, la condition marche parfaitement ... dépassé 3 enregistrements dans la table, ca part en LIVE !

    grgrgrgrgr

  17. #17
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Points : 716
    Points
    716
    Par défaut
    Je crois qu'il va falloir suivre les conseils d'amara : commence par réfléchir en terme d'algo et non de code. Pose toi la question de ce que tu veux, ce que tu as, et le comment viendra de lui meme.

    C'est une erreur classique mais dévastatrice que de plonger tête baissée dans du code sans savoir précisément ce que l'on veut, et comment on compte le faire
    Tout pas mieux que tout le monde : évitez les questions techniques en mp sinon à quoi bon poster sur un forum ?

    Petite citation : "Le sage cherche la vérité, l'imbécile l'a déjà trouvée"

  18. #18
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Tu as compris ou pas le problème du break parce que vu ce que tu viens de mettre j'ai un vieux doute là
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  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
    ca sort de la boucle c ca ?

  20. #20
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Tu peux donner la dernière version de ton code et nous expliquer clairement ce que tu souhaites faire avec les données de ta base ça ira plus vite parce que le problème a pas l'air bien compliqué (je vais finir par croire que c'est un troll ce truc )
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Est ce que ce code est correcte? vb6 ADO
    Par zidane2 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 29/09/2010, 23h14
  2. est ce que ce bout de code est correct?
    Par Elay dans le forum C++
    Réponses: 5
    Dernier message: 03/03/2010, 10h37
  3. Est ce que ce code est correct ?
    Par foot.c dans le forum Débuter
    Réponses: 6
    Dernier message: 12/05/2008, 01h49
  4. Réponses: 15
    Dernier message: 19/09/2007, 18h46
  5. Modifier le code après la compilation, c'est possible?
    Par marcus333 dans le forum Langage
    Réponses: 1
    Dernier message: 12/09/2005, 09h52

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