Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/07/2006, 17h17   #1
Membre habitué
 
Inscription : mai 2003
Messages : 361
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 361
Points : 111
Points : 111
Par défaut [SQL] Problème avec liste déroulante et select

Bonsoir,
le problème c'est que lorsque je ne choisis rien dans ma liste déroulante, la valeur par défaut est vide; maintenant lorsque j'envoie cette valeur vide dans la requete j'ai l'erreur suivante:
Code :
Array ( [jour] => [heure] => [NumNat] => [NumClient] => [NumDecl] => [description] => [envoi] => Valider [MM_insert] => form1 ) Erreur de syntaxe près de 'LIMIT 0, 2' à la ligne 1
Au passage, la valeur valeur par défaut de champ NumDecl est 0

Comment faire pour contourner le problème??
Merci.
cari est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 17h22   #2
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
Bonjour
Cette erreur est une erreur sur une requête SQL.
Tu ne nous donnes que la sortie, on ne va pas pouvoir en faire grand chose.
Un ou deux petits bouts de code judicieusement choisis nous seraient très utiles.
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 19h07   #3
Membre habitué
 
Inscription : mai 2003
Messages : 361
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 361
Points : 111
Points : 111
requete:
Code :
$query_rsincident = "SELECT  I.NumInc, I.jourAppel, I.heure, I.NumNat, I.description, I.NumDecl, D.NumDecl, D.Nom, C.NumCli, I.NumCli, C.Raison_sociale, N.NumNat, N.nature  FROM incident as I, client as C, declarants as D, nature as N WHERE C.NumCli=I.NumCli and D.NumDecl = I.NumDecl and I.NumNat= N.NumNat  and  I.NumDecl  = ".$NumDecl." ";
liste déroulante:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 <td>Déclarant</td>
            <td> <select name="NumDecl" id="NumDecl">
			      <option value="" ><option>
                <?php
					do {  
				  ?>
 
				<option value="<?php echo $row_rsdecl['NumDecl']?>"><?php echo $row_rsdecl['Nom']; ?>&nbsp;&nbsp;<?php echo $row_rsdecl['Prenom']; ?></option>
                <?php
						} while ($row_rsdecl = mysql_fetch_assoc($rsdecl));
 						 $rows = mysql_num_rows($rsdecl);
 						 if($rows > 0) {
      					mysql_data_seek($rsdecl, 0);
	  					$row_rsdecl = mysql_fetch_assoc($rsdecl);
 						 }
				?>
              </select> </td>
cari est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 19h13   #4
Membre habitué
 
Inscription : mai 2003
Messages : 361
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 361
Points : 111
Points : 111
$NumDecl c'est:

Code :
1
2
3
4
5
6
7
if  (!isset($_POST['NumDecl']))     
             {
	$NumDecl=trim($_GET['NumDecl']);
	}
else
   {	$NumDecl=trim($_POST['NumDecl']);
  }
cari est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 19h22   #5
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
et où est-ce que tu passes ta requête ?
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 19h28   #6
Membre habitué
 
Inscription : mai 2003
Messages : 361
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 361
Points : 111
Points : 111
1/- $NumDecl vient d'un formulaire form1 (c'est le nom de la liste déroulante)
2/-avec un GET, j'envoie les données de form1 dans le formulaire recherchclient.php
C'est sur ce formulaire qu'il ya la requete .

je ne sais pas si j'ai répondu à :
Citation:
et où est-ce que tu passes ta requête ?
cari est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 19h30   #7
Membre habitué
 
Inscription : mai 2003
Messages : 361
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 361
Points : 111
Points : 111
ce qui est là, c'est que quand on selectionne une valeur dans la liste déroulante, il n'ya pas de problème!!

MAis quznd, c'est le vide de la liste déroulante qui va dans la requete, c'est à ce niveau qu'il ya problème.
cari est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 19h33   #8
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
Tu fais sans doute un mysql_query quelque part, est-ce qu'on peut le voir ?
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 19h39   #9
Membre habitué
 
Inscription : mai 2003
Messages : 361
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 361
Points : 111
Points : 111
Code :
1
2
3
4
 
