Erreur de script

Eléphanteau du PHP | 11 Messages

29 août 2007, 01:27

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.
Image
Image

ViPHP
ViPHP | 5924 Messages

29 août 2007, 03:39

Bien sûr que non, mais je sens à plein nez l'erreur sql, suit les conseils de ce topic pour le débuggage.

Eléphanteau du PHP | 11 Messages

29 août 2007, 15:45

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'];
Image
Image

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

29 août 2007, 15:49

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 ...
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 11 Messages

29 août 2007, 16:31

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 :)
Image
Image

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

29 août 2007, 16:37

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é :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

ViPHP
ViPHP | 2287 Messages

29 août 2007, 16:39

$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 :-)
if(!@work()){ Nespresso(); } else { what(); }
______________________________

Eléphanteau du PHP | 11 Messages

29 août 2007, 16:50

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
Image
Image

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

29 août 2007, 17:16

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 ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 11 Messages

29 août 2007, 19:34

Je vais m'y pencher de ce pas ;)
Merci de vos conseils !
Image
Image