2010-07-26 4 views
0

Bonjour les gars, je suis coincé dans un point et j'ai besoin de votre aide. Je veux changer SQL QUERY pour chaque paramètre $ _GET. J'utilise ceci:Figurant SQL QUERY pour CHAQUE ISSET?

<? 
if (isset($_GET['page'])) { 
    $pageno = $_GET['page']; 
} else { 
    $pageno = 1; 
} // if 
$query = mysql_query("SELECT count(id) FROM m3_music_mp3"); 
$query_data = mysql_fetch_row($query); 
$numrows = $query_data[0]; 
$rows_per_page = 30; 
$lastpage  = ceil($numrows/$rows_per_page); 
$pageno = (int)$pageno; 
if ($pageno > $lastpage) { 
    $pageno = $lastpage; 
} // if 
if ($pageno < 1) { 
    $pageno = 1; 
} // if 
$limit = 'ORDER BY id DESC LIMIT ' .($pageno - 1) * $rows_per_page .',' .$rows_per_page; 
$query = mysql_query("SELECT * FROM m3_music_mp3 $limit"); 
?> 

Cela ne IF music.php page = 1 est défini $ query = "SELECT * FROM COMMANDE PAR m3_music_mp3 id DESC LIMIT X, X" mais je veux faire est si la musique .php? mot = A & page = 1 set $ query = "SELECT * FROM m3_music_mp3 OÙ titre comme id ORDER BY 'mot% de $' DESC LIMIT X, X"

j'ai essayé

if(isset($_GET['word']) && isset($_GET['page'])) { 
$limit .= 'WHERE....' 
} 

quelque chose aime mais ne fonctionne pas. Je vous remercie. et désolé pour le mauvais anglais & mauvaise connaissance de php de moi

Répondre

0

fondamentalement sAc a raison. mais vous pouvez réduire votre code. limite cause isnt ce travail schould option très bien: Modifier changé le bit de code pour être et testable contre la copie;)

<? 
if (isset($_GET['page'])) { 
    $pageno = $_GET['page']; 
} else { 
    $pageno = 1; 
} // if 
$limit = ""; 
    if(isset($_GET['word'])) { 
     $word = mysql_real_escape_string($_GET['word']); 

     $limit = " WHERE title LIKE '%$word%'" 
    } 
$query = mysql_query("SELECT count(id) FROM m3_music_mp3" . $limit); 
$query_data = mysql_fetch_row($query); 
$numrows = $query_data[0]; 
$rows_per_page = 30; 
$lastpage  = ceil($numrows/$rows_per_page); 
$pageno = (int)$pageno; 
if ($pageno > $lastpage) { 
    $pageno = $lastpage; 
} // if 
if ($pageno < 1) { 
    $pageno = 1; 
} // if 
$limit .= ' ORDER BY id DESC LIMIT ' .($pageno - 1) * $rows_per_page .',' .$rows_per_page; 
$query = mysql_query("SELECT * FROM m3_music_mp3 $limit"); 
?> 
+0

okay. Cela fonctionne aussi. Je vous remercie. mais maintenant la pagination ne fonctionne pas correctement la pagination fonctionne toujours avec toutes les données et non avec le nombre de lignes de titre: S –

+0

obtient le bit isset et le place AVANT $ query = mysql_query ("SELECT count (id) FROM m3_music_mp3"); modifier $ query = mysql_query ("SELECT count (id) FROM m3_music_mp3"); à $ query = mysql_query ("SELECT count (id) FROM m3_music_mp3". $ Limite); – teemitzitrone

0

Il devrait être:

if(isset($_GET['word'])) { 
    $word = mysql_real_escape_string($_GET['word']); 

    $limit = " WHERE title LIKE '%$word%' ORDER BY id DESC LIMIT " .($pageno - 1) * $rows_per_page .',' .$rows_per_page; 
} 
else 
{ 
    $limit = " ORDER BY id DESC LIMIT " .($pageno - 1) * $rows_per_page .',' .$rows_per_page; 
} 

$query = mysql_query("SELECT * FROM m3_music_mp3 $limit") or die(mysql_error()); 
+0

merci pour votre commentaire. ça fonctionne bien. mais comment puis-je augmenter $ _GET? utilise elseif (isset) chose devrait fonctionner? –

0

Votre solution devrait fonctionner correctement, peut-être vous avez juste besoin d'un espace avant où, comme = 'WHERE ... print. sur votre chaîne de requête finale pour voir où cela va mal.