Erreur SQL Warning: mysql_fetch_array()

Résolu/Fermé
Goultard - 14 nov. 2008 à 18:26
 Goultard - 14 nov. 2008 à 20:50
Bonjour,

Je suis en train de programmer un genre de RPG sur navigateur (mais vite fait pour apprendre le PHP et le SQL quoi, un genre de TD :P), et je tombe sur un problème que j'ai du mal a résoudre,

J'ai donc mis un "or die" pour voir d'ou venait l'erreur SQL, je vous c/c le code de ma page ainsi que l'erreur retournée par MySQL :

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /mnt/146/sdb/a/6/pascal.miranda/Php2/battle.php on line 16
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 'force, defense, PV FROM RPG WHERE nom='Iop'' at line 1


<html>
<center>
<body background="paper.gif">
<?php
mysql_connect("localhost", "pascal.miranda", "voitures");
mysql_select_db("pascal_miranda");
if($_GET['perso'] != NULL OR $_GET['perso2'] != NULL)
{
$perso = $_GET['perso'];
$perso2 = $_GET['perso2'];
echo "Vous avez choisi le $perso <br />";
echo "Votre ennemi est le $perso2 <br /><br />";
if($perso ="Iop")
{
$stats_a = mysql_query("SELECT force, defense, PV FROM RPG WHERE nom='Iop'");
$stats_A = mysql_fetch_array($stats_a) or die (mysql_error());

echo 'Votre personnage est un ', $perso ,' il a ', $stats_A['force'] ,' force, ', $stats_A['defense'] ,' defense, ', $stats_A['PV'] ,'PV.<br />';

}
elseif($perso ="Sram")
{
$stats_a = mysql_query("SELECT force, defense, PV FROM RPG WHERE nom='Sram'");
$stats_A = mysql_fetch_array($stats_a);

echo 'Votre personnage est un ', $perso ,' il a ', $stats_A['force'] ,' force, ', $stats_A['defense'] ,' defense, ', $stats_A['PV'] ,'PV.<br />';


}
elseif($perso ="Sacri")
{
$stats_a = mysql_query("SELECT force, defense, PV FROM RPG WHERE nom='Sacri'");
$stats_A = mysql_fetch_array($stats_a);

echo 'Votre personnage est un ', $perso ,' il a ', $stats_A['force'] ,' force, ', $stats_A['defense'] ,' defense, ', $stats_A['PV'] ,'PV.<br />';
}
if($perso2 ="Iop")
{
$stats_b = mysql_query("SELECT force, defense, PV FROM RPG WHERE nom='Iop'");
$stats_B = mysql_fetch_array($stats_b);

echo 'Votre ennemi est un ', $perso2 ,' il a ', $stats_B['force'] ,' force, ', $stats_B['defense'] ,' defense, ', $stats_B['PV'] ,'PV.<br />';

}
elseif($perso2 ="Sram")
{
$stats_b = mysql_query("SELECT force, defense, PV FROM RPG WHERE nom='Sram'");
$stats_B = mysql_fetch_array($stats_b);

echo 'Votre ennemi est un ', $perso2 ,' il a ', $stats_B['force'] ,' force, ', $stats_B['defense'] ,' defense, ', $stats_B['PV'] ,'PV.<br />';

}
elseif($perso2 ="Sacri")
{
$stats_b = mysql_query("SELECT force, defense, PV FROM RPG WHERE nom='Sacri'");
$stats_B = mysql_fetch_array($stats_b);

echo 'Votre ennemi est un ', $perso2 ,' il a ', $stats_B['force'] ,' force, ', $stats_B['defense'] ,' defense, ', $stats_B['PV'] ,'PV.<br />';

}
$degats_A_B = $stats_A['force'] - $stats_B['defense'];
$degats_B_A = $stats_B['force'] - $stats_A['defense'];
$Tour = 1;

while ($stats_A['PV'] <1 OR $stats_B['PV'] <1 OR $Tour >= 50)
{
echo 'Tour n°', $Tour ,': <br /><br />';
echo '', $perso ,' attaque ', $perso2 ,' et lui inflige ', $degats_A_B ,' dégâts.<br />';
echo 'Il reste ', $stats_B['PV'] ,' PV a ', $perso2 ,'.<br />';
echo '', $perso2 ,' attaque ', $perso ,' et lui inflige ', $degats_B_A ,' dégâts.<br />';
echo 'Il reste ', $stats_A['PV'] ,' PV a ', $perso ,'.<br />';
$Tour++;
}
if ($stats_A['PV'] <= 0)
{
echo '', $perso ,' est mort, ', $perso2 ,' remporte la bataille !';
}
elseif ($stats_B['PV'] <= 0)
{
echo '', $perso2 ,' est mort, ', $perso ,' remporte la bataille !';
}
elseif ($Tour >= 50)
{
echo "Apres un long combat, les deux adversaires déclarent une égalité";
}
}
elseif ($_GET['perso'] == NULL OR $_GET['perso2'] == NULL)
{
?>
Veuillez remplir tout les champs !<br><br>
<a href="choisirperso.php">Cliquez ici pour retourner au choix des persos</a><br>
<?php
}
?>
</body>
</center>
</html>

4 réponses

J'ai reglé ce problème, mais apparemment le script est bourré d'erreurs,

quelqu'un pour m'aider a en trouver ?
0
Nuk Messages postés 177 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 5 mai 2009 20
14 nov. 2008 à 18:39
Hum verifie tes quotes, fin d'instruction etc...
L'erreur provient probablement de la...
D'ici la je cherche^^
0
Nuk Messages postés 177 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 5 mai 2009 20
14 nov. 2008 à 18:40
commça de visu c'est tres difficile..le mieux est que tu testes ligne par ligne :)
c'est le meilleu conseil a donner:)

Cordialement,
0
Après plusieurs vérifications, j'ai trouvé et corrigé 14 erreurs, dont plusieurs très graves !

ça marche maintenant très bien, si vous voulez tester c'est a cette adresse : http://pascal.miranda.free.fr/Php2/choisirperso.php

Bon, je suis un débutant en PHP (j'ai commencé il y a un an, mais je ne m'y suis remis sérieusement que mercredi), donc si vous avez des conseils ou des améliorations a suggérer pour mon boulot, vous pouvez me contacter par mail (steven.miranda AT laposte.net)
0