aide mysql_fetch_array

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : aide mysql_fetch_array

par Patriboom » 06 oct. 2007, 16:02

Attention, si tu veux faire $TableauResult->nom c'est plutôt mysql_fetch_object ;)
Pour l'utilisation de mysql_real_escape_string, c'est de la facon suivante:
$string = mysql_real_escape_string($_POST['string']);
Oups!! S'cusez :oops:

par Tracker » 06 oct. 2007, 13:18

Faut arrêter d'écrire ça
if ($TableauResult->nom = $name) 
La comparaison en php c'est l'opérateur == ou (=== pour l'indentité)
:wink:

Et puis tu as d'autres problèmes:
mysql_fetch_array() te retourne un tableau ou false si rien n'a été lu.
Donc
$TableauResult->nom devrait plutot se transformer en $TableauResult['nom'], mais vu que $TableauResult peut être égale à false, $TableauResult['nom'] ne veut rien dire.

remplace le test par:
...
$result= mysql_query("SELECT `nom` FROM `rpg` WHERE `nom` LIKE '".mysql_escape_string($name)."'");

if (mysql_num_rows($result) != 0) 
{ 
   echo "votre nom est deja utiliser!";
} 
...
a+

par Evoy » 06 oct. 2007, 13:16

Alors jai fais comme vous m'avez dit, helas sa me retourne toujours que le pseudo existe peu importe ce que jecrit!!
<?php
include 'config.php';
$name = $_POST['prenom'];
$char= $_POST['choix'];



$result= mysql_query("SELECT `nom` FROM `rpg` WHERE `nom` LIKE' $name';");

$TableauResult = mysql_fetch_array($result); 
if ($TableauResult->nom = $name)  { 

echo "votre nom est deja utiliser!";
}

else 
{
switch ($char) 
{

case "Archer": 
mysql_query("INSERT INTO rpg VALUES('', '$name', '$char', '10', '35', '10', '20')");
break;

case "Barbare": 
mysql_query("INSERT INTO rpg VALUES('', '$name', '$char', '25', '10', '5', '25')"); 
break;

case "Mage": 
mysql_query("INSERT INTO rpg VALUES('', '$name', '$char', '10', '5', '35', '13')");
break;
}
}
?>

par momox » 06 oct. 2007, 10:36

Attention, si tu veux faire $TableauResult->nom c'est plutôt mysql_fetch_object ;)
Pour l'utilisation de mysql_real_escape_string, c'est de la facon suivante:
$string = mysql_real_escape_string($_POST['string']);
Voila ;)
Sinon, avez mysql_fetch_array, c'est de la facon suivante:
$result = mysql_fetch_array($query); // retourne la premiere ligne de resultats de la requete
if($result['filed'] != $var) {
//on effectue le traitement si l'enregistrement n'est pas présent
}
else {
//on affiche l'erreur
}
Dans la condition if, j'ai fait une inégalité, car si mysql_real_escape_string renvoie une erreur, ton enregistrement ne sera pas effectué tandis qu'avec ta méthode si la fonction renvoyait une erreur ton script effectuait l'enregistrement, ce qui cause un problème ;)
Sinon, il y a l'autre méthode, via mysql_num_rows qui te renvoie le nombre de lignes retournées par la requete, qui me parait plus adaptée a ton cas ;)
Jette un oeil sur la doc php ;)
@+

par Patriboom » 06 oct. 2007, 04:44

Pour exploiter le tableau mysql_fetch_array, tu fais ainsi:

$TableauResult = mysql_fetcharray($result);
if ($TableauResult->nom == $name)  {
les choses à faire si la condition est remplie
}


Donc, deux corrections: la comparaison se fait par signes d'égalité doubles ( == ) et l'utilisation du tableau, en réclamant chaque élément par son extension. Tout est dans la fonction IF ci-haut.

par Evoy » 06 oct. 2007, 00:59

Merci pour ta reponse je vais lire tout de suite comment utiliser mysql_real_escape_string mais , si il renvoi un tableau alors quest que jpourrais utiliser pour que mon script marche :( ??? avec exemple si possible

Merci davance

par momox » 05 oct. 2007, 23:48

La function mysql_fetch_array comme son nom l'indique renvoie un tableau ;)
Autre chose, il faut proteger tes entrées utilisées dans des requetes SQL car tu ne peux en controller le contenu, a cet effet je te conseille d'utiliser mysql_real_escape_string :)
@++

aide mysql_fetch_array

par Evoy » 05 oct. 2007, 23:38

Bonjour j'aimerais savoir quest qui cloche ac mon script, car meme si le nom existe pas sur la table i va dire qui existe.! Merci d'avance
<?php
include 'config.php';
$name = $_POST['prenom'];
$char= $_POST['choix'];

$result= mysql_query("SELECT `nom` FROM `rpg` WHERE `nom` LIKE' $name';");

if (mysql_fetch_array($result) = $name)

{
echo "votre nom est deja utiliser!";
}

else 
{
switch ($char) 
{

case "Archer": 
mysql_query("INSERT INTO rpg VALUES('', '$name', '$char', '10', '35', '10', '20')");
break;

case "Barbare": 
mysql_query("INSERT INTO rpg VALUES('', '$name', '$char', '25', '10', '5', '25')"); 
break;

case "Mage": 
mysql_query("INSERT INTO rpg VALUES('', '$name', '$char', '10', '5', '35', '13')");
break;
}
}
?>