Page 1 sur 1

probleme avec mon code php

Posté : 12 nov. 2012, 10:31
par apimero
Bonjour a tous, je suis débutant en php. j'ai un gros souci, j'ai écris un code php qui prend en entrée la deuxième valeur du contenu d'un sms et va recherché les infos concernant ce numéro dans la base de donnée. voici ce code:

<?php
$server="localhost";
$password="123456";
$username="root";
$dbname="playsms";

//connexion à la base de donnée playsms

$link=mysql_connect($server,$username,$password);
if(!$link){
die("Echec de connexion au serveur de base de donnée:".mysql_error());
}

//choix de la base de donnée
mysql_select_db($dbname);
$sender = mysql_escape_string($_GET['emetteur']);
$var=' ';
$emetteur=(string)trim(strstr($sender,$var));

//création et execution de la requete sql

$query = "SELECT * FROM JDOSSIER WHERE NUM_DOSSIERS=".trim($emetteur);

$result=mysql_query("$query");

//traitement du résultat

$donnee=mysql_fetch_assoc($result);
if(!empty($donnee)){

echo $donnee["CIVILITE"]." ".$donnee["PRENOM_REQUERANT"]." ".$donnee["NOM_REQUERANT"]." votre dossier de ".$donnee["OBJET"]." est ".$donnee["CODE_SITU"]." depuis le ".$donnee["DATE_SITU"];
}
else {echo "Numero errone";}
//libération des ressources et fermeture de la connexion
mysql_free_result($result);
mysql_close($link);
?>
Cependant, lorsque j'envoie une requete par sms ça revoi la réponse de l'echo else {echo "Numero errone";}.
je ne sais quoi faire, je me dis que s'a ne prend pas en compte la condition if, ou bien la variable $donnee est tjrs vide c'est pour cette raison que s'a renvoie l'echo du numero érroné.Please help me. i count for you

Re: probleme avec mon code php

Posté : 12 nov. 2012, 12:36
par xTG
Affiches les variable $emetteur et $sender pour trouver l'erreur.

Re: probleme avec mon code php

Posté : 12 nov. 2012, 15:11
par frf2
Bonjour,

Les guillemets n'a pas besoin d'être utiliser dans cette ligne:
$result=mysql_query("$query");
Je pense que l'erreur se trouve dans la variable émetteur, mais je peux me tromper...

Re: probleme avec mon code php

Posté : 12 nov. 2012, 21:46
par moogli
salut,

le NUM_DOSSIERS, dans la base, c'est un entier ou une chaîne de caractère ?
si c'est une chaine de caractères ta requete n'est pas bonne, tu devrais avoir une erreur. Si ce n'est pas le cas modifie l'error_reporting à E_ALL !

comme l'indique xTG, commence par afficher les variables, ainsi que la requête sql pour l'essayer dans un client SQL.

tu peux utiliser var_dump pour cela.

par exemple : var_dump($emetteur,$query);

avant le mysql_query().

ton code peux être comme ça :
<?php
$server="localhost";
$password="123456";
$username="root";
$dbname="playsms";

//connexion à la base de donnée playsms

$link=mysql_connect($server,$username,$password);
if(!$link){
	die("Echec de connexion au serveur de base de donnée:".mysql_error());
}

//choix de la base de donnée
mysql_select_db($dbname);
if(empty($_GET['emetteur']))
	exit; // c'est brutal, a remplacer par une gestion d'erreur correct.
$var=' ';
$emetteur=trim(strstr($_GET['emetteur'],$var));

//création et execution de la requete sql

$query = "SELECT * FROM JDOSSIER WHERE NUM_DOSSIERS=".mysql_real_escape_string($emetteur);

$result=mysql_query($query);
echo '<pre>';
var_dump($_GET,$emetteur,$query,$result);
echo '</pre>';
if($result === false){
	// Erreur à gérer correctement
	echo "Numero errone";
}
else {
	//traitement du résultat
	$donnee=mysql_fetch_assoc($result);
		echo $donnee["CIVILITE"]." ".$donnee["PRENOM_REQUERANT"]." ".$donnee["NOM_REQUERANT"]." votre dossier de ".$donnee["OBJET"]." est ".$donnee["CODE_SITU"]." depuis le ".$donnee["DATE_SITU"];
	//libération des ressources et fermeture de la connexion
	mysql_free_result($result);
	mysql_close($link);
}
?>

@+

Re: probleme avec mon code php

Posté : 12 nov. 2012, 22:52
par sirakawa
Bonjour,

Les guillemets n'a pas besoin d'être utiliser dans cette ligne:
$result=mysql_query("$query");
Je pense que l'erreur se trouve dans la variable émetteur, mais je peux me tromper...
une fois de plus:
print "$query";
$result=mysql_query("$query");