Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Ordinare risultati query

    Ciao,
    per un sito di affitto appartamenti ho una tabella da cui vengono estratti e filtrati i dati, ordinati secondo il criterio dell'utente (punteggio, zona, camere ecc) ed impaginati (10 record x pagina).

    Il problema è che il prezzo non è direttamente disponibile nel database, ma va calcolato via codice php (nel db c'è il prezzo base, poi vanno applicati alcuni coefficienti come last minute, sconto giorni permanenza, sconto lunga permanenza, bassa/alta stagione ecc.).

    Di conseguenza non posso fare un "order by prezzo".

    Come posso risolvere?
    Ho pensato di estrarre tutti i dati, calcolare il prezzo e piazzarli in una tabella "risultati_query"... cosi posso fare tutto quello che voglio (tra l'altro avrei i dati belli e pronti anche per tutte le pagine di navigazione), pero si tratta di inserire ogni volta anche 300 record.. il db reggerebbe un simile carico?

  2. #2
    Il DB può reggerlo, ma ci mette un pò a fare 300 query, tu non puoi proprio inserire la voce prezzo nelle tabelle attuali e fare i calcoli quando inserisci una voce a db?

  3. #3
    Originariamente inviato da goikiu
    Il DB può reggerlo, ma ci mette un pò a fare 300 query, tu non puoi proprio inserire la voce prezzo nelle tabelle attuali e fare i calcoli quando inserisci una voce a db?
    no, perchè il prezzo cambia in base a diverse variabili tra cui anche la data di prenotazione dell'utente (se prenoti oggi 14 luglio per una settimana ad esempio potresti trovare un prezzo diverso rispetto alla stessa preno, per gli stessi giorni, eseguita domani).

    con mysql_query() posso inviare anche piu di un INSERT INTO giusto?
    Facendo cosi miglioro qualcosa?

    Per i tempi è un problema limitato perchè c'è una pagina intermedia tra la query e i risultati, in cui viene mostrato un piccolo spot pubblicitario o un'immagine, quindi c'è un po di "respiro" per l'utente.

  4. #4
    mysql_query ha in teoria il limite ad una query per volta mi pare

  5. #5
    Originariamente inviato da goikiu
    mysql_query ha in teoria il limite ad una query per volta mi pare
    no, ho provato a fare cosi (tabelle di prova)

    Codice PHP:
    $sql='insert into tariffe(id_gestore,sconto) values(22,4);';
    $result=mysql_query($sql) or die(mysql_error()); 
    e cosi
    Codice PHP:
    $sql='insert into my_tariffe(id_gestore,sconto) values(22,4),(22,4),(22,4),(22,4),(22,4),(22,4); 
    ho provato a ripetere la prima query 25 volte, e nella seconda i values (22,4) li ho inseriti appunto 25 volte.. con microtime() i tempi di risposta sono molto interessanti con la seconda soluzione.

    In effetti viene inviata 1 sola query, è msyql che permette inserimenti multipli

  6. #6
    beh si, se separi tutti i dati è fattibile

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.