probleme requête mais je vois pas ou!!!

coco_turbo
Invité n'ayant pas de compte PHPfrance

28 mai 2007, 15:22

bonjour,

je vien vous demander un pti cou de main car j'ai un problème dans une requête mais je ne voi po ou?

Code : Tout sélectionner

<? $numcolla = $_GET['numcol'] $sql = "Select * From collaborateur Where num_collaborateur = '" . $_GET['numcol'] . "' "; $sql_exe = mysql_query($sql) or die('Erreur : ' . mysql_error()); while($Tab = mysql_fetch_array($sql_exe)) { ?>
et la c'est la page :

Code : Tout sélectionner

<form action="envoi_ajout_col.php" method="post"> <? $numcolla = $_GET['numcol'] $sql = "Select * From collaborateur Where num_collaborateur = '" . $_GET['numcol'] . "' "; $sql_exe = mysql_query($sql) or die('Erreur : ' . mysql_error()); while($Tab = mysql_fetch_array($sql_exe)) { ?> <tr> <td width="300" align="left">Nom collaborateur : </td> <td width="200"><input name="nom_col" type="text" size="50" /><?php echo $Tab["nom_col"]; ?></td> </tr> <tr> <td width="300" align="left">Prénom collaborateur : </td> <td width="200"><input name="prenom_col" type="text" size="50" /><?php echo $Tab["prenom_col"]; ?></td> </tr> <tr> <td width="300" align="left">Service : </td> <? $sql = "Select * From services order by nom_service"; $sql_exe = mysql_query($sql) or die('Erreur : ' . mysql_error()); ?> <td width="200"> <? $ld = "<SELECT NAME='service'>"; $ld .= "<OPTION VALUE=0>Coisir un service</OPTION>"; while ( $row = mysql_fetch_array( $sql_exe)) { $numser = $row["num_service"]; $nomser = $row["nom_service"]; $ld .= "<OPTION VALUE='$numser'>$nomser</OPTION>"; } $ld .= "</SELECT>"; echo $ld ?> </td> </tr> <? } ?> </table><br /> <table width="500" border="0" cellpadding="0"> <tr> <td align="right"><input name="envoi" type="submit" value="Envoyer" /></td> <td align="left"><input name="reset" type="reset" value="Annuler" /></td> </tr> </form>
si qqun voit le problème

merci

Avatar du membre
ViPHP
ViPHP | 3008 Messages

28 mai 2007, 16:48

Fournis nous l'erreur que tu as.

Sinon je vois une erreur de syntaxe
$numcolla = $_GET['numcol'];
Il te manque le ;

coco_turbo
Invité n'ayant pas de compte PHPfrance

28 mai 2007, 18:00

Maintenant il me met ca :
Notice: Undefined index: numcol in d:\interventions\modif_col.php on line 25

Notice: Undefined index: numcol in d:\interventions\modif_col.php on line 27
merci

Avatar du membre
ViPHP
ViPHP | 3008 Messages

29 mai 2007, 22:03

Testes l'existence de la variable avec ISSET.

Là j'imagine que tu as cette erreur quand la variabel n'existe pas.

Eléphanteau du PHP | 13 Messages

31 mai 2007, 15:29

ta un peu trop d'espace, et ta pas vesoin d'utiliser les cote simple et double en même temps l'un ou l'autre.
essaye sa :
$sql= "Select *
		From collaborateur
                        Where num_collaborateur =".$_GET['numcol'];

		 

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

31 mai 2007, 16:08

pas vesoin d'utiliser les cote simple et double en même temps l'un ou l'autre.
Euh.... même si à priori ici ça ne change pas grand chose, l'explication peut prêter à confusion. En sql, les chaines de texte dans la requête (varchar, text, date, ...) doivent être délimitées par des apostrophes (évitez les guillemets!) en revanche, les nombres (int, double, ..) ne doivent pas en avoir.

La présence des apostrophes dans la requête (Where num_collaborateur = '".$_GET['numcol']."' ") peut donc être tout à fait justifié si num_collaborateur est une chaine (genre un matricule)

Voir les bonnes pratiques sql dans la FAQ :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

ViPHP
ViPHP | 1996 Messages

31 mai 2007, 23:10

Question pourquoi tu fais :
$numcolla = $_GET['numcol'];

$sql = "Select * From collaborateur Where num_collaborateur = '" . $_GET['numcol'] . "' "; 
et pas :?
$numcolla = $_GET['numcol'];

$numcolla = str_replace ("'", "",$numcolla); // ligne pour réduire les injections sql

$sql = "Select * From collaborateur Where num_collaborateur = '" . $numcolla . "' "; 
En plus, as tu dans ta barre d'adresse : http://tonsite.com?numcol=123
123 est un exemple bien sûr !!!
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr