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

    sommare il prezzo di 2 periodi differenti

    Ciao a tutti
    ho un piccolo problemino e mi servirebbe un consiglio su come risolverlo.
    In pratica dovrei tirare fuori il prezzo totale di 2 periodi, faccio un esempio per rendere l'idea, ho 2 offerte:

    1) dal 13 al 20 aprile= 50 euro al giorno
    2) dal 20 al 27 aprile= 60 euro al giorno

    Se l'utente effettuasse una ricerca dal 13 al 27 aprile attualmente non mi uscirebbe nessun risultato, mentre vorrei far sommare la prima settimana 350 + 420 e quindi avere un prezzo totale di 770

    Come potrei gestire questa cosa?

  2. #2
    Devi dire come è strutturato il db e se l'utente può anche mettere (per esempio) 14 e 26 invece di 13 e 27.
    Sono disponibile per realizzare lavori su commissione.

  3. #3
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    la tabella e' questa:

    CREATE TABLE IF NOT EXISTS `tabella` (
    `id_offerta` int(6) NOT NULL AUTO_INCREMENT,
    `valida_da` date NOT NULL,
    `valida_fino` date NOT NULL,
    `minimo_notti` int(2) NOT NULL,
    `prezzo` float NOT NULL,
    `prezzo_come` int(2) NOT NULL,
    `id_albergo` int(5) NOT NULL,
    PRIMARY KEY (`id_offerta`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3434 ;


    spiego i campi:
    - id offerta si capisce
    - valida_da: giorno in cui inizia l'offerta
    - valida_fino: giorno in cui scade l'offerta
    - minimo_notti: il numero di notti minimo per far si che l'offerta sia valida
    - prezzo: prezzo dell'offerta
    - prezzo_come: se inserisco 1 significa che e' il prezzo di 1 giorno, se metto 2 significa che il prezzo inserito e' il totale di 2 giorni e cosi' via, 7 significa che il prezzo è settimanale
    - id_albergo: è l'id dell'hotel a cui fa riferimento questa offerta.

    Nella query sto dando anche una flessibilità di 3 giorni, in modo che se qualcuno cerca dal 18 giugno e l'offerta parte il 21 giugno, gli do la possibilità di vederla in modo che se gli interessa ed ha date flessibili puo' spostare il soggiorno.

    Questa e' la query attuale:
    Codice PHP:
    $query_offerte="SELECT id_offerta , DATE_FORMAT(valida_da, '%d/%m/%Y') AS valida_da_ita, DATE_FORMAT(valida_fino, '%d/%m/%Y') AS valida_fino_ita, minimo_notti, prezzo, prezzo_come, id_albergo FROM tabella WHERE '$arrivo' between DATE_ADD(valida_da, INTERVAL -3 DAY) AND valida_fino AND DATE_ADD(STR_TO_DATE('$arrivo', '%Y-%m-%d'), INTERVAL +prezzo_come DAY) <= valida_fino AND DATE_ADD(STR_TO_DATE('$arrivo', '%Y-%m-%d'), INTERVAL +prezzo_come DAY) <= valida_fino AND DATE_ADD(STR_TO_DATE('$arrivo', '%Y-%m-%d'), INTERVAL +$durata DAY) <= valida_fino "

  4. #4
    Se l'utente inserisce 2 dare con la differenza di 7 giorni allora verranno mostrate tutte le offerte per 7 giorni in quelle date (e quelle sfasate di 3 giorni)?
    Oppure vengono mostrate tutte le offerte di quei giorni selezionati più lo sfasamento?
    Per quanto riguarda quello che vuoi fare secondo me la cosa migliore sarebbe quella di vedere la differenza di giorni che ci sono tra le date dell'utente e poi stampare tutte le offerte che ci sono dalla data di inizio per il maggior tempo possibile e il tempo che rimane (giorni rimanenti) lo deve vedere come se fosse un'altra ricerca e quindi bisognerebbe interrogare il db dando gli come giorno iniziale quello in cui finisce l'offerta precedente.
    Sono disponibile per realizzare lavori su commissione.

  5. #5
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    no, l'utente nel form inserisce solo la data di arrivo mentre nella select successiva indica quanti giorni vuole fare da 1 a 7 e poi passo subito a 14, quindi
    1 notte
    2 notti
    3 notti
    4 notti
    5 notti
    6 notti
    7 notti
    14 notti

    quindi se l'utente cerca dal 13 aprile per 14 notti (che ha come valore 14), non mi esce nessuna offerta, mentre dovrebbe uscire la somma delle 2 offerte insieme

  6. #6
    Non esce perché non ci sono offerte per 14gg?
    Sono disponibile per realizzare lavori su commissione.

  7. #7
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    se ci fossero offerte di 14 notti uscirebbero, a me invece interessa prendere i prezzi di 2 offerte settimanali e sommarli

  8. #8
    Vabbe perché non fai come se fossero due ricerche diverse e unisci i risultati? Fai che faccia ciondolo quando sceglie 14.
    Sono disponibile per realizzare lavori su commissione.

  9. #9
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    ed e' questo quello che chiedo, come lo faccio?

  10. #10
    Scusa al commento di prima: ciondolo = ciò quando.
    Prendi la data di arrivo e cerchi l'offerta per 7 giorni per quella data, così come fai quando seleziona 7, per poi ripetere la cosa con la data che sarà: data_arrivo+7.
    Sono disponibile per realizzare lavori su commissione.

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.