scrierea interogării INNER JOIN în wpdb

17 sept. 2015, 20:50:19
Vizualizări: 14.4K
Voturi: 1

Am o problemă în scrierea sintaxei SQL Inner Join în WordPress. Această logică ar trebui să funcționeze, am încercat în phpmyadmin și merge perfect

SELECT booking_calendars.cal_name
FROM booking_calendars 
INNER JOIN booking_reservation 
ON booking_calendars.id = booking_reservations.calendar_id
WHERE status LIKE 'pending'

dar în WordPress nu funcționează

$pending_reservations = $wpdb->get_results(" 
    SELECT booking_calendars.cal_name
    FROM'.$wpdb->prefix.'booking_calendars AS booking_calendars
    INNER JOIN' . $wpdb->prefix.'booking_reservation AS booking_reservations
    ON booking_calendars.id =  booking_reservations.calendar_id
    WHERE status LIKE 'pending'");

și apoi

echo "<h2>Rezervări în așteptare: </h2><br>";
        var_dump( $pending_reservations);
        if($pending_reservations>0)
        {
        foreach ( $pending_reservations as $pending_reservation ) 
        {
            echo "<label>". $pending_reservation->cal_name."</label><br>";
        }
    }else{
        echo "<label>Nicio rezervare în așteptare</label><br>";
    }

Am folosit var_dump pe $pending_reservations și returnează array(0) { } în WordPress

3
Comentarii

Ce zici de asta? "SELECT booking_calendars.cal_name FROM {$wpdb->booking_calendars} AS booking_calendars INNER JOIN {$wpdb->booking_reservation} AS booking_reservations ON booking_calendars.id = booking_reservations.calendar_id WHERE status LIKE 'pending'"

Mayeenul Islam Mayeenul Islam
17 sept. 2015 21:00:37

Ai încercat să afișezi interogarea pentru a vedea ce se generează? Cred că încearcă să interogheze tabela wp_booking_calendars deoarece adaugi $wpdb->prefix

czerspalace czerspalace
17 sept. 2015 21:11:12

@czerspalace bună observație :)

Mina Ragaie Mina Ragaie
17 sept. 2015 21:16:56
Toate răspunsurile la întrebare 1
0

mulțumesc pentru timpul acordat și mulțumiri speciale lui @czerspalace Am început interogarea cu ghilimele duble și apoi am separat-o cu ghilimele simple, iar după ce am analizat rezultatul afișat de echo am observat că nu există spații între From și numele tabelei

acesta este modul corect

$pending_reservations = $wpdb->get_results(' 
    SELECT booking_calendars.cal_name
    FROM '.$wpdb->prefix.'booking_calendars AS booking_calendars
    INNER JOIN '. $wpdb->prefix.'booking_reservation AS booking_reservations
    ON booking_calendars.id =  booking_reservations.calendar_id
    WHERE status LIKE "pending"');
17 sept. 2015 22:05:06