Page 1 sur 1

erreur : Trop peu de paramètre,1 attendu

Posté : 31 mars 2006, 16:30
par shen
pourriez vous m'aider, j'ai un soucis et comprends pas pourquoi!!!

alors à partir d'un formulaire je fait une recherche en sélectionnant dans ma liste déroulante, truc tout simple mais ma requete ne passe pas et je ne trouve pas l'erreur, le regard de quelqu'un d'autre sur mon programme pourra peut betre m'aider!!!

l'erreur qui s'affiche :
[Microsoft][Pilote ODBC Microsoft Access] Trop peu de paramètres. 1 attendu.
mon code : la page d'acceuil ou il y a déjà l'affichage de données récupéré dans une base access et une liste déroulante qui permet de lancer la recherche.

indexfax.php
<HTML> 
<HEAD> 
<TITLE>Accueil</TITLE>
<META HTTP-EQUIV='Refresh' CONTENT='60'>
</HEAD>

<BODY BGCOLOR=#CCCCFF>
<table>
<tr><td>
<CENTER>
<FORM ACTION="searchbycorres2.php" METHOD="GET">
<H4>Recherche par code correspondant</H4>
Choisissez un code correspondant : 
<?php
require("listCC.php");
print $listCC;
?>
<BR><BR>
<INPUT TYPE="submit" NAME="recherche" VALUE="Lancer la recherche">
</CENTER>
</FORM>
</td>
<td>&nbsp;</td>
<td>
<CENTER>
<H1>TRANSMISSIONS</H1>

<?php

//connexion à la base
require("faxconn.php");

//on récupère les valeurs des variable limit et debut pour la pagination

//variable permettant de savoir le nombre de résultats à afficher sur la page!!!
if (isset($_GET['limit']))	$limit =trim(htmlspecialchars(addslashes($_GET['limit'])));
else	$limit=10;

//variable contenant le numéro du résultat à afficher en 1er dans la page!!!
if (isset($_GET['debut']))	$debut = trim(htmlspecialchars(addslashes($_GET['debut'])));
else 	$debut = 0;

//récupère le tri
if ( isset( $_GET['tri'] ) )	$tri=trim(htmlspecialchars(addslashes($_GET['tri'])));
else	$tri="DESC";	

//requete sql pour récupérer les données de la table Archive
$sql="SELECT NumTrans,Date_t,Corres,Msg,Type FROM Archive ORDER BY Date_t $tri,Heure $tri";
//$sql="SELECT * FROM Archive";
$sqlcount="SELECT COUNT(NumTrans) FROM Archive";

//Execution des requêtes
$result=$conn->SelectLimit($sql,$limit,$debut);
$resultcount=$conn->Execute($sqlcount);

//Affichage des données de la table Archive
if(!$result)	print $conn->ErrorMsg();
else
{
	//Affichage du nombre de résultats.
	if(!$resultcount)	print $conn->ErrorMsg();
	else	printf("Nous avons ".$resultcount->fields[0]." fax enregistré(s) dans notre base.");
	
	//Affichage des données dans un tableau
	$nbchps = 5;
	printf("<table border=1>\n");
	/*0*/printf("<th>N°</th>\n");
	/*1*/printf("<th>Date & Heure<a href=indexfax.php?tri=&debut=$debut&limit=$limit><img src='croiss.bmp' border=0 title='tri croissant'></a>");
	     printf("<a href=indexfax.php?tri=DESC&debut=$debut&limit=$limit><img src='desc.bmp' border=0 title='tri décroissant'></a></th>\n");
	/*2*/printf("<th>Code Correspondant</th>\n");
	/*3*/printf("<th>Statut</th>\n");
	/*4*/printf("<th>Type transmission</th>\n");
	
	while(!$result->EOF)
	{
		printf("<tr>\n");
		for($i=0;$i<$nbchps;$i++)
		{
			if($i==1)
			{
				$sqlDH="SELECT Date_t,Heure FROM Archive WHERE NumTrans=".$result->fields[0];
				$resultDH=$conn->Execute($sqlDH);
				printf("<td><center>&nbsp;".$resultDH->fields[0]." à ".$resultDH->fields[1]." </center></td>");
			}
			else	printf("<td><center>&nbsp;" . $result->fields[$i] . "</center></td>\n");
		}
		$result->MoveNext();
		printf("</tr>\n");
	}
	printf("<br><br><br>\n");
	printf("</table>\n");
}
print ("<br>");

$fin = $debut+$limit;
//indexation pour l'affichage des résultat, page par page	

//calcul du nombre de pages à afficher
$nbpage = ceil($resultcount->fields[0]/$limit);

if ($debut > 1)
	printf ("<a href=indexfax.php?limit=$limit&debut=".($debut-$limit)."> << </a>");
if ($nbpage > 1)
{
	for($z = 1; $z <= $nbpage; $z++)
		printf ("<a href=indexfax.php?limit=$limit&debut=".(($z-1)*$limit).">". $z." </a>");
}
if ($fin < $resultcount->fields[0])
	printf ("<a href=indexfax.php?limit=$limit&debut=".($fin)."> >> </a>");

?>
<br>
</CENTER>
</td>
</table>
</BODY>
</HTML>
cette partie marche très bien tout s'affiche et je comprends vraiment pas car dans ma deuxieme partie je fais la meme chose sauf que je récupère une donnée dans un formulaire pour faire ma requete et sa marche pas :

