Posez votre question Signaler

Erreur SQL Warning: mysql_fetch_array() [Résolu]

Goultard - Dernière réponse le 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>
Lire la suite 

Erreur SQL Warning: mysql_fetch_array() »

4 réponses
Réponse
+0
moins plus
J'ai reglé ce problème, mais apparemment le script est bourré d'erreurs,

quelqu'un pour m'aider a en trouver ?
Ajouter un commentaire
Réponse
+0
moins plus
Hum verifie tes quotes, fin d'instruction etc...
L'erreur provient probablement de la...
D'ici la je cherche^^
Ajouter un commentaire
Réponse
+0
moins plus
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,
Ajouter un commentaire
Réponse
+0
moins plus
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)
Ajouter un commentaire
Ce document intitulé « Erreur SQL Warning: mysql_fetch_array() » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?