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

    se esiste un record non visualizzare l'altro

    salve vengo al dunque
    ho delle offerte che tiro fuori in base al numero di notti che si scelgono e fin qui non ho problemi.

    Ora voglio fare in modo che SE l'utente cerca per 3 notti e SE esiste un'offerta dove ho indicato che il prezzo e' per 3 notti (il campo si chiama $prezzo_come) deve uscire questa offerta
    ALTRIMENTI, puo' prendere un'offerta dove ho impostato che il soggiorno minimo è di 2 notti, dividerla per le notti e moltiplicarla per 3 in modo da avere il prezzo di 3 notti.

    Il dilemma è, come faccio a capire se esiste l'offerta di 3 notti?

  2. #2
    In che maniere imposti le offerte?

  3. #3
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    inserisco nel database questi campi

    - valida_da: inizio della validità dell'offerta
    - valida_fino: fine della validità dell'offerta
    - prezzo: il prezzo del soggiorno
    - prezzo_come: indico se il prezzo inserito è giornaliero, settimanale, per 2 giorni, per 3 giorni ecc, inserendo il numero 1 per giornaliero, 7 per settimanale, 2 per 2 giorni ecc
    minimo_notti: indico se quell'offerta ha un minimo di notti per essere valida


    ed altri campi che non credo che servano

  4. #4
    E in quale maniera l'utente fa questa scelta?
    Scglie semplicemente due date, inizio e fine?

  5. #5
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    no, l'utente nel form ha solo 2 campi:

    - uno si chiama "arrivo" e con il calendario inserisco la data in formato gg/mm/aaaa che poi trasformo in aaaa-mm-gg per la ricerca
    - l'altro campo si chiama "durata" ed e' una select con questi valori

    - 1 Notte (value 1)
    - 2 Notti (value 2)
    - 3 Notti (value 3)
    - 4 Notti (value 4)
    - 5 Notti (value 5)
    - 6 Notti (value 6)
    - 7 Notti (value 7)
    - 14 Notti (value 14)
    - Tutte le offerte (value 16)

  6. #6
    Quando fai la query per cercare nel db, con il WHERE indichi che vuoi selezionare solo "prezzo_come" = 3 notti, se la query non estrae nulla allora ti fai il calcolo con le due notti.

  7. #7
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    si, infatti questa e' la mia query:

    Codice PHP:
    $query_offerte="SELECT id_offerta, titolo, 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, trattamento, id_albergo, bimbi_gratis, pacchetto_benessere, mezzo_di_trasporto FROM tbl_offerte 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 ";
    //Se la durata è compresa tra 1 e 14 (notti) mi dice che l'offerta da tirare fuori deve essere inferiore o uguale alla data di scadenza dell'offerta con il minimo di notti impostato
    if(($durata!="14") and ($durata!="16")){
    $query_offerte .= " and (minimo_notti <= $durata) AND DATE_ADD(STR_TO_DATE('$arrivo', '%Y-%m-%d'), INTERVAL +$durata DAY) <= valida_fino ";

    Pero' mi estrae sia quelle da 2 che da 3 notti perche' ho detto che voglio mostrare anche le offerte che hanno un minimo di notti minore o uguale alla durata, quindi se ho un'offerta di 2 notti che ha un minimo di notti pari a 2, nelle 3 notti viene visualizzata ed e' corretto.

    Quello che voglio fare e' non mostrare questa che ha come minimo di 2 notti SE ESISTE un'offerta da 3 notti

  8. #8
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    un esempio pratico sarebbe questo

    offerta 2 notti pari a 90 euro
    offerta 3 notti pari a 120 euro

    Attualmente se cerco per 3 notti mi esce sia l'offerta da 120 euro, ma mi esce anche l'offerta da 90 che divido per 2 notti e moltiplico per 3 e mi esce 135.

    Visto che esiste l'offerta 3 notti da 120, non serve pubblicare anche l'offerta da 135, capito?

  9. #9
    Fai prima una query per estrarre solo la richiesta fatta, quindi where notti=3, fai un controllo con mysql_num_row, se == 0, quindi non ci sono offerte da 3 giorni, allora estrai quelle da 2 ecc ecc, chiaro l'esempio?

  10. #10
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    si infatti c'avevo pensato, ma posso fare il mysql_num_rows alla query o devo farlo per forza al risultato?

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.