$query_limit_rsincident = sprintf("%s LIMIT %d, %d", $query_rsincident, $startRow_rsincident, $maxRows_rsincident);
$rsincident = mysql_query($query_limit_rsincident, $connection) or die(mysql_error());
$row_rsincident = mysql_fetch_assoc($rsincident);
cari est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 19h42   #10
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
Tu peux modifier ton "or die" pour afficher aussi $query_limit_rsincident ? Comme dans ma signature (ça sera plus facile pour trouver des erreurs dans ta requête)
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 19h56   #11
Membre habitué
 
Inscription : mai 2003
Messages : 361
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 361
Points : 111
Points : 111
Code :
echo ( $query_rsincident);
donne:


Code :
1
2
3
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-7\www\suivi_incident\recherchincident.php on line 51
SELECT I.NumInc, I.jourAppel, I.heure, I.NumNat, I.description, I.NumDecl, D.NumDecl, D.Nom, C.NumCli, I.NumCli, C.Raison_sociale, N.NumNat, N.nature FROM incident as I, client as C, declarants as D, nature as N WHERE C.NumCli=I.NumCli and D.NumDecl = I.NumDecl and I.NumNat= N.NumNat and I.NumDecl =
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-7\www\suivi_incident\recherchincident.php on line 62
cari est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 20h02   #12
Membre habitué
 
Inscription : mai 2003
Messages : 361
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 361
Points : 111
Points : 111
lorsque la liste déroulante n'est pas vide, je n'ai aucune érreur!!!

l'erreur apparait lorsqu'elle est vide, c'est a dire aucun éléments n'est sélectionné!
cari est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 20h15   #13
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
ta requête se termine par "I.NumDecl=" et rien derrière, c'est à ça que ça correspond quand rien n'est sélectionné ?
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 20h19   #14
Membre habitué
 
Inscription : mai 2003
Messages : 361
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 361
Points : 111
Points : 111
oui
cari est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 20h34   #15
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
Citation:
Envoyé par cari
oui
et... ? tu voudrais mettre 0 à la place c'est ça ?

Tu donnes ce code-là :
Code :
1
2
3
4
5
6
7
if  (!isset($_POST['NumDecl']))     
             {
	$NumDecl=trim($_GET['NumDecl']);
	}
else
   {	$NumDecl=trim($_POST['NumDecl']);
  }
Il faut te décider entre POST et GET. Soit ton formulaire est en POST (de préférence), soit il est en GET. Pas la peine de tester les deux. Je vais supposer qu'il est en POST :
Code :
1
2
3
4
5
6
7
8
9
if  (isset($_POST['NumDecl'])) {
  $NumDecl=trim($_GET['NumDecl']);
  if ($NumDecl=="") {
    $NumDecl = 0;
  }
}
else {
  $NumDecl=0;
}
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 20h52   #16
Membre habitué
 
Inscription : mai 2003
Messages : 361
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 361
Points : 111
Points : 111
il est en GET mon formulaire.

le problème c'est que c'est uen requete dans ma table, il n'ya pas de NumCli =0 et de plus, c'est pas le seul élément de la table!!
ce qui fais que lorsque pour les autres champs (exemple : NumCli et NumNat ,je suis le meme raisonnemnemt, j'ai des pas les résultats escomptés, la requete ne renvoit plus d'élements!

Voici la requete complète:
Code :
$query_rsincident = "SELECT  I.NumInc, I.jourAppel, I.heure, I.NumNat, I.description, I.NumDecl, D.NumDecl, D.Nom, C.NumCli, I.NumCli, C.Raison_sociale, N.NumNat, N.nature  FROM incident as I, client as C, declarants as D, nature as N WHERE C.NumCli=I.NumCli and D.NumDecl = I.NumDecl and I.NumNat= N.NumNat  and  I.NumDecl  = ".$NumDecl."  and  I.NumCli = ".$NumClient." and  I.NumNat  = ".$NumNat." and  I.jourAppel like '%" .$jour."%' and I.heure  like '%" .$heure."%'  and I.description like '%" .$description."%'   ";
cari est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h21.


 
 
 
 
Partenaires

Hébergement Web