• User

    Problema con select limit

    Il mio script prevede di inserire in un form di una pagina 2 numeri che vengono inviati in POST.

    Nella pagina dell'action prelevo questi 2 numeri con la possibilità di ometterne uno o entrambi:

    [PHP]$num1 = $_POST['num1'];
    $num2 = $_POST['num2'];

    if(!$num1)
    {
    $num1 = "%";
    }
    if(!$num2)
    {
    $num2 = "%";
    }[/PHP]

    con gli if in pratica verifico se è settato il numero, se non lo è mi andrà bene qualsiasi risultato (ho verificato che l'unico modo è questo in una query con AND)

    A questo punto eseguo una query con un

    [PHP]where num1 like '$num1' AND num2 like '$num2' ORDER BY num1,num2 LIMIT $inizio,$recordPerPagina[/PHP]

    quindi con un limit che funziona alla perfezione.. (almeno per la prima pagina).

    Infatti se vado ad eseguire la query ed ottengo 20 risultati (ne ho messi 15 per pagina) nella prima pagina tutto è ok, mi dice che ci sono 2 pagine e posso andare nella seconda.

    E' quando vado alla seconda che esce il problema:
    infatti viene eseguita la query, ma come condizione where cercherà la seconda pagina di una query con num1="%" e num2="%".

    In pratica si dimentica dei dati in POST che gli avevo chiesto.

    Come devo fare per farglielo ricordare?
    Ho provato con session_register("num1") e poi ho richiamato con $_SESSION['num1'] ma ogni volta mi registra num1 e me lo setta a 1...


  • User

    Ho risolto:

    ho messo

    [PHP] if(isset($_POST['num1']) OR isset($_POST['num2']))
    {
    $num1= $_POST['num1'];
    $num2 = $_POST['num2'];

    if(!$num1)
    {
    $num1 = "%";
    }
    if(!$num2)
    {
    $num2 = "%";
    }

    $_SESSION['num1'] = $num1;
    $_SESSION['num2'] = $num2;
    }[/PHP]

    Quindi lo fa solo la prima volta che arriva.. e ho utilizzato questo
    $_SESSION['']
    e non session_register()

    Anche se poi mi è subentrato un altro problema..
    nel codice avevo un maxPag calcolato con la funzione ceil che allo stesso modo veniva dimenticato..
    ho fatto un if identico al precedente anche per lui e tutto è apposto!!

    :D:D


  • Moderatore

    gentilissimo ad aver postato una soluzione 😉