problema list/menu la SELECT

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
Avatar utilizator
trif
Mesaje:500

problema list/menu la SELECT

salut, am si eu o mica problema, am si eu select-ul acesta

Cod: Selectaţi tot

SELECT * FROM bd WHERE aprobat=1 ORDER BY id DESC LIMIT 11
dar eu vreau ca dintr-o list/menu sa imi aleg DESC sau ASC si sa imi faca ca si cum ar fi static in acel select de mai sus dar asa vreau sa fac si in loc de "id" sa imi aleg din alt list/menu altceva dar si la LIMIT sa imi aleg din list/menu cat sa fie limita. sper ca ati inteles, cum se face, din cate stiu se face cu $GET, dar nu stiu sintaxa toata. va rog sa ma ajutati. va multumesc anticipat, cu stima trif
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif

claUdiu Mesaje:313
Pai foloseste in url αsa:

Cod: Selectaţi tot

site.com/php.php?by=ceva&doa=asc sau desc&limit=un numar aici
by = sa fie dupa ID sau NUME
doa (desc or asc) = sa fie ASC sau DESC
limit = cate rezultate arata

si in fisierul php.php faci selectul asa:

Cod: Selectaţi tot

$by = $_GET['ceva'];
$doa = $_GET['doa'];
$limit = $_GET['limit'];

SELECT * FROM bd WHERE aprobat=1 ORDER by $by DESC $doa LIMIT $limit
Bine inteles...aici la select trebuie sa pui tu gilimelele corespunzatoare si toate cele...eu ti-am dat doar un ex. Daca nu reusesti scrie aici;)
Se spune ca...."omul tot invata in viata". Dar...Totusi...Trebie sa ne oprim undeva, nu?

nutzu123 Mesaje:83
Salut am incercat varianta ta si merge bine pana la un punct, eu am facut cum ai zis pentru rezultatele pe pagina:

$limit = $_GET['limit'];

<p>Rezultate pe pagina:
<a href="index.php?limit=20" title="20">20</a> |
<a href="index.php?limit=40" title="40">40</a> |
<a href="index.php?limit=60" title="60">60</a> |
</p>


$query="SELECT * FROM file ORDER BY data_ad DESC LIMIT $limit";

Totul merge bine imi indica bine rezultatele pe pagina dar cand intru simplu index.php imi de eroare You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 deoarece nu are de unde sa.si selecteze limita de rezultate.

Cum as putea sa fac ca atunci cand dau pe index.php sa.si selecteze singur limita de 20 rezultate deoarece e index-ul site-ului si nu am cum sa fac k lumea sa intre direct pe index.php?limit=20 poate doar un redirect :?

MarPlo Mesaje:4343
Salut
Atribuie o valoare pt. $limit in caz ca acel $_GET nu e definit, pe scurt:
$limit = isset($_GET['limit']) ? $_GET['limit'] : 20;

nutzu123 Mesaje:83
ms mult marplo!!! merge :)

trif Mesaje:500
salut, am facut asa:

Cod: Selectaţi tot

<select name="ordine">
<option value="RAND()">Aleator</option>
<option value="ASC">Crescator</option>
<option value="DESC">Descrescator</option>
</select>
si

Cod: Selectaţi tot

$ordine = $_GET['ordine'];
$query="SELECT * FROM cantari_ppt WHERE aprobat = 1 ORDER BY $ordine limit 10";
dar nu imi merge nu stiu de ce? cand selectez din list/menu nu face nimic. ce ar trebui ca sa faca sa merga? va multumesc anticipat. cu stima trif
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif

MarPlo Mesaje:4343
Daca tag-ul <form> in care e <select> are method="post", in PHP valoarea se preia cu $_POST['nume'].

claUdiu Mesaje:313
Sau...daca scrie vreo erroare...dai copy-paste aici.
Se spune ca...."omul tot invata in viata". Dar...Totusi...Trebie sa ne oprim undeva, nu?

trif Mesaje:500
am reusit sa fac sa fie implicit fiecare variabila, este mai sus un exemplu si am facut asa

Cod: Selectaţi tot

$ordine = isset($_GET['ordine']) ? $_GET['ordine'] : 'asc';
$limita = isset($_GET['limita']) ? $_GET['limita'] : 10;
$tip = isset($_GET['tip']) ? $_GET['tip'] : 'denumire';
dar problema care ramane este, cum fac ca sa imi ordoneze separat cum trebuie sa fac SELECT-ul ca daca vreau sa imi ordoneze DESC sa imi ordoneze dar sa imi ramana cele implicite aceleasi, si asa cu fiecare in parte ca daca vreau indiferent care, sa imi ramana implicite cele pe care le-am dat eu. sper ca intelegeti. multumesc anticipat, cu stima trif
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif

MarPlo Mesaje:4343
Incearca asa:

Cod: Selectaţi tot

$ordine = (isset($_GET['ordine']) && $_GET['ordine']!="") ? $_GET['ordine'] : 'asc';
$limita = (isset($_GET['limita']) && $_GET['limita']!="") ? $_GET['limita'] : 10;
$tip = (isset($_GET['tip']) && $_GET['tip']!="") ? $_GET['tip'] : 'denumire'; 

trif Mesaje:500
salut, am o intrebare, cum as putea sa fac ca variabilele $tip, $limita, $ordine sa le fac ca sesiune ca sa nu ii dau eu de fiecare data ceea ce vreau sa imi afiseze? de exemplu ca la cinemagia.ro cand intri si ii dai cate inregistrari sa arate pe pagina si faza este ca imi ramane la fel tot timpul cat nu imi sterg istoricul. si cum sa fac ca sa nu imi mai apara in bara de link get-ul respectiv: site.php?ordine=desc ci sa faca acelasi lucru dar fara get, merge oare cu post? cu ar fi sintexa cu post? astept raspuns, cu stima trif
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif

MarPlo Mesaje:4343
Raspuns la intrebarea 2:
- Merge cu "post, in tag-ul <form> sa fie method="post" , iar in scriptu PHP se foloseste $_POST['nume'] (adica inlocuiesti $_GET cu $_POST).

Subiecte similare