erreur : Trop peu de paramètre,1 attendu

Eléphant du PHP | 89 Messages

31 mars 2006, 16:30

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>

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

31 mars 2006, 16:32

Salut,

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

ViPHP
ViPHP | 2144 Messages

31 mars 2006, 16:34

Et multi-postage en prime :D
Une petite lecture des règles du forum s'impose.

Eléphant du PHP | 89 Messages

31 mars 2006, 16:36

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:

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

31 mars 2006, 16:46

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

Eléphant du PHP | 89 Messages

31 mars 2006, 16:55

[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é.

Eléphant du PHP | 312 Messages

31 mars 2006, 16:58

C'est pas un problème de quotes ?
SELECT COUNT(NumTrans) FROM Archive WHERE Corres="DUCHEDA"

Eléphant du PHP | 89 Messages

31 mars 2006, 16:59

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

Eléphant du PHP | 89 Messages

31 mars 2006, 17:02

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