uso di switch

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
43
Massa, Italy
Salve, volevo sapere per ridurre codice e levando molti if else if.
mi sapete dire come posso fare qui ridurre il codice con uno switch in stringa.
ecco il codice:
PHP:
<?php


$uid = (isset($_GET['uid'])) ? trim((int)$_GET['uid']) : '';  // visualizzo query utenti
$cat = (isset($_GET['cat'])) ? trim((int)$_GET['cat']) : ''; // visualizzo query categorie.

$pagina = (isset($_GET["pagina"])) ? trim ((int)$_GET["pagina"]): '';

	if(empty($uid) && empty($cat))
	{
	  $pag = new Paginazione("SELECT utenti._user as _user , news_categorie.titolo as _cat , news.* FROM utenti 
       INNER JOIN news 
          ON utenti.id = news._userid INNER JOIN news_categorie
          ON news_categorie.id = news._catid",$cfg_news_admin, $pagina);

	}
	elseif($cat) 
	{
		   
        $pag = new Paginazione("SELECT utenti._user as _user , news_categorie.titolo as _cat , news.* FROM utenti 
       INNER JOIN news 
          ON utenti.id = news._userid INNER JOIN news_categorie
          ON news_categorie.id = news._catid WHERE _catid=".$cat."",$cfg_news_list_cat_admin,$pagina);

	
	}
	else
	{
	  $pag = new Paginazione("SELECT utenti._user as _user , news_categorie.titolo as _cat , news.* FROM utenti 
       INNER JOIN news 
          ON utenti.id = news._userid INNER JOIN news_categorie
          ON news_categorie.id = news._catid  WHERE news._userid = ".$uid."",$cfg_news_list_utenti_admin, $pagina);
	}
	
	?>

avete idee come fare?

grazie mille e buona giornata
 
Non vedo necessario lo switch, piuttosto il riassumere le query quasi uguali si, te l'ho un po sistemato prova cosi
PHP:
$pagina = isset($_GET["pagina"]) ? (int)$_GET["pagina"] : '';
$cfg_current = $cfg_news_admin;

$query = "SELECT utenti._user as _user , news_categorie.titolo as _cat , news.* FROM utenti 
       INNER JOIN news 
          ON utenti.id = news._userid INNER JOIN news_categorie 
          ON news_categorie.id = news._catid ";

if(!empty($_GET['cat'])) {
          $query.="WHERE _catid=".(int)$_GET['cat'];
          $cfg_current = $cfg_news_list_cat_admin;
}elseif(!empty($_GET['uid'])){
          $query.="WHERE news._userid=".(int)$_GET['uid'];
          $cfg_current = $cfg_news_list_utenti_admin;
}
    
    $pag = new Paginazione($query,$cfg_current, $pagina);
 

Discussioni simili