Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494

    Var_dump restituisce bool(false)

    Salve,
    ho questa query:

    Codice PHP:
    $hotelearch mysqli_query($conn"SELECT hot.hotel_id, hot.hotel_name, hot.hotel_stars, hot.hotel_state, hot.hotel_city, hot.hotel_address, hot.hotel_zipcode, hot.longitud, hot.latitud, roomy, disponibles FROM hotels AS hot LEFT OUTER JOIN (SELECT cam.hotel_id, cam.id_camera AS roomy, MAX(cam.numero_camere - IFNULL(bca.cantidad,0)) AS disponibles FROM camere AS cam LEFT OUTER JOIN (SELECT room_type_id, MAX(total_room + blocked_inventory) AS cantidad FROM booking_check_avilability WHERE check_in_date >= '$checkin' AND check_out_date <= '$checkout' GROUP BY room_type_id) AS bca ON cam.id_camera = bca.room_type_id WHERE cam.numero_ospiti >= '$guestsroommayor' GROUP BY cam.hotel_id HAVING disponibles >= '$totalrooms' ) AS rom ON hot.hotel_id = rom.hotel_id WHERE hot.hotel_city = '$destinazione'  AND disponibles >= '$totalrooms' ");

    var_dump($hotelearch);

    $tothotelsearch mysqli_num_rows($hotelearch); 
    Il vard_dump mi restituisce bool(false), mentre mysqli_num_rows mi restituisce un errore:

    codice:
    Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given
    La cosa strana è che questa stessa query provandola su phpMyAdmin, togliendo le variabili ovviamente, mi restituisce tre risultati correttamente.

    Sapete dirmi il motivo?

    Dimenticavo, sono in locale.

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    stampa la query prima di eseguirla
    se vedi che è tutto giusto, usa mysqli_error() dopo che la esegui per vedere l'errore

  3. #3
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Forse son quei valori che ti mandano in errore la query. Hai provato a stampare a video la query (con i valori delle variabili) ed eseguirla su phpmyadmin?
    Oppure a stampare quello che ti restituisce la mysqli_error($conn) ?

    Edit: Anicipato di un soffio ...

  4. #4
    Debug standard in questi casi:

    - controlla il contenuto delle variabili
    - stampa la query che esegui per controllarla
    - vedi cosa ti dice una mysqli_error($conn)

  5. #5
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    Se provo a fare print($hotelearch) non mi restituisce nulla, mysqli_error($conn) idem, tutto bianco.

  6. #6
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    Le variabili sono ok.

  7. #7
    Quote Originariamente inviata da lukezz Visualizza il messaggio
    Se provo a fare print($hotelearch) non mi restituisce nulla, mysqli_error($conn) idem, tutto bianco.
    Devi stampare la query NON il risultato!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  8. #8
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    Si fatto print($query):

    codice:
    SELECT hot.hotel_id, hot.hotel_name, hot.hotel_stars, hot.hotel_state, hot.hotel_city, hot.hotel_address, hot.hotel_zipcode, hot.longitud, hot.latitud, roomy, disponibles FROM hotels AS hot LEFT OUTER JOIN (SELECT cam.hotel_id, cam.id_camera AS roomy, MAX(cam.numero_camere - IFNULL(bca.cantidad,0)) AS disponibles FROM camere AS cam LEFT OUTER JOIN (SELECT room_type_id, MAX(total_room + blocked_inventory) AS cantidad FROM booking_check_avilability WHERE check_in_date >= '01/05/2015' AND check_out_date <= '05/05/2015' GROUP BY room_type_id) AS bca ON cam.id_camera = bca.room_type_id WHERE cam.numero_ospiti >= '2' GROUP BY cam.hotel_id HAVING disponibles >= '1' ) AS rom ON hot.hotel_id = rom.hotel_id WHERE hot.hotel_city = 'Adrano' AND disponibles >= '1'

  9. #9
    Quote Originariamente inviata da lukezz Visualizza il messaggio
    Si fatto print($query):

    codice:
    SELECT hot.hotel_id, hot.hotel_name, hot.hotel_stars, hot.hotel_state, hot.hotel_city, hot.hotel_address, hot.hotel_zipcode, hot.longitud, hot.latitud, roomy, disponibles FROM hotels AS hot LEFT OUTER JOIN (SELECT cam.hotel_id, cam.id_camera AS roomy, MAX(cam.numero_camere - IFNULL(bca.cantidad,0)) AS disponibles FROM camere AS cam LEFT OUTER JOIN (SELECT room_type_id, MAX(total_room + blocked_inventory) AS cantidad FROM booking_check_avilability WHERE check_in_date >= '01/05/2015' AND check_out_date <= '05/05/2015' GROUP BY room_type_id) AS bca ON cam.id_camera = bca.room_type_id WHERE cam.numero_ospiti >= '2' GROUP BY cam.hotel_id HAVING disponibles >= '1' ) AS rom ON hot.hotel_id = rom.hotel_id WHERE hot.hotel_city = 'Adrano' AND disponibles >= '1'
    Prova ad eseguirla manualmente ad esempio con phpMyAdmin
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  10. #10
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    Si ho già scritto che eseguendola con phpMyAdmin manualmente, non mi restituisce errori, mi da i giusti risultati.

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.