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

    Trovare il prezzo piu' basso tra 7 prezzi inseriti nel database

    Buongiorno
    Nel database ho inserito 8 campi di tipo float:

    prezzo_1_notte (esempio 50 €): 50,00 € al giorno
    prezzo_2_notti (esempio 90 €): 45,00 € al giorno
    prezzo_3_notti (esempio 130 €): 43,33 € al giorno
    prezzo_4_notti (esempio 160 €): 40,00 € al giorno
    prezzo_5_notti (esempio 190 €): 38,00 € al giorno
    prezzo_6_notti (esempio 220 €): 36,60 € al giorno
    prezzo_7_notti (esempio 245 €): 35,00 € al giorno
    prezzo_14_notti (esempio 460 €): 32,85 € al giorno

    tra questi prezzi vorrei poter selezionare in automatico il prezzo giornaliero piu' basso (quello di 32,85 €) in modo da scrivere sul sito "da 32,85 € al giorno" e poi entrando nei dettagli si vede tutta la lista dei prezzi ordinati per giorno.

    Come potrei gestire questa cosa?
    Grazie

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Il prezzo giornaliero va calcolato oppure è già presente nel db?
    Se fosse già presente, con una query prendi il record che ti interessa cercando con la clausola MIN sul campo "prezzo giornaliero", usi l'id per costruire un link che cliccato va a prendere e mostra i dettagli del record in questione.

    Per come scrivere le query, se dovesse servirti, usa la sezione Database.

  3. #3
    codice:
    SELECT MIN(prezzo_1_notte, prezzo_2_notti / 2, prezzo_3_notti / 3, etc. etc.) AS SmallestPrice FROM Products;

  4. #4
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    si i prezzi sono già all'interno del database, sono offerte alberghiere che inserisco.
    sto provando con il SELECT MIN come dice filippo.toso ma se metto più di un valore tra le parentesi tonde mi da errore.

    Se invece inserisco un solo valore, tipo: MIN(prezzo_14_notti / 14) AS prezzo_minimo
    Funziona

    Sto provando ad inserire le virgolette, gli apici ma niente, non inserisce in nessun modo piu' di un valore tra le parentesi

    Avevo pensato anche a fare la query tipo: MIN(prezzo_7_notti / 7) AS prezzo_minimo , MIN(prezzo_14_notti / 14) AS prezzo_minimo ecc ma non so se è errato

  5. #5
    Scusa, ho confuso la sintassi SQL con quella PHP. Devi usare LEAST al posto di MIN.

    https://dev.mysql.com/doc/refman/8.0...function_least

    Personalmente aggiungerei un campo "prezzo_minimo" (con relativo indice) alla tabella aggiornandolo in fase di inserimento / modifica. In questo modo diventa tutto più semplice.

  6. #6
    attenzione poi alla logica funzionale: se io ti faccio 90 euro per due notti non è detto che ti faccia 45 euro per una notte...

  7. #7
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    Quote Originariamente inviata da filippo.toso Visualizza il messaggio
    Scusa, ho confuso la sintassi SQL con quella PHP. Devi usare LEAST al posto di MIN.

    https://dev.mysql.com/doc/refman/8.0...function_least

    Personalmente aggiungerei un campo "prezzo_minimo" (con relativo indice) alla tabella aggiornandolo in fase di inserimento / modifica. In questo modo diventa tutto più semplice.
    Si con least funziona alla grande:

    Ecco lo screenshot: https://pasteboard.co/KeaUroB.png

    Non ho voluto inserire il campo "Prezzo minimo" perche' le offerte vengono aggiornate spesso e puo' succedere che dimentichiamo di cambiare quel valore. inoltre anche in fase di inserimento offerte vorrei poter fare il prima possibile senza dover scrivere cose che potrei automatizzare, proprio per guadagnare tempo e fare prima.

    Grazie per l'aiuto, utilissimo
    Ultima modifica di allin81; 03-08-2021 a 14:49

  8. #8
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    Quote Originariamente inviata da optime Visualizza il messaggio
    attenzione poi alla logica funzionale: se io ti faccio 90 euro per due notti non è detto che ti faccia 45 euro per una notte...
    No no, perche' nel campo 1 notte ho inserito manualmente 50 euro.

  9. #9
    Quote Originariamente inviata da optime Visualizza il messaggio
    attenzione poi alla logica funzionale: se io ti faccio 90 euro per due notti non è detto che ti faccia 45 euro per una notte...
    Prezzo "a partire da". Non vedo problemi di logica funzionale. Vuoi quel prezzo, prenoti per le notti necessarie ad ottenerlo.

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    189
    Concordo con Filippo.toso
    Giustamente non dividere (/n) poiché il prezzo è una referenza giornaliera. Sarebbe un bene mettere una nota a fondo pagina.
    Esempio nb* il prezzo giornaliero si intende per ogni notte.
    È più interessante con GROUP BY https://www.mysqltutorial.org/mysql-min/ (li c'è un campo di nome productline, mentre tu puoi creare un campo eventi). Questo evento in questo caso possiamo tradurlo in un semplice listino prezzi. Discorso diverso se crei anche sconto giornaliero con specifici requisiti o attraverso partner/associazioni. (Perché ? Poniamo la domanda giusta. Trova il prezzo giornaliero più basso. Sia listino prezzi che sconto giornaliero si riferiscono al giornaliero etc. poi giustamente sta a te decidere se cumulabili o non.)
    La struttura è sempre importante, si bisogna adattare caso per caso.
    Ultima modifica di darbula; 03-08-2021 a 14:59

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 © 2024 vBulletin Solutions, Inc. All rights reserved.