Sortare Select ordonat dupa valoare din URL

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
nutzu123
Mesaje: 83

Sortare Select ordonat dupa valoare din URL

Salut!
Am un fisier index.php si as vrea sa fac sortare dupa: "data_ad", sau "hits". Si nu as vrea sa fac mai multe pagini php pentru fiecare, adica sa preia valooarea pt. order by direct din index.php.

Cod: Selectaţi tot

<?php
$query = 'SELECT * FROM tonuri ORDER BY data_ad DESC LIMIT 0,50';
$result = mysql_query($query);
while ($row=mysql_fetch_array($result))
{
$titluurl=str_replace(" ","-",$row['titlu']);
$titluurl=str_replace("'","-",$titluurl);
$titluurl=str_replace("`","-",$titluurl);
$titluurl=str_replace("[","",$titluurl);
$titluurl=str_replace("]","",$titluurl);
$titluurl=str_replace("(","",$titluurl);
$titluurl=str_replace(")","",$titluurl);
$titluurl=str_replace(",","-",$titluurl);
$titluurl=str_replace(".","-",$titluurl);
$titluurl=str_replace(":","-",$titluurl);
$titluurl=str_replace(";","-",$titluurl);
$titluurl=str_replace("?","",$titluurl);
$titluurl=str_replace("!","-",$titluurl);
$titluurl=str_replace("&","",$titluurl);
$titluurl=str_replace("@","",$titluurl);
$titluurl=str_replace("*","",$titluurl);
$titluurl=str_replace("^","",$titluurl);
$titluurl=str_replace("%","",$titluurl);
$titluurl=str_replace("#","",$titluurl);
$titluurl=str_replace("=","",$titluurl);
$titluurl=str_replace("+","-",$titluurl);
$titluurl=str_replace("<","",$titluurl);
$titluurl=str_replace(">","",$titluurl);
$titluurl=str_replace("|","",$titluurl);
$titluurl=str_replace("{","",$titluurl);
$titluurl=str_replace("}","",$titluurl);
$titluurl=str_replace("\"","",$titluurl);
$titluurl=str_replace("/","",$titluurl);
$titluurl=str_replace("~","-",$titluurl);
$id=$row['id'];
$titlu=$row['titlu'];
$categorie=$row['categorie'];
$data_ad=$row['data_ad'];
echo "<div class='tabs' id='" . $row['id'] . "'>
<i class='float-right'>".timp($data_ad)."</i>
&rsaquo; <a href='" . $urlsite . "/descarca/" . $row['id'] . "/ton-apel/" . $titluurl=strtolower($titluurl) . "' title='" . $row['titlu'] . "' class='tbs'>".title($titlu)."</a> - <i>" . $row['categorie'] . "</i></div>";}?>
Adica cand apas pe link-ul Sortare dupa accesari sa se schimbe pagina cu fisierele cele mai accesate si cand apas pe link-ul catre Sortare dupa data adaugarii tot la fel.
Daca merge ceva cu javascript sa nu mai isi dea refresh la fiecare pagina cand apas pe link-ul "index.php?sortare=data_ad" sau "index.php?sortare=hits".

MarPlo Mesaje: 4343
Salut
Ca sa afisezi in pagina date de la php fara refresh la pagina se foloseste ajax; vezi Cursul Ajax de pe site.
Ca sa ordonezi selectarea in functie de valoarea din adresa URL poti aplica acest exemplu:

Cod: Selectaţi tot

// model adresa:  index.php?sort=data_ad
$sortby = filter_var($_GET['sort'], FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH);
$query = "SELECT * FROM tonuri ORDER BY $sortby DESC LIMIT 0,50";
// ... 

nutzu123 Mesaje: 83
Merge dar trebuie da dau redirect catre pagina index.php?sort=data_ad ca este un index, nu se poate sa fie integrat in cod ca prima pagina sa fie data_ad fara sa mai dau redirect catre pagina?

MarPlo Mesaje: 4343
Incearca sa pui valoarea implicita /default, "data_ad" la $sortby; asa:

Cod: Selectaţi tot

$sortby = isset($_GET['sort']) ? filter_var($_GET['sort'], FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH) : 'data_ad';
 

Subiecte similare