J'ai un souci

Le code que je souhaite changer est celui-ci:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
			 
if( stristr(strtoupper($sql), 'SELECT') == true ) 
{
$i = 0;
// On construit notre $resArray
while( $row = mysql_fetch_assoc($this->result) ) {			        
     resArray[$i] = $row;
     ++$i;
}//end while
// On libere la ressource
mysql_free_result($this->result);
return $resArray;
Sachant qu'il peut y avoir plusieurs type de requêtes (describe, show et explain) j'aurai préféré une construction comme_suit:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
						
{	// On teste le type de requête ('select','show','explain','describe')
	$found = array_search( strtoupper($this->query) ,  array('select','show','explain','describe') ) ;

	user_error("Found[".$found."]" , E_USER_NOTICE) ;

	switch( $found )
	{	case 'SELECT' 	:	$i = 0;
				 		// On construit notre $resArray
				 		while( $row = mysql_fetch_assoc($this->result) ) 
						{	$resArray[$i++] = $row;
				 		}	//end while
						// On libere la ressource
					       $this->mysqlFreeResult($this->result) ;
					       return($resArray) ;
					       break;
													
		case 'SHOW'		:	
		case 'EXPLAIN'	:
		case 'DESCRIBE'	:	// on informe juste que c'est bien passer
			      							return true;
		default			:	user_error("Request SQL string not found[". $this->query ."] !" , E_USER_ERROR) ;
}//end switch
	
}
Je ne parviens pas à avoir l'equivalent du code en gras du haut
vers le code en gras du bas

Actuellement, je tombe dans la clause DEFAULT du SWITCH !

Si je comprends bien, le problème se situe au niveau de la longueur du string comparé !

Quelqu'un peut'il me monter la syntaxe correcte TOUT EN PERSEVANT la structure decisionnelle sous forme de SWITCH..... parce que au coup par coup et X if en séquence, je peux le faire !
Je ne suis pas opposé à une structure plus compliquée mais qui fonctionne, of course....

Merci à tous