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 :

Construction d'une requête


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de menoulette
    Inscrit en
    Août 2009
    Messages
    320
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 320
    Par défaut Construction d'une requête
    salut tt le monde..j'ai un petit prblm dans ma requête qui m'affiche cette erreur
    Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\Program Files\EasyPHP 2.0b1\www\monsite\dossier special\mon_profile.php on line 216

    je sais que ce signifie une erreur dans les guiellemets!! mais je crois que c'est juste ce que j'ai fait le voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        $mysql_selection_date = mysql_query("SELECT connecter FROM utilisateur WHERE pseudo=".$_SESSION'variable']);
    Aider moi à trouver la solution!!
    Merci
    Amicalement

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Il y a une erreur de syntaxe PHP : il manque un crochet et les chaînes, en SQL, doivent être quotées.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $mysql_selection_date = mysql_query("SELECT connecter FROM utilisateur WHERE pseudo='" . mysql_real_escape_string($_SESSION['variable']) . "'");
    Et tant qu'à faire autant se protéger des injections SQL grâce à mysql_real_escape_string

  3. #3
    Membre éclairé Avatar de menoulette
    Inscrit en
    Août 2009
    Messages
    320
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 320
    Par défaut
    Citation Envoyé par julp Voir le message
    Il y a une erreur de syntaxe PHP : il manque un crochet et les chaînes, en SQL, doivent être quotées.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $mysql_selection_date = mysql_query("SELECT connecter FROM utilisateur WHERE pseudo='" . mysql_real_escape_string($_SESSION['variable']) . "'");
    Et tant qu'à faire autant se protéger des injections SQL grâce à mysql_real_escape_string

    Merci monsieur c'est vrai je suis pas assez professionnel que vous monsieur

  4. #4
    Membre éclairé Avatar de menoulette
    Inscrit en
    Août 2009
    Messages
    320
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 320
    Par défaut oupss j'ai un autre problème
    Je prépare une page qui affiche le profile d'un membre..donc je souhaite afficher le pseudo le date de naissance et la derniére connexion et son âge!!mais y'a pleins d'erreurs et sa ne fonctionne pas?? le voici le code
    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
     
     
          <FONT COLOR=RED>PSEUDO</FONT COLOR> : <?php if(isset($_SESSION['variable'])){ echo $_SESSION['variable'];}?><BR><FONT COLOR=RED>Dernière connexion au club:</FONT COLOR><BR><FONT COLOR=RED></FONT COLOR>
    	 <?php 
    	if(isset($_SESSION['variable']))    {
    	mysql_connect("localhost","root","");
    	mysql_select_db("base")or die("can not selecte db");
    $mysql_selection_date = mysql_query("SELECT connecter FROM utilisateur WHERE pseudo='" . mysql_real_escape_string($_SESSION['variable']) . "'");   
     $reponse_temps = mysql_fetch_array($mysql_selection_date);
        $_SESSION['connecter'] = $reponse_temps['connecter'];
        mysql_query("UPDATE utilisateur SET connecter='".date("U")."' WHERE pseudo=".$_SESSION['variable']);
    } 
    echo "".date("d-m-Y",$_SESSION["variable"])." à ".date("G:i",$_SESSION["variable"]);?>	  
    	<?php 
    	$req=mysql_query("SELECT sexe,date_naissance   FROM utilisateur  WHERE pseudo=".$_SESSION['variable']);
    	$repo=mysql_fetch_array($req);
    	while($repo){
    	echo ' 
    	<BR><FONT COLOR=RED>SEXE:</FONT>'.$repo['sexe'];
    	echo'<BR><FONT COLOR=RED>DATE DE NAISSANCE:</FONT COLOR>'.$repo['date_naissance'];}
    	//calcule de l'age
    	$date_naiss=$repo['date_naissance'];
    	function Age($date_naissance)
    {
        $arr1 = explode('/', $date_naissance);
        $arr2 = explode('/', date('d/m/Y'));
     
        if(($arr1[1] < $arr2[1]) || (($arr1[1] == $arr2[1]) && ($arr1[0] <= $arr2[0])))
        return $arr2[2] - $arr1[2];
        return $arr2[2] - $arr1[2] - 1;
    }
     
    	$age=Age($date_naiss); echo '('.$age.'ans).';?>

    et il y'a les erreurs suivantes:


    Warning: date() expects parameter 2 to be long, string given in C:\Program Files\EasyPHP 2.0b1\www\monsite\dossier special\mon_profile.php on line 221

    Warning: date() expects parameter 2 to be long, string given in C:\Program Files\EasyPHP 2.0b1\www\monsite\dossier special\mon_profile.php on line 221
    à
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Program Files\EasyPHP 2.0b1\www\monsite\dossier special\mon_profile.php on line 224

    Notice: Undefined offset: 1 in C:\Program Files\EasyPHP 2.0b1\www\monsite\dossier special\mon_profile.php on line 236

    Notice: Undefined offset: 2 in C:\Program Files\EasyPHP 2.0b1\www\monsite\dossier special\mon_profile.php on line 237
    (2009ans).

    et la plus grande catastrophe c'est que ca m'affiche l'âge 2009 ans
    aidez moi de sortir de ce problème
    Merci

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Que désigne $_SESSION['variable'] ? (on a vu plus explicite comme nom :/)
    Quel est son type ?

    Car si c'est bien une chaîne vous devez apporter les mêmes corrections que précédemment :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("UPDATE utilisateur SET connecter='".date("U")."' WHERE pseudo='" . mysql_real_escape_string($_SESSION['variable']) . "'");
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req=mysql_query("SELECT sexe,date_naissance   FROM utilisateur  WHERE pseudo='" . mysql_real_escape_string($_SESSION['variable']) . "'");
    Et vous ne pouvez pas passer une chaîne à date, il attend un timestamp à ces lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "".date("d-m-Y",$_SESSION["variable"])." à ".date("G:i",$_SESSION["variable"]);
    Donc il faudrait vraisemblablement y apporter une correction.

    Quant aux problèmes d'offset serait-ce parce que la date est stockée sous la forme aaaa-mm-jj et non jj/mm/aaaa dans la base ?

  6. #6
    Membre éclairé Avatar de menoulette
    Inscrit en
    Août 2009
    Messages
    320
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 320
    Par défaut
    Resalut..
    Désolée de ne pas expliquer bien mon code je vais éclairicir..
    a propos de la variable $_SESSION['variable'] se trouve dans une fichier nomé (login.php) qui est inclus dans la page mon_profile.php ..cette variable je stoque dedans la session connectée c a d l'utilisateur qui est connecté
    !!est ce que ca peut me provoquer d'autres problèmes?
    et pour le problème de la date c bon j'ai corrigé!!mais ca m'affiche tjrs l'âge incorrecte
    Warning: date() expects parameter 2 to be long, string given in C:\Program Files\EasyPHP 2.0b1\www\monsite\dossier special\mon_profile.php on line 220

    Warning: date() expects parameter 2 to be long, string given in C:\Program Files\EasyPHP 2.0b1\www\monsite\dossier special\mon_profile.php on line 220
    à
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Program Files\EasyPHP 2.0b1\www\monsite\dossier special\mon_profile.php on line 223

    Notice: Undefined offset: 1 in C:\Program Files\EasyPHP 2.0b1\www\monsite\dossier special\mon_profile.php on line 235

    Notice: Undefined offset: 2 in C:\Program Files\EasyPHP 2.0b1\www\monsite\dossier special\mon_profile.php on line 236
    (2009ans).



    voici un petit code ou se trouve la page $_session['variable']


    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
     
    	 <?php
    	 if(isset ($_POST['Submit2'])){
    	if($_POST['password']==$_POST['password2'] ){ 
    	   if($_POST['password']!=$_POST['auteur']){
    	$auteur=$_POST['auteur'];
     
    		$s="";
    		if(isset($_POST['jeparle0'])) {$s.=$_POST['jeparle0'].",";}
    		if(isset($_POST['jeparle1'])) {$s.=$_POST['jeparle1'].",";}
    		if(isset($_POST['jeparle2'])) {$s.=$_POST['jeparle2'].",";}
    		if(isset($_POST['jeparle3'])) {$s.=$_POST['jeparle3'].",";}
    		if(isset($_POST['jeparle4'])) {$s.=$_POST['jeparle4'].",";}
    		if(isset($_POST['jeparle5'])) {$s.=$_POST['jeparle5'].",";}
     
    		mysql_connect('localhost','root','');
    		mysql_select_db('base') or die("cannot select DB");
    		$result=mysql_query("INSERT INTO `utilisateur` (`pseudo` ,`sexe` ,`date_naissance`,`mot_de_passe` ,`email` ,`pays` ,`je_parle` ,`ville` ,`comment` ,`presse` )
    VALUES (
    '".$_POST['auteur']."', '".$_POST['sexe']."', '".$_POST['part1']."-".$_POST['part2']."-".$_POST['part3']."', '".$_POST['password']."', '".$_POST['email']."', '".$_POST['forumurl']."', '".$s."', '".$_POST['geo']."', '".$_POST['comment']."', '".$_POST['presse']."')") ;
     
     
    				if($result){
     
    				$_SESSION['variable']=$auteur;
     
    				header("location:page_apres_inscription.php");
     
    }
     
    }
    }
    //le cas contraire
     
    else header("location:confirmation.php");
    mysql_close();
     
    }
    ?>

    Merci
    bien cordialement

Discussions similaires

  1. Construction d'une requête un peu complexe
    Par dauphin34000 dans le forum SQL
    Réponses: 9
    Dernier message: 24/05/2007, 11h43
  2. [MySQL] Erreur lors de la construction d'une requête
    Par gaetan24 dans le forum PHP & Base de données
    Réponses: 23
    Dernier message: 06/04/2007, 15h45
  3. Réponses: 1
    Dernier message: 14/02/2007, 15h51
  4. [Conception] Construction d'une requête
    Par enidnalb dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 14/12/2006, 08h59
  5. Construction d'une requête imbriquée
    Par gudul dans le forum SQL
    Réponses: 20
    Dernier message: 03/07/2006, 10h57

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