Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875

    Ordinare per prezzo (giornaliero e settimanale)

    Dovrei ordinare per prezzo i risultati di una ricerca fatta per data di arrivo e data di partenza.
    L'unico problema e' che nel database inserisco alcuni prezzi giornalieri e quindi tipo 35 euro, ed altri prezzi settimanali tipo 230 euro.

    Questa è la query che sto usando
    Codice PHP:
    $query_offerte=("SELECT id, albergo, titolo, DATE_FORMAT(valida_da, '%d/%m/%Y') AS valida_da, DATE_FORMAT(valida_fino, '%d/%m/%Y') AS valida_fino, price, arrangiamento, prezzo_come, scadenza, pacchetto
                     FROM offerte
                    WHERE '
    $arrivo' between valida_da AND valida_fino and '$partenza' between valida_da and valida_fino
                    ORDER by price asc"

    Il problema e' che mi ordina per prezzo (price) ma non riconosce quanti giorni sono e cioe' se prezzo giornaliero o settimanale.

    All'interno di dove devono uscire i prezzi ho anche messo
    Codice PHP:
    if($prezzo_come==1){
    echo 
    "$price € x $numero_di_notti =".($price*$numero_di_notti)." Totali a persona";
    }

    if(
    $prezzo_come==7){
    echo 
    "$price € =".($price)." Totali a persona";

    in modo da avere i prezzi totali (calcolando le notti) ma lo stesso l'ordine viene fatto in base a price
    Come posso ordinare questi prezzi correttamente?

  2. #2
    codice:
    ORDER BY price/prezzo_come
    ?

  3. #3
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    Originariamente inviato da k.b
    codice:
    ORDER BY price/prezzo_come
    ?
    cavolo, ma sei un mago... funziona!!

    non sapevo si potesse fare l'ordine usando anche uno slash.
    Grazieeee, ed io che pensavo fosse una cosa impossibile da fare

  4. #4
    Non e' un ordine magico con lo slash, e' semplicemente una divisione: se dividi il prezzo settimanale per 7, ottieni il prezzo giornaliero.

  5. #5
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    Originariamente inviato da k.b
    Non e' un ordine magico con lo slash, e' semplicemente una divisione: se dividi il prezzo settimanale per 7, ottieni il prezzo giornaliero.
    il problema ora c'e' quando chiedo un soggiorno di meno di 7 notti, per esempio 6 notti

    Come potrei gestire la ricerca delle date?

    Dovrei fare una query facendo il calcolo delle notti prese dal form della pagina prima?

    Ad esempio qualcosa tipo

    Codice PHP:
    if ($numero_di_notti=1){
    echo 
    "query che mostra solo le offerte giornaliere";
    }
    if (
    $numero_di_notti=2){
    echo 
    "query che mostra solo le offerte giornaliere o che hanno il prezzo_come impostato a 2";
    }
    ecc ecc
    e' questa la logica corretta?

  6. #6
    Ma non e' a quello che serve il campo "prezzo_come"? Io avevo capito che conteneva il numero di notti a cui si riferisce il prezzo.

  7. #7
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    Originariamente inviato da k.b
    Ma non e' a quello che serve il campo "prezzo_come"? Io avevo capito che conteneva il numero di notti a cui si riferisce il prezzo.
    si il campo prezzo_come equivale al numero di notti.
    Pero' se a me serve solo per 4 notti io non devo visualizzare anche le offerte settimanali, oppure devo vedere di fare una divisione del prezzo settimanale (ma non sarebbe corretto perche' spesso l'offerta 7 notti costa meno di quella di una notte, nel senso 45 euro al giorno se fai 7 notti, 55 euro al giorno se fai una notte

  8. #8
    Originariamente inviato da allin81
    si il campo prezzo_come equivale al numero di notti.
    Pero' se a me serve solo per 4 notti io non devo visualizzare anche le offerte settimanali
    E allora aggiungi un where:
    codice:
    WHERE prezzo_come <= $valore_inserito
    cosi' se $valore_inserito vale 4, ti mostrera' solo le righe in cui prezzo_come e' minore o uguale a 4.

  9. #9
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    Originariamente inviato da k.b
    E allora aggiungi un where:
    codice:
    WHERE prezzo_come <= $valore_inserito
    cosi' se $valore_inserito vale 4, ti mostrera' solo le righe in cui prezzo_come e' minore o uguale a 4.
    perfetto! ora già va meglio.
    ora ho solo 2 piccoli problemi

    Ho un'offerta che e' di 5 notti, se cerco un soggiorno di 7 notti, nel risultato uscirà anche questa offerta, e' un errore, no?
    A sto punto tolgo il simbolo minore e lascio solo l'uguale nel where?

    Problema maggiore invece se un offerta scade l'8 maggio e una nuova offerta inizia l'8 maggio, se un cliente cerca un soggiorno dal 7 maggio fino al 14 maggio, per quell'hotel non verranno visualizzate offerte... come potrei aggiustare?

  10. #10
    Originariamente inviato da allin81
    Ho un'offerta che e' di 5 notti, se cerco un soggiorno di 7 notti, nel risultato uscirà anche questa offerta, e' un errore, no?
    A sto punto tolgo il simbolo minore e lascio solo l'uguale nel where?

    Problema maggiore invece se un offerta scade l'8 maggio e una nuova offerta inizia l'8 maggio, se un cliente cerca un soggiorno dal 7 maggio fino al 14 maggio, per quell'hotel non verranno visualizzate offerte... come potrei aggiustare?
    Boh queste sono valutazioni commerciali, non tecniche. Se uno soggiorna 7 notti non puo' usufruire di un'offerta di 5 e aggiungerne 2? La gestione delle offerte che si sovrappongono e' piu' complicata, andrebbe analizzata la struttura del database, ma la cosa va un po' oltre lo scopo di un forum.

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.