Requete SQL qui ne saffiche pas sur page web

Nouveau WRInaute
Bonjour a toutes et a tous !!!

j'ai fait un site web en local jusque la tous va tres bien. mais je cherche a afficher des elements "champ de db" dans une page web.

mais cela ne saffiche pas ? pourtant j'ai bien reseigner tous les les champs pour la connection a celle ci. voici ce que j'ai fait .

Code:
$account = $_SESSION['name'];
$query = "SELECT name, profession, level, strength, speed, health, soul FROM cq_user WHERE '$account' = account";
$result = mysql_query($query);

$row = mysql_fetch_array($result, MYSQL_ASSOC);
?>
<div class="style3">
	<h2><center>Votre status</center></h2>
</div>
<table class="style12" align="left">
	<tr>
		<td class="style10">Votre personage</td>
		<td class="style11"><?php echo $row['name'];?></td>
	</tr>
	<tr>
		<td class="style10">Profession</td>
		<td class="style11"><?php echo $row['profession'];?></td>
	</tr>
	<tr>
		<td class="style10">Level</td>
		<td class="style11"><?php echo $row['level'];?></td>
	</tr>
	<tr>
		<td class="style10">Strength</td>
		<td class="style11"><?php echo $row['strength'];?></td>
	</tr>
	<tr>
		<td class="style10">Agility</td>
		<td class="style11"><?php echo $row['speed'];?></td>
	</tr>
	<tr>
		<td class="style10">Vitality</td>
		<td class="style11"><?php echo $row['health'];?></td>
	</tr>
	<tr>
		<td class="style10">Spirit</td>
		<td class="style11"><?php echo $row['soul'];?></td>
	</tr>

je ne comprend pas pourquoi rien ne saffiche correctement :
status.jpg



merci de l'aide que vous pourrez m'apporter
 
WRInaute accro
Tu as testé ta requête sous phpmyadmin pour voir si elle était ok ? Ta conf serveur te permet de visualiser les erreurs ?
 
WRInaute accro
+1, puor débugger, il faut faire un
Code:
echo $query;
et taper la requête dans le champ "SQL" de phpmyadmin pour voir quelles sont les erreurs reportées.
 
Nouveau WRInaute
a non j'ai pas penser a tester ca................ erreure de noob je vais voir ca ^^



ben quant je fait ma requette sous phpmy admin ca marche ôÔ
 
Nouveau WRInaute
en faite voila ce que j'ai comme erreure a ce propos :

Code:
[07-Apr-2009 11:39:15] PHP Warning:  mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\wamp\www\*********\user\userstats.php on line 94

voila le code complet :

Code:
<?php
oB_start();
include "../inc/config.php";
include "../inc/display.php";
$logged = MYSQL_QUERY("SELECT * FROM `account` WHERE `name` = '$_SESSION[name]' AND `password` = '$_SESSION[password]'");
$logged = mysql_fetch_array($logged);
?>
<?php
require_once ('config.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html dir="ltr" xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Language" content="en-us" />
<title>control panel</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="../inc/css/userstyle.css" />
<style type="text/css">
.style1 {
	text-align: center;
	color: #00001C;
	font-size: large;
}
.style2 {
	text-align: right;
	width: 912px;
}
.style3 {
	font-family: "Times New Roman";
}
.style4 {
	text-align: center;
}
.style5 {
	text-align: left;
}
.style7 {
	left: 0px;
	top: 0px;
	height: 481px;
}
.style9 {
	text-align: center;
}
.style10 {
	margin-left: 50px;
	padding-left: 50px;
}
.style11 {
	text-align: right;
{
</style>
</head>

<body>

<div id="masthead" class="style1">
	<strong>User Control Panel<br />
	</strong></div>
<div id="container" class="style7">
	<div id="left_col" class="style4">
		<div>
			<h3>&nbsp;</h3>
			<h3>Your Account</h3>
			<div>
				<p><a href="changepass.php">Change mot de passe</a><br />
				<a href="secinfo.php">Change Information Securiter</a><br />
				<a href="idnum.php">Change numero ID</a><br />
				<a href="email.php">Change Email</a><br />
				<a href="guild.php">Voir les Guildes</a><br />
				<a href="friends.php">Voir les amies</a><br />
				<a href="userstats.php">Votre personnage</a><br />
				<a href="logout.php">Ce deloguer</a></p>
				<h3>Editions de Compte</h3>
				<p><a href="unstick.php">Non dispo</a><br />
				<a href="hacker.php">Non dispo</a><br />
				<a href="error.php">Account/Server Error</a></p>
				<h3>Messages priver</h3>
				<p><a href="messages.php">recus</a><br />
				<a href="messages.php?p=send">envoyer</a></p>
				<h3>Divers</h3>
				<p><a href="stats.php">Voir les stats serveur</a><br />
				<a href="otherguild.php">Voir une autre guild</a><br />
				<a href="banned.php">Voir les membres bannis</a></p>
			</div>
		</div>
	</div>
	<div id="page_content">
	<div>
		<h4 class="style9">Bienvenue dans le panel de control d'utilisateur!</h4>
		<p class="style10"><?php
$account = $_SESSION['name'];
$query = "SELECT name, profession, level, strength, speed, health, soul FROM cq_user WHERE '$account' = account";
$result = mysql_query($query);

$row = mysql_fetch_array($result, MYSQL_ASSOC);
?>
<div class="style3">
	<h2><center>Votre status</center></h2>
</div>
<table class="style12" align="left">
	<tr>
		<td class="style10">Votre personage</td>
		<td class="style11"><?php echo $row['name'];?></td>
	</tr>
	<tr>
		<td class="style10">Profession</td>
		<td class="style11"><?php echo $row['profession'];?></td>
	</tr>
	<tr>
		<td class="style10">Level</td>
		<td class="style11"><?php echo $row['level'];?></td>
	</tr>
	<tr>
		<td class="style10">Strength</td>
		<td class="style11"><?php echo $row['strength'];?></td>
	</tr>
	<tr>
		<td class="style10">Agility</td>
		<td class="style11"><?php echo $row['speed'];?></td>
	</tr>
	<tr>
		<td class="style10">Vitality</td>
		<td class="style11"><?php echo $row['health'];?></td>
	</tr>
	<tr>
		<td class="style10">Spirit</td>
		<td class="style11"><?php echo $row['soul'];?></td>
	</tr>
</table></p>
	</div>
	</div>
</div>
</body>

</html>

la ligne 94 corespond a ca :

$query = "SELECT name, profession, level, strength, speed, health, soul FROM cq_user WHERE '$account' = account";
 
WRInaute accro
et que vaut $account ?

ne nous affiche pas ta requête en php, mais bien le résultat, une fois qu'il a converti $account.
 
Nouveau WRInaute
ben le resultat dans phpmyadmin depend de ma demande.

par exemple si je lui demande :

requête SQL:
SELECT `account`.`name`
FROM account
LIMIT 0 , 30

il m'affiche les nons donc ca marche si je fait pareil avec proffession level ou autre ca marche aussi mais pas sur le page web oO

donc 2 solution soit je suis trop stupid pour comprendre comment ca marche soit il y a un probleme dans le code


commme la requette le fait sur 2 champ different la est peut etre le probleme?

car le champ account est celui des comptes créer par les utilisateurs et le champ cq_user est celui qui ce met a jour quant le joueur loguer avec son account et joue sur le jeu.
 
WRInaute accro
ahem et avec :
Code:
$logged = mysql_query("SELECT * FROM `account` WHERE `name` = '".$_SESSION['name']."' AND `password` = '".$_SESSION['password']."' ");
 
Nouveau WRInaute
nickargall a dit:
ahem et avec :
Code:
$logged = mysql_query("SELECT * FROM `account` WHERE `name` = '".$_SESSION['name']."' AND `password` = '".$_SESSION['password']."' ");

dans phpmyadmin j'obtien le même resultat, mais pour le site je me log deja avec cette ligne sur la page stats ou je veut afficher les resultat. j'ai meme ajouter un page config.php et ca dans le doute :

deltaone a dit:
<?php
require_once ('config.php');
?>
 
Nouveau WRInaute
nickargall a dit:
+1, puor débugger, il faut faire un
Code:
echo $query;
et taper la requête dans le champ "SQL" de phpmyadmin pour voir quelles sont les erreurs reportées.

bon me voila avec une autre erreur :


#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$account = $_SESSION['name']' at line 1

j'ai phpMyAdmin 2.6.4-pl3 via wamp 5 version1.4.5
 
WRInaute accro
Pas facile de te suivre, tu changes de requête à étudier à chaque Post

Change la requête suivante
Code:
$query = "SELECT name, profession, level, strength, speed, health, soul FROM cq_user WHERE '$account' = account";
par
Code:
$query = "SELECT `name`, `profession`, `level`, `strength`, `speed`, `health`, `soul` FROM `cq_user` WHERE `account`='".$account."'";
 
WRInaute accro
Code:
"[...]  $account = $_SESSION['name']"


depuis quand tu places un $ avant le nom du champ de la base SQL (partie de gauche) ?
:)
 
Nouveau WRInaute
attend on va proceder par ordre par ce que je ne suis plus non plus mdr tu ma dit de faire ca :

nickargall a dit:
Pas facile de te suivre, tu changes de requête à étudier à chaque Post

Change la requête suivante
Code:
$query = "SELECT name, profession, level, strength, speed, health, soul FROM cq_user WHERE '$account' = account";
par
Code:
$query = "SELECT `name`, `profession`, `level`, `strength`, `speed`, `health`, `soul` FROM `cq_user` WHERE `account`='".$account."'";

ca change rien rien ne s'affiche sur la page web.

tume demande ensuite :

nickargall a dit:
Code:
"[...]  $account = $_SESSION['name']"


depuis quand tu places un $ avant le nom du champ de la base SQL (partie de gauche) ?
:)

ben si je met pas le $ j'ai une erreure de syntax lol

$account = $_SESSION['name']" ---> ok pas d'erreure

account = $_SESSION['name']" ------> Parse error: parse error, unexpected '=' in c:\wamp\www\******\user\userstats.php on line 93

au pire va sur http://codarkness.ath.cx/darkness/ tu te log avec log "test" et pass "test" et tu va sur la page "Votre personnage"

il n'y a aucune infos ni message d'erreur alors que le compte "test" a un perso lvl 135, donc qui existe dans cq_user
 
WRInaute accro
On recommence dans l'ordre

Avec la requête que je t'ai conseillée,
Code:
$query = "SELECT `name`, `profession`, `level`, `strength`, `speed`, `health`, `soul` FROM `cq_user` WHERE `account`='".$account."'";
mets à la suite un echo $query; :
Code:
$query = "SELECT `name`, `profession`, `level`, `strength`, `speed`, `health`, `soul` FROM `cq_user` WHERE `account`='".$account."'";
echo $query;
et entre ce qui est affiché par le 'echo $query;' dans ton phpmyadmin;
si tu vois les résultats s'afficher, c'est que ta requête est bonne mais que ton traitement d'affichage des infos personnages n'est pas bonne.
Si non, affiche ici la requête (pas celle de ton code PHP, celle que tu as entré dans ton phpmyadmin)
 
Nouveau WRInaute
avant de continuer je tien a vous remercier sincerement pour votre aide genereuse.

bon alors ce que j'ai fait :

1° j'ai ajouter : echo $query;

la page a afficher :

SELECT `name`, `profession`, `level`, `strength`, `speed`, `health`, `soul` FROM `cq_user` WHERE `account`=''

que j'ai mis dans phpmyadmin onglet sql : Exécuter une ou des requêtes sur la base cq

resultat j'ai comme reponse:

MySQL n'a retourné aucun enregistrement. (traitement: 0.0002 sec.)
 
WRInaute accro
c'est que tu as un problème avec ta variable $account, qui est vide. Donc ta varilable de session $_SESSION['name'] est vide. Cherche de ce côté là
 
Nouveau WRInaute
arfff ma variable $account ne peut pas etre vide?? puisque j'ai des comptes de créer dans account et j'ai des personnages dans cq_user qui sont en relation avec les comptes dans account ???

alors la je vois pas le probleme
 
WRInaute accro
D'après ce que je vois, ta variable $account est renseignée d'après le contenu de la variable $_SESSION['name']. En début de page, fais un

Code:
<?php
echo $_SESSION['name']; 
?>
après l'ouverture de session, 'suis sûr que rien ne s'affichera.
Tu la déclare ou, le contenu de ta variable de session ? Cherche là ...
 
Nouveau WRInaute
ben la session je l'ouvre une fois loguer sur le site donc en toute logique dans login.php. Et quant je me log le site affiche le speudo du compte ôÔ. Voila pourquoi je pige pas trop en plus suis vraiment pas expert en php.

<?php
echo "<center>";

if($logged[name]) {
echo "<p>Vous etes loguer en tant que ";
echo $logged[name];
echo "<br />Clic ";
echo '<a href="logout.php">ici</a>';
echo " pour vous deloguer</p>";
}else
if(isset($_GET['login'])) {
$username= htmlspecialchars(addslashes($_POST[username]));
$password = $_POST[password];
$uinfo = mysql_query("SELECT * FROM `account` WHERE `name` = '$username'") or die(mysql_error());
$checkuser = mysql_num_rows($uinfo);
if($checkuser == '0')
{
echo "<p>Pseudo non trouver</p>";
}else{
$udata = mysql_fetch_array($uinfo);
if($udata[status] == 1) {
echo "<p>Ce compte na pas ete verifier.</p>";
}else
if($udata[password] == $password) {
$query = mysql_query("SELECT * FROM `account` WHERE `name` = '$username'") or die(mysql_error());
$user = mysql_fetch_array($query);
$_SESSION['name'] = "$user[name]";
$_SESSION['password'] = "$user[password]";

echo "<p>Vous vous loguer, patientez. . .</p>";
if($udata[status] <= 3) {
echo "<meta http-equiv='Refresh' content='2; URL=index.php'/>";
}else{
echo "<meta http-equiv='Refresh' content='2; URL=index.php'/>";
}}else{
echo "<p>Pseudo ou mot de pass incorect</p>";
}
}
}else{
echo "<form action='login.php?login' method='post'>
<table width='312'>
<tr>
<td width='120'><p>Pseudo:</p></td>
<td width='180'><input type='text' name='username' size='30' maxlength='25'></td>
</tr>
<tr>
<td><p>Mot de passe:</p></td>
<td><input type='password' name='password' size='30' maxlength='25'></td>
</tr>
<tr>
<td colspan='2'><center><input type='submit' value='Login'></center></td>
</tr>
</table>
</form>";
echo "<center>";
}
?>

je me demande si c'est pas la bd qui merde ou les codes, j'espere pas avoir a tous refaire :cry:
 
WRInaute accro
Tu as oublié, apparemment, de lancer la session par un session_start(); si on l'oublie, les données ne sont pas correctement enregistrées dans les variables de session. Ajoute donc session_start(); avant toute écriture HTML dans ta page et dis moi si ça marche
 
Nouveau WRInaute
non cela ne marche pas.......

je pige pas pourquoi cela ne marche pas ? quant je veut afficher des infos du serveur jeu qui son dans la bd et qui ne sont pas en rapport au compte ca marche donc j'imagine que je doit avoir un probleme avec le champ account ou cq user.

en plus je me suis apercus aussi que je ne pouvais pas afficher le nombre de joueur en ligne alors que je peut afficher si le serveur est online ou offline.

donc je pense de plus en plus a un probleme avec la cq_user

derniere chose je ne derange plus apres ^^ est il logique que je n'ai pas de champ ( session) dans la base de donner???
 
WRInaute accro
Concernant la "session", Ben oui, c'est une variable de session, pas un enregistrement dans une base de données.

tu dois quand même avoir un problème avec tes variables de session; le nombre d'utilisateurs en ligne doit également utiliser des variables de sessions et comme il ne marche pas non plus, tes soucis viennent surement de là.



reprends pas à pas la transition de tes données & variables de session avec des "echo" ; tu verras à quel moment ca coince.

Bon courage ..
 
Nouveau WRInaute
je te remerci infiniment mais non je suis sur que cela vien du champ cq_user car j'ai essayer :

SELECT `name`, `profession`, `level`, `strength`, `speed`, `health`, `soul` FROM `cq_user` WHERE `account`='Fire'


fire etant le non d'un personnage in game qui fonctionne, la aussi ca me donne aucun enregistrement.

par contre je voulais savoir aussi quant on a une erreure tel que :

Warning: strtotime() [function.strtotime]: Called with an empty time parameter. in c:\wamp\www\darkness\user\pm.php on line 46

Warning: date() [function.date]: Windows does not support dates prior to midnight (00:00:00), January 1, 1970 in c:\wamp\www\darkness\user\pm.php on line 46

comment on le regle dans phpmyadmin ?
 
WRInaute accro
c est pas un problème de phpmyadmin mais un probleme PHP, il manque un paramètre a ta fonction strtotime comme indiqué dans le message d erreur affiché

pour en revenir à ta base de données, tu es sur que tu y es bien connecté ? :)
 
Nouveau WRInaute
nickargall a dit:
pour en revenir à ta base de données, tu es sur que tu y es bien connecté ? :)

ben si je lance pas winmysqladmin ( pour que le jeu ce connect a la db) je lance que wamp ( apache + mysql) donc oui je vais dans la bd par phpmyadmin

car je ne peut pas lancer les deux, ils utilise chacun la fonction mysqld-nt.exe. donc soit j'accede a la bd avec phpmyadmin en lancant que wamp et pas au serveur avec le client du jeu soit le contraire en lancant winmysqlAdmin.

je convient que c'est asser compliquer moi même qui ne connaissais rien au php il y a 3 semaines j'ai eu du mal.

j'espere ne pas paraitre trop lourdo ? ou boulet lol
 
WRInaute accro
Je pourrai pas t'aider plus .. reprends toutes les étapes de la mise en variables de sessions avec des tests d'affichage et tu trouveras le bout de code qui foire.

Bon courage
 
Nouveau WRInaute
je refait ce message juste pour remercier une fois encore toutes les personnes qui ont essayer de m'aider ^^ ((UsagiYojimbo ,e-kiwi et surtout nickargall)

je n'ai pas regler tous les problemes mais certain le sont. plus d'erreure dans les mp sur le site, ca fonctionne bien :D .

j'ai juste le probleme d'affichage de certain champ de la bd mais je me resigne, pour un mec qui ne connaissais rien au php il a 4 semaine je suis fiere de moi :mrgreen:
 
Discussions similaires
Haut