Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494

    Var_dump restituisce bool(false)

    Salve,
    ho la seguente query:

    Codice PHP:
    $hotelearch mysqli_query($conn2"CREATE OR REPLACE VIEW prezzi AS 

    SELECT h.hotel_id, h.hotel_name, h.hotel_stars, h.hotel_state, h.hotel_city, h.hotel_address, h.hotel_zipcode, h.longitud, h.latitud, h.hotel_desc, camere.id_camera, promo.promo_sconto,camere.numero_camere-COALESCE(booking_check_avilability.total_room+booking_check_avilability.blocked_inventory,0) AS disponibilità,COALESCE(hotel_prezzo_stagione.prezzo_stagione,hotel_prezzo_camera.prezzo_camera)-(COALESCE(hotel_prezzo_stagione.prezzo_stagione,hotel_prezzo_camera.prezzo_camera)*round(COALESCE(promo.promo_sconto,0)/100.0,2)) AS prezzoscontato,COALESCE(hotel_prezzo_stagione.prezzo_stagione,hotel_prezzo_camera.prezzo_camera)*round(COALESCE(promo.promo_sconto,0)/100.0,2) AS scontoineuro,COALESCE(hotel_prezzo_stagione.prezzo_stagione,hotel_prezzo_camera.prezzo_camera) AS prezzodascontare FROM hotels h

    LEFT JOIN hotel_prezzo_camera ON (hotel_prezzo_camera.numero_ospiti='
    $guestsroommayor')

    LEFT JOIN hotel_prezzo_stagione ON (hotel_prezzo_camera.id_camera=hotel_prezzo_stagione.id_camera)
    AND (prezzo_dal>='
    $checkin') AND (prezzo_al<='$checkout') AND (hotel_prezzo_stagione.numero_ospiti='$guestsroommayor')

    LEFT JOIN promo ON (hotel_prezzo_camera.id_camera=promo.id_camera)
    AND (promo_dal>='
    $checkin') AND (promo_al<='$checkout') AND (promo.numero_ospiti='$guestsroommayor')

    LEFT JOIN booking_check_avilabilityON (hotel_prezzo_camera.id_camera = booking_check_avilability.room_type_id)AND (booking_check_avilability.check_in_date >= '
    $checkin') AND (booking_check_avilability.check_out_date <= '$checkout')

    LEFT JOIN camere ON (hotel_prezzo_camera.id_camera=camere.id_camera) AND (camere.numero_ospiti >= '
    $guestsroommayor')WHERE h.hotel_city = '$destinazione' AND h.hotel_id = camere.hotel_idAND camere.numero_camere-COALESCE(booking_check_avilability.total_room+booking_check_avilability.blocked_inventory,0) >= '$camere';

    SELECT a.hotel_id, a.hotel_name, a.hotel_stars, a.hotel_state, a.hotel_city, a.hotel_address, a.hotel_zipcode, a.longitud, a.latitud, a.hotel_desc, a.id_camera, a.disponibilità, a.prezzodascontare, a.prezzoscontato, a.scontoineuro, COALESCE(a.promo_sconto,0) AS sconto FROM prezzi a

    JOIN (SELECT hotel_id, MIN(prezzoscontato) AS minimo FROM prezzi GROUP BY hotel_id) b ON (a.hotel_id = b.hotel_id) AND (a.prezzoscontato = b.minimo)"
    );

    var_dump($hotelearch); 
    il var_dump mi restituisce bool(false), quindi ho controllato le variabili, o aggiunto

    or die(mysqli_error($conn2)) e mi restituisce il seguente errore:

    codice:
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT a.hotel_id, a.hotel_name, a.hotel_stars, a.hotel_state, a.hotel_city, a.h' at line 19
    quindi provo a stampare la query con print e la copio su phpmyadmin e funziona senza errori.

    Qualche idea?

  2. #2
    Stai cercando di eseguire due SELECT contemporaneamente.

    codice:
    ... >= '$camere';
    
    SELECT a.hotel_id, ...
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    Era per prendere il prezzo minimo, infatti ho fatto una vista. Quindi non posso? però in phpmyadmin funziona

  4. #4
    Veramente così non funzionerebbe neanche eseguita a mano probabilmente devi fare una UNION delle due SELECT ma così non può funzionare in nessun caso.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    Funziona funziona

  6. #6
    Quote Originariamente inviata da lukezz Visualizza il messaggio
    Funziona funziona
    Secondo me manca la UNION
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  7. #7
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    Dove la inserisco?
    La view devo toglierla?

    Se fai caso alla query all'inizio creo la view, poi seleziono la view con il prezzo più basso

    Infatti se provo ad inserire union tra le due select mi dice:

    View's SELECT contains a subquery in the FROM clause
    Ultima modifica di lukezz; 26-06-2015 a 12:17

  8. #8
    Ho riguardato meglio la query. Inizialmente pensavo utilizzassi la seconda select per alimentare la view ma non è così.
    Devi eseguire due query distinte prima crei la view e poi effettui la select sulla view creata. E comunque la view va creata una sola volta e puoi benissimo farlo a mano. Nel codice PHP poi ti limiti ad utilizzarla.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  9. #9
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    Provo grazie!

    Perfetto funziona.
    Ultima modifica di lukezz; 26-06-2015 a 12:40

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.