2ieme partie de mon code:searchbycorres.php
<HTML>
<HEAD>
<TITLE>Recherche par code correspondant</TITLE>
<META HTTP-EQUIV='Refresh' CONTENT='60'>
</HEAD>
<BODY BGCOLOR=#CCCCFF>
<?php
require('faxconn.php');

//on récupère la valeur de la liste déroulante
if(isset($_GET['ListCC']))	$codeC = trim(htmlspecialchars(addslashes($_GET['ListCC'])));

//valeur pour la pagination
if(isset($_GET['limit']))	$limit = trim(htmlspecialchars(addslashes($_GET['limit'])));
else	$limit = 10;

if(isset($_GET['debut']))	$debut = trim(htmlspecialchars(addslashes($_GET['debut'])));
else	$debut = 0;

//valeur pour déterminer le sens du tri
if(isset($_GET['tri']))		$tri = trim(htmlspecialchars(addslashes($_GET['tri'])));
else	$tri = "DESC";

//Requete sql 
$sqlcc = "SELECT NumTrans,Date_t,Msg,Type FROM Archive WHERE Corres=".$codeC." ORDER BY Date_t ".$tri.",Heure ".$tri;
$sqltot = "SELECT COUNT(NumTrans) FROM Archive WHERE Corres=".$codeC; // pour la pagination

//Execution des requetes
$resultcc = $conn->SelectLimit($sqlcc,$limit,$debut);
$resulttot = $conn->Execute($sqltot);

if(empty($codeC))	printf("<H5>Veuillez sélectionner un code correspondant dans la liste déroulante pour la recherche!!!</H5>");
else
{
	if($resulttot)		printf("<H5>Recherche des transmissions du <i>code correspondant</i> ".$codeC."</H5>");
	else	print $conn->ErrorMsg();
	
	if(!$resultcc)	print $conn->ErrorMsg();
	else
	{
		//Affichage des données dans un tableau
		$nbchps = 4;
		printf("<table border=1>\n");
		/*0*/printf("<th>N°</th>\n");
		/*1*/printf("<th>Date & Heure<a href=searchbycorres2.php?tri=&debut=$debut&limit=$limit><img src='croiss.bmp' border=0 title='tri croissant'></a>");
		     printf("<a href=searchbycorres2.php?tri=DESC&debut=$debut&limit=$limit><img src='desc.bmp' border=0 title='tri décroissant'></a></th>\n");
		/*2*/printf("<th>Statut</th>\n");
		/*3*/printf("<th>Type transmission</th>\n");
		
		while(!$resultcc->EOF)
		{
			printf("<tr>\n");
			for($i=0; $i < $nbchps;$i++)
			{
				printf("<td><center>&nbsp;" . $resultcc->fields[$i] . "</center></td>\n");
			}
			$resultcc->MoveNext();
			printf("</tr>\n");
		}
		printf("<br><br><br>\n");
		printf("</table>\n");
	}
}

print ("<br>");
?>
</BODY>
</HTML>

Posté : 31 mars 2006, 16:32
par ouckileou
Salut,

la FAQ n'est pas faite pour poster une question ;)

Posté : 31 mars 2006, 16:34
par iclo
Et multi-postage en prime :D
Une petite lecture des règles du forum s'impose.

Posté : 31 mars 2006, 16:36
par shen
oui désolé c'est une erreur, j'étais en train de voir si je trouvais ou pas la réponse à mon probleme et j'ai oublié d'allé dans le bon forum, j'ai paniqué un peu et me demandais comment faire pour le supprimer, je croyais avoir réussi mais je crois que c'est toi qui l'a fait !!!
:oops: désolé et Merci de l'avoir déplacé!!! :lol:

Posté : 31 mars 2006, 16:46
par ouckileou
Affiche le SQL que tu envoies, le SQL généré

cette erreur revient souvent et il me semble que c'est un problème dans la requête tout simplement

Posté : 31 mars 2006, 16:55
par shen
[Microsoft][Pilote ODBC Microsoft Access] Trop peu de paramètres. 1 attendu.
SELECT COUNT(NumTrans) FROM Archive WHERE Corres=DUCHEDA

SELECT NumTrans,Date_t,Msg,Type FROM Archive WHERE Corres=DUCHEDA ORDER BY Date_t DESC,Heure DESC
[Microsoft][Pilote ODBC Microsoft Access] Trop peu de paramètres. 1 attendu.
voilà ce que sa m'affiche quand j'affiche les requete et je ne vois pas l'erreur.
j'avoue que c'est pas la premiere fois que j'ai cette erreur mais je ne me souviens pas de comment je l'ai réglé.

Posté : 31 mars 2006, 16:58
par Hermès
C'est pas un problème de quotes ?
SELECT COUNT(NumTrans) FROM Archive WHERE Corres="DUCHEDA"

Posté : 31 mars 2006, 16:59
par shen
Merci a toi Oukileou , j'ai trouvé l'erreur, t'a raison c'est une erreur de requete j'avais oublié de mettre les guillemet simple autour de ma chaine de caractere que je réupère.
Merci de m'avoir mis dans la bonne voie!!!

Posté : 31 mars 2006, 17:02
par shen
oui au moment ou tu postais ton post hermès j'étais en train de taper mon message pour dire que c'était un probleme de quote...

Merci à toi aussi Hermes, d'avoir trouvé mon erreur!!!