Page 1 sur 1

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

Posté : 28 mai 2007, 15:22
par coco_turbo
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

Posté : 28 mai 2007, 16:48
par charabia
Fournis nous l'erreur que tu as.

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

Posté : 28 mai 2007, 18:00
par coco_turbo
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

Posté : 29 mai 2007, 22:03
par charabia
Testes l'existence de la variable avec ISSET.

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

Posté : 31 mai 2007, 15:29
par Punisher
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'];

		 

Posté : 31 mai 2007, 16:08
par Ryle
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 :)

Posté : 31 mai 2007, 23:10
par Aureusms
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 !!!