Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Problema con mysql e select....limit

    Ciao a tutti....

    Avrei bisogni una delucidazione su questa questione:
    io ho scaricato da un sito uno script per impaginare i risultati di una query...
    Il problema è che in locale funziona e in remoto invece no.

    Quando provo a interrogare il db in remoto mi viene restituito questo errore:

    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 '-5, 5' at line 1

    la riga in questione è questa:

    codice:
    
    
    Codice PHP:
    $query_ris "select nome,username,email,data from users order by $_SESSION[order] $_SESSION[tipo] limit $offset_$limite"
    l'errore in pratica sta nella stringa $offset il cui valore viene restituito da questa funzione:

    codice:
    
    
    Codice PHP:
     function getPagerData($numHits$limit$page$off)       {             global $offset,$limit,$page,$numPages,$ret,$off;             $numHits = (int) $numHits;             $limit max((int) $limit$off);             $page = (int) $page;             $numPages ceil             ($numHits $limit);             $page max($page1);             $page min($page$numPages);             $offset = ($page1) * $limit;              $off $offset;             $ret = new stdClass;             $ret->offset $offset;             $ret->limit $limit;             $ret->numPages $numPages;             $ret->page $page;             return $ret;       } 
    Impostando ad esempio la stringa $limit=5 mi viene fuori che $offset = ($page- 1) * 5, quindi -1*5=-5

    se inserisco la query direttamente in mysql in locale mi restituisce lo stesso errore che mi ritorna in remoto, ma testando il sito in locale funziona correttamente.
    Ora, qualcuna sa dirmi cosa caspita succede?
    Di chi è la colpa? Di php, di MySql, di Apache?.
    Illuminatemi per favore....

    Grazie

  2. #2
    uppete :master:

  3. #3

  4. #4
    Se stampo la variabile $query_ris mi restituisce questo:

    codice:
    
    
    Codice PHP:
    select nome,username,email,data from users order by nome asc limit 0
    che è giusto, ma allora perchè mySql mi restituisce l'errore:

    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 '-5, 5' at line 1?

    Da dove arriva quel -5,5 se mi stampa 0,5?

    Non capisco...

  5. #5
    prova ad usare la mia funzione...

    http://forum.guidoz.it/viewtopic.php?t=451

    magari con quella ti dice bene

  6. #6
    Ti ringrazio Guidoz,terrò conto della tua funzione, ma per il momento vorrei capire cosa mi causa quell'errore, anche perchè altrimenti mi toccherebbe sostituire un bel po' di pagine, e poi, lo script in locale funziona, e mi pare che sia corretto...onde evitare in futuro altre situazioni simili , mi piacerebbe scoprire dove caspita prende quel risultato la query di Mysql....

  7. #7
    Originariamente inviato da Artisan
    Ti ringrazio Guidoz,terrò conto della tua funzione, ma per il momento vorrei capire cosa mi causa quell'errore, anche perchè altrimenti mi toccherebbe sostituire un bel po' di pagine, e poi, lo script in locale funziona, e mi pare che sia corretto...onde evitare in futuro altre situazioni simili , mi piacerebbe scoprire dove caspita prende quel risultato la query di Mysql....
    ci mancherebbe.. il mio non era un consiglio "presuntuoso".. voleva solo essere una possibile toppa veloce.

    Beh.. se in locale ti funziona mi viene in emnte solo che potrebbe esserci qualche valore che prendi da get post cookie o sessione.. che a causa del register globals disattivato sul server... non viene valorizzato e quindi magari decrementi una quantità che è zero ma dovrebbe essere altor...

    non so eh.. sto andando ad intuito.. dal tuo codice non capisco dove potrebbe essere il problema..


  8. #8
    Tanto per.....

    ho provato ancora a stampare la stringa $query_ris..

    in locale mi da questo:

    select nome,username,email,data from users order by nome asc limit 0, 5.

    è solo su server remoto che mi da questo:

    select nome,username,email,data from users order by nome asc limit -5, 5

    Ma se lo script è lo stesso...come fa a cambiare il risultato?

  9. #9
    Su server il register_globals è attivato...e comunque la configurazione di php che ho in locale è uguale a quella su server....per questo non risco a capire...

    Se avessi delle configurazioni diverse di php potrei capire ma sono praticamente identiche

  10. #10
    non c'entra il fatto che i vari comandi select, limit, ecc siano in minuscolo vero?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.