Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17

Discussione: incremento numerico?

  1. #1

    incremento numerico?

    Salve a tutti,

    forse più che di programmazione PHP la mia domanda dovrebbe essere rivolta a un forum di "matematica", ma tant'è... Spero possiate e vogliate aiutarmi.
    La Domanda: ho un motore di ricerca che estrae i records di una tabella di MySQL. I risultati vengono stampati su pagine che hanno una $Limit = 5 (records) ciascuna.
    Vorrei costruirmi una funzione che mi rimandi un numero intero partendo da 0 come primo record. Quindi, in ogni pagina, devo assegnare un valore intero che vada da 0 a 4 a dei records che vengono estratti in modo da soddisfare un qualsiasi riferimento alla chiave di ricerca ($keyword).
    Quindi su due pagine potrei avere i seguenti records:

    A, B, C, D, E, F, G, H, I, L
    e quindi da 0 a 4 per A, B, C, D, E
    e quindi da 0 a 4 per F, G, H, I, L

    Ma l'ordine in cui vengono estratti i records potrebbe non essere quello (anche perché se no la soluzione del problema sarebbe stata banale), quindi avrei bisogno di trovare una nuova regola per assegnare da 0 a 4 per (poniamo il caso) A, C, E, G, I
    e da 0 a 4 per la sequenza B, D, F, H, L

    Non so se sono riuscito ad essere chiaro, cmq un grazie a chiunque abbia la bontà di rispondermi

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    A occhio e croce mi vien da pensare che gli id che hai di riferimento non siano quelli dell'array della query ma riferiti a un campo id a db(magari mi sbaglio).
    Ma se hai una query che estrae 5 record anche con filtri di ricerca differenti nel risultato dovresti avere una chiave array da 0 a quanti ne sono usando mysql_fetch_array() in un while per estrazione:
    codice:
    $query = msql_query($select);
    while($res = mysql_fetch_array($query)){
    $dati[]=$res;
    }
    l'array finale avra' da 0 a quanti ne sono come chiave numerica del record

  3. #3
    Grazie comunque m4rko80 per la tua risposta...
    Però, o non ho capito bene io, oppure il tuo suggerimento non mi ritorna il numero intero (da 0 a 4) che serve a me per gestire la funzione; ti ricordo che io ho bisogno di una funzione che mi conti partendo da zero i 5 risultati che riempiono ciascuna delle n-pagine che possono risultare dalla ricerca effettuata...

  4. #4
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Come fai la query? l'array dei risultati finale com'e' composto?
    con un print_r($tuoArrayDati) dovresti vedere tutte le chiavi dell'array generato.
    Magari non stiamo pensando la stessa cosa.

  5. #5
    codice:
    $Limit = 5;
    $s=$_POST["s"];
    
    $SearchResult=mysql_query("SELECT * FROM `mysql_table` WHERE `ragionesociale` LIKE '%$s%' OR `indirizzo` LIKE '%$s%' OR `cap` LIKE '%$s%' OR `citta` LIKE '%$s%' OR `provincia` LIKE '%$s%' OR `regione` LIKE '%$s%' ORDER BY `ragionesociale` ASC") or die(mysql_error());

  6. #6
    Utente di HTML.it L'avatar di garakkio
    Registrato dal
    Dec 2011
    residenza
    Roma
    Messaggi
    480
    Alla prima query farai una limit 0,5
    Alla seconda una limit 5,5
    Alla terza 10,5

    Non ci vuole poi molta matematica per estrarre la ratio di questa progressione...

  7. #7
    Caro garakkio, il mio problema non è mettere mano alla query (dato che funziona benissimo), ma di assegnare un numero intero ai risultati rispettando l'ordine con cui vengono estratti!
    (1° pagina)
    B = 0;
    C = 1;
    E = 2;
    G = 3;
    L = 4;

    (2° pagina)
    A = 0;
    D = 1;
    F = 2;
    H = 3;
    I = 4;

    (3° pagina)
    ....
    ....

  8. #8
    Utente di HTML.it L'avatar di garakkio
    Registrato dal
    Dec 2011
    residenza
    Roma
    Messaggi
    480
    Lo spero davvero che funzioni bene, ma nella query che hai scritto prima la limit non c'è.
    Il numero progressivo puoi assegnarlo usando semplicemente una variabile, che inizializzi a zero e che incrementi nel ciclo in cui estrai i risultati.

  9. #9
    E' vero garakkio: nel codice della query ho omesso di scrivere la $limit, a cui avevo cmq ampiamente fatto riferimento...

    Ora, tu mi scrivi:

    Il numero progressivo puoi assegnarlo usando semplicemente una variabile, che inizializzi a zero e che incrementi nel ciclo in cui estrai i risultati.
    In sostanza mi "rispondi" togliendo il punto interrogativo alla mia domanda?

  10. #10
    Utente di HTML.it L'avatar di garakkio
    Registrato dal
    Dec 2011
    residenza
    Roma
    Messaggi
    480
    Ti dirò, ho sempre un po' di timore a rispondere su questioni che dovrebbero essere ovvie per chiunque abbia dato un'occhiata a qualche programma scritto da altri... comunque la risposta è: sì.

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.