probleme de requete

Eléphant du PHP | 89 Messages

13 janv. 2006, 15:31

bonjour ,
voici mon code :
$sqldate = "SELECT DateI,Utilisateur,Num1, COUNT(Num2) AS Max_Num2 FROM Historique GROUP BY Num1,DateI,Utilisateur ORDER BY Num1 DESC";

$nbchps=7;
	printf("<table border=1>\n");
	printf("<th>Numéro de spool</th>\n");
	printf("<th>Date dernière impression</th>\n");
	printf("<th>Utilisateur</th>\n");
	printf("<th>Total travaux par impression</th>\n");
	printf("<th>Echec par impression</th>\n");
	printf("<th>Heure d'impression du 1er travail</th>\n");
	printf("<th></th>");
		
	while(!$result->EOF) 
	{
		printf("<tr>\n");
		for ($i=0; $i<$nbchps; $i++)
		{
			//$i==0 correspond à la col num1
			//si on arrive au moment d'afficher dans la col num1
			//on rajoute un lien pour obtenir le détail de num1
			if ( $i==0 )
				//printf("<td>" . $result->fields[$i] . "<a href=sidetailphp.php>detail</a></td>\n");
				printf("<td><center><a href=sidetailphp.php?detail=" . $result->fields[$i] . "&limiteN=$limite&debutN=$debut&erreurN=$erreur&rafr=$rafr>" . $result->fields[$i] . "</a></center></td>\n");
				
			//affiche uniquement la date
			elseif ($i==1)
			{
				$datuniq = explode(' ',$result->fields[$i]);
				printf("<td><center>" . $datuniq[0] . "</center></td>\n");
			}
			//sinon si $i==4, autre requete. on affiche le résultat dans une 5ieme colonne
			elseif ( $i==4 ) 
			{
				//requete qui compte le nombre de diagn echoué
				$sqlerrdiagn = "SELECT COUNT(Diagnostic) FROM Historique WHERE Diagnostic<>0";
				$sqlerrdiagn .= " AND Num1 LIKE ".$result->fields[2];
				
				$resulterr = $conn->Execute($sqlerrdiagn);
				if (!$resulterr)
					print $conn->ErrorMsg();
				else
					printf( "\n<td><center>".$resulterr->fields[0]."</center></td>\n" );
			}
			elseif ($i==5)
			{
				$sqlheurun = "SELECT HeureI FROM Historique WHERE Num2=1 AND Num1= " . $result->fields[2]; 
				$resultheurun = $conn->Execute($sqlheurun);
				if(!$resultheurun)	
					print $conn->ErrorMsg();
				else
					printf( "\n<td><center>".$resultheurun->fields[0]."</center></td>\n" );
				
			} 
			elseif ($i==6)
			{
				printf("<td><center><INPUT type='checkbox' name='cocher[]' VALUE=%d></center></td>",$result->fields[2]);
			}	
			else
				printf("<td><center>" . $result->fields[$i] . "</center></td>\n");	
		}		
		$result->MoveNext();
		printf("</tr>\n");
	}
	printf("<br><br><br>\n");
	printf("</table>\n");
dans ce code tout marche sans probleme.

Maintenant je souhaite avec ma premiere requete afficher Num1 dans la premiere colonne de mon tableau donc je sélectionne Num1 en premier:
$sqldate = "SELECT Num1,DateI,Utilisateur, COUNT(Num2) FROM Historique GROUP BY Num1,DateI,Utilisateur ORDER BY Num1 DESC";
un soucis maintenant mes requete pour $i==4 et $i==5 donne une errreur et ne m'affiche rien, je ne comprend pas pourquoi, voici l'erreur que sa m'affiche!!!
[Microsoft][Pilote ODBC Microsoft Access] Trop peu de paramètres. 1 attendu.
quelqu'un pourrait il m'aider car il ne me semble pas qu'il y ait d'erreur dans mes requetes et je tombe sur ce probleme a chaque fois !!!
Aidez moi
Merci

Eléphant du PHP | 89 Messages

13 janv. 2006, 15:49

je suis désolé d'avoir posté ce message car j'ai finalement trouvé!!!

oui en fait c'était une erreur vraiment très bete je l'avoue!!!

car en fait en faisant les changement de position de Num1 j'ai oublié que j'utilisais cette variable dans mes autres requètes et donc que je n'avais pas fait toutes les modiffs !!!
Erreur que je fais très fréquemment désolé!!!

Je voudrais remercier toute l'équipe pour votre aide et pour la résolution de ce probleme je voudrais remercier tout particulierement le post de ouckileou:
Et là il ne dit pas qu'il y en a trop, il dit qu'il n'y en a pas assez Laughing
Et qu'il en attend 1... donc a priori tu ne lui en passes aucun

Essaye donc d'afficher le code SQL de la requête que tu envoies, pour voir ce qu'il y a dedans
PHP:
$value13 = "UPDATE Flags SET FlagValue=0 WHERE UserID=$ID AND FlagID=30026" ;
echo $value13;

A tous les coups ta variable $ID est vide Wink
dans le sujet sql & bases de données.

Ce conseil m'a aidé à trouver la solution.

Oui a l'avenir avant de poster je chercherais dans les post si je trouve la solution ou pas !!!

MERCI encore