JeuWeb - Crée ton jeu par navigateur
problème de requête - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : problème de requête (/showthread.php?tid=1935)

Pages : 1 2 3


RE: problème de requête - Reaven - 29-10-2007

concernant ma $table_cd ce n'est pas un problème pcq elle vient de mon fichier config et designe la table comptes_définitifs.
Je vois faire ce que vous avez dit et je vous tiens informé.
Ah et un derniere chose j'ai testé le script en local et toutes mes infos sont enregistrées mais l'erreur apparait toujours.


RE: problème de requête - Reaven - 29-10-2007

Le problème est réglé il venait de ma requête SQL

Code PHP :
<?php 
$requete
= "SELECT nom_seigneur FROM $table_cd WHERE nom_seigneur='$login'";

J'avais mit login='$login' à la place de nom_seigneur='$login'
Erreur de noob ^^
J'ai pas fait attention.

Merci quand même de votre aide.


RE: problème de requête - Reaven - 29-10-2007

Dernière petit question concernant cette partie du code

Code PHP :
<?php 
if($nb_faux >= 0)
{
include(
"config.php");
$connexion= mysql_connect($hote,$utilisateur,$mdp) or die('<br/>Connexion au serveur impossible.<br/> Contactez le Webmaster si l\'erreur n\'est pas résolue.<br/>');
$choix_db= mysql_select_db($data_base) or die('<br/>Selection de la base de donnée echouée.<br/> Contactez le Webmaster si l\'erreur n\'est pas résolue.<br/>');
$requete= "SELECT nom_seigneur, nom_mage, nom_empire FROM $table_cp WHERE nom_seigneur='$login'";
$resultat= mysql_query($requete) or die(mysql_error());
$ligne= mysql_fetch_array($resultat);

Je voudrais vérifier si le login, le nom du mage ,le nom de l'empire ou bien tout existe déjà et afficher un message pour chaque erreur (exemple: si le seigneur existe déjà j'affiche "ce seigneur existe déjà").

J'ai mit en dessous ces conditions:

Code PHP :
<?php 
if($login == $ligne['nom_seigneur'])
{
$reponse= '<p>Ce seigneur existe déjà</p><br/>';
$nb_faux ++;
}
elseif(
$mage == $ligne['nom_mage'])
{
$reponse= '<p>Ce mage existe déjà</p><br/>';
$nb_faux ++;
}
elseif(
$empire == $ligne['nom_empire'])
{
$reponse= '<p>Cet empire existe déjà</p><br/>';
$nb_faux ++;
}

Normalement ça devarit fonctionné mais c'est pour la condition si tout existe, à quoi elle ressemble? Je voudrais que si le seigneur, le mage et l'empire existe, on affiche "Le seigneur, le mage et l'empire existe déjà."

Merci


RE: problème de requête - Kheldar - 30-10-2007

Je pense qu'il y a un léger problème.
En effet, tu récupères tous les noms de seigneurs égal au login. (je sais pas si je suis clair).
Donc ton premier test (si il y a au moins 1 réponse, tu ne teste pas si il n'y en a), est toujours valide.

Par contre, si tu veux tester l'unicité du nom de seigneur, du nom de mage ou du nom de l'empire, la manière la plus rapide est de faire 3 requetes (si quelqu'un a mieux, je suis preneur) :

Citation :$requete= "SELECT nom_seigneur FROM $table_cp WHERE nom_seigneur='$login'";
$resultat_login= mysql_numrows(mysql_query($requete)) or die('erreur selection login'.mysql_error());

$requete="select nom_mage from $table_cp where nom_mage='$mage'";
$resultat_mage= mysql_numrows(mysql_query($requete)) or die('erreur selection mage'.mysql_error());

$requete="select nom_mage from $table_cp where empire='$empire'";
$resultat_empire= mysql_numrows(mysql_query($requete)) or die('erreur selection empire'.mysql_error());

if (($resultat_login > 0) && ($resultat_mage > 0) && ($resultat_empire > 0))
{
$reponse ='<p>Tout existe</p>';
$nb_faux ++;
}
else if ($resultat_login > 0)
{
$reponse ='<p>Seigneur déja existant</p>';
$nb_faux ++;
}
else if ($resultat_mage > 0)
{
$reponse ='<p>Mage déja existant</p>';
$nb_faux ++;
}
else if ($resultat_empire > 0)
{
$reponse ='<p>empire déja existant</p>';
$nb_faux ++;
}

Ceci me parait beaucoup plus complet que ton test.

En effet, ton test sur les empires et noms de mages te retournera "deja existant" si et seulement si , la personne à saisie le même nom de seigneur.

J'attend ton retour, DarkAngel.


RE: problème de requête - Reaven - 30-10-2007

OK je vais tester mais normalement ça devrait marche.

Je te tiens au courant


RE: problème de requête - Reaven - 30-10-2007

Voilà toute la condition avec la connection a mysql et les 3 requetes et les 3 conditions if et else if

Code PHP :
<?php 
if($nb_faux >= 0)
{
include(
"config.php");
$connexion= mysql_connect($hote,$utilisateur,$mdp) or die('<br/>Connexion au serveur impossible.<br/> Contactez le Webmaster si l\'erreur n\'est pas résolue.<br/>');
$choix_db= mysql_select_db($data_base) or die('<br/>Selection de la base de donnée echouée.<br/> Contactez le Webmaster si l\'erreur n\'est pas résolue.<br/>');
$requete= "SELECT nom_seigneur FROM $table_cp WHERE nom_seigneur='$login'";
$resultat_login= mysql_numrows(mysql_query($requete)) or die('erreur selection login'.mysql_error());

$requete="SELECT nom_mage FROM $table_cp WHERE nom_mage='$mage'";
$resultat_mage= mysql_numrows(mysql_query($requete)) or die('erreur selection mage'.mysql_error());

$requete="SELECT nom_empire FROM $table_cp WHERE nom_empire='$empire'";
$resultat_empire= mysql_numrows(mysql_query($requete)) or die('erreur selection empire'.mysql_error());

if ((
$resultat_login > 0) && ($resultat_mage > 0) && ($resultat_empire > 0))
{
$reponse ='<p>Tout existe</p>';
$nb_faux ++;
}
else if (
$resultat_login > 0)
{
$reponse ='<p>Seigneur déja existant</p>';
$nb_faux ++;
}
else if (
$resultat_mage > 0)
{
$reponse ='<p>Mage déja existant</p>';
$nb_faux ++;
}
else if (
$resultat_empire > 0)
{
$reponse ='<p>Empire déja existant</p>';
$nb_faux ++;
}
}


Mais j'ai un problème avec la requete pour le nom_mage.
Ca me renvoit toujours le mysql_error().

Tu as une solution Kheldar?

Merci


RE: problème de requête - Kheldar - 30-10-2007

Certes ca te renvoie mysql_error().

Mais lequel ?

- erreur selection login
- erreur selection mage
- erreur selection empire ?

et quel est le message d'erreur ?


RE: problème de requête - pascal - 30-10-2007

fait echo $requete; et testes la dans phpmyadmin pour voir.

A+

Pascal


RE: problème de requête - Reaven - 30-10-2007

Kheldar l'erreur que ça affiche c'est "erreur selection mage".

pascaletje, comment fais-tu pour ouvrir un fichier php avec phpMyadmin.
Moi je le fais avec localhost.

Merci


RE: problème de requête - Mysterarts - 30-10-2007

Nan, tu n'ouvre pas un fichier php avec phpmyadmin, tu peux tester seulement la requète SQL :
Pour cela, tu vas dans un phpmyadmin (dis nous quel plateforme tu utilise : easyphp, wamp...) puis une fois dans phpmyadmin, tu cliques sur la bonne base de données (celle qui contient la table que tu veux tester), puis tu clique sur SQL dans les onglets en haut, là tu copies la requête que tu veux tester...
Attention : il ne faut copier que la requète, c'est à dire ce qu'il y a entre guillemet ds ton code php, comme par exemple :
SELECT nom_empire FROM $table_cp WHERE nom_empire='$empire'

Si tu veux plus d'explication, je peux faire plus clair Smile

Mysterarts