Page 1 sur 1

Erreur de script

Posté : 29 août 2007, 01:27
par OyoKooN
Bonsoir,

Je ne trouve pas la solution à mon problème. Est ce que la commande mysql_fetch_array est réservée au while ?

Voici mon code :
$resultat = mysql_query('SELECT * FROM recrutement WHERE d=\'' . $_GET['accepter_demande'] . '\'');
	$variables = mysql_fetch_array($resultat)
	$pseudo = $variables['pseudo'];
	$pays = $variables['pays'];
	$messagerie = $variables['messagerie'];
	mysql_query("INSERT INTO team VALUES('', '". $pseudo ."', 'Recrue', '". $pays ."', '". $messagerie ."', '', '', '', '', '', '', '', '6')"); 
Je veux récupérer mes variables $pseudo, $pays et $messagerie qui sont contenues dans la BDD.


Merci d'avance, OyoKooN.

Posté : 29 août 2007, 03:39
par Sékiltoyai
Bien sûr que non, mais je sens à plein nez l'erreur sql, suit les conseils de ce topic pour le débuggage.

Posté : 29 août 2007, 15:45
par OyoKooN
Ca ne m'aide pas...
J'ai toujours mon erreur. Le problème est que l'erreur me renvois à la ligne suivante : $pseudo = $donnees['pseudo'];

Posté : 29 août 2007, 15:49
par zeus
Afin de nous permettre de t'aider, il nous faudrait le message d'erreur.

C'est ce message d'erreur qui donne les indications sur l'erreur qui est survenue et qui nous permet de détecter ce qui ne fonctionne pas.

Actuellement, tout ce qui me choque dans ton code, c'est que tu utilises un

Code : Tout sélectionner

SELECT *
pour récupérer 3 champs. Il vaudrait mieux utiliser

Code : Tout sélectionner

SELECT pseudo, pays, messagerie ...

Posté : 29 août 2007, 16:31
par OyoKooN
J'ai fais des modifications dans mon code mais toujours la même erreur : Parse error: syntax error, unexpected T_STRING in /home.3/n/t/f/ntfteam/www/admin/gestion_recrutement.php on line 58

Voici mon code :
<?php
if (isset($_GET['accepter_demande']))
{
    $_GET['accepter_demande'] = addslashes($_GET['accepter_demande']);
    mysql_query('UPTADE recrutement SET etat="1" WHERE id=\'' . $_GET['accepter_demande'] . '\'');
	
	$requete = SELECT pseudo, pays, messagerie FROM recrutement WHERE id=\'' . $_GET['accepter_demande'] . '\''; //Ligne 58
	$retour = mysql_query($requete);	
	$donnees = mysql_fetch_array($retour)
	$pseudo = $donnees['pseudo'];
	$pays = $donnees['pays'];
	$messagerie = $donnees['messagerie'];
	mysql_query("INSERT INTO team VALUES('', '". $pseudo ."', 'Recrue', '". $pays ."', '". $messagerie ."', '', '', '', '', '', '', '', '6')");
}
?>
Ce problème m'énerve car je n'arrive pas à trouver la solution et ca me retarde pour mon site :?

Merci d'avance :)

Posté : 29 août 2007, 16:37
par Ryle
beuh moi ce qui me choque dans son code c'est d'avoir un champ qui s'appelle "d" ... devait facturer le nom des champs au caractère ce jour là, ou alors c'est pour anticiper un licenciement abusif et pourir la vie de ceux qui devront reprendre l'appli ;)
Ca et puis le fait de ne pas avoir les noms des champs dans le insert, histoire d'être sur de ne pas savoir dans quel champ on insère quoi et de tout planter si l'on créer un nouveau champ :)

Bon ca ne fais absolument pas avancer le schlimibili, le bischmili, bref le chose, mais si toutefois ça peut inciter les gens à penser maintenance et évolution, en se disant qu'un jour ils devront reprendre ce genre de code (dont ils seront parfois même l'auteur) et qu'il seront bien content de ne pas passer 3 jours à essayer de comprendre que "d" veut dire -bon sang mais c'est bien sur !- "accepter"... et bien ça sera toujours ça de gagné :)

Posté : 29 août 2007, 16:39
par Calimero
$requete = 'SELECT pseudo, pays, messagerie FROM recrutement WHERE id=\'' . $_GET['accepter_demande'] . '\''; //Ligne 58
Comme ça ça devrait mieux marcher (il manquait juste des quotes).

Au passage, fais gaffe au UPTADE à la ligne du dessus :D

Et si tu en es à t'arracher les cheveux, laisse refroidir un peu le code (et surtout ta tête...) et reviens sur ce code un peu plus tard. Parfois on trouve facilement les problèmes quand on arrête de s'acharner dessus :-)

Posté : 29 août 2007, 16:50
par OyoKooN
Les erreurs stupides... :oops:

Maintenant, l'erreur c'est déplacé à la ligne 62. La ligne est $pseudo = $donnees['pseudo'];
Et c'était ma première erreur. Pseudo n'est pas un mot clé donc je ne vois vraiment pas :(


EDIT : J'avais oublié un point virgule, honte sur moi. Donc c'est bon, ca fonctionne, merci pour votre aide les amis :D

Posté : 29 août 2007, 17:16
par zeus
Tant mieux pour ton soucis, mais je te conseille plus que vivement de te pencher sur les conseils de Ryle et de moi même.
Tu n'en vois peut être pas l'utilité maintenant, puisque ton code marche, mais tu t'en rendra compte un jour où un autre ;)

Posté : 29 août 2007, 19:34
par OyoKooN
Je vais m'y pencher de ce pas ;)
Merci de vos conseils !