2017-07-26 18 views
1

Ich mag würde, um alle die post IDs von yesterday auf Wordpress, die SQL-Abfrage funktioniert gut, wenn ich es versucht, auf phpMyAdmin, gibt es alle IDs von gestern. Wenn ich jedoch versuchte, die IDs aus dem Array zu echo, die Werte im Array ist 'Array' anstelle der ID, die Zahlen sein sollte. Ich frage mich, warum die IDs im Array alle in das Wort 'Array' verwandelt wurde. Dies ist der Code, den ich schrieb:Echo Array von SQL in PHP-Programm

$yesterday = strtotime("-1 days"); 
$day = (int)date("d", $yesterday); 
$month = (int)date("n", $yesterday); 
$year = (int)date("Y", $yesterday); 

$sql = " 
    SELECT ID 
    FROM wp_posts 
    WHERE 1 = 1 
    AND DAY(post_date) = $day 
    AND MONTH(post_date) = $month 
    AND YEAR(post_date) = $year 
"; 

global $wpdb; 
$results = $wpdb->get_results($sql, 'ARRAY_N'); 

foreach ($results as $id) { 
    echo '<br>' . $id; 
} 

Update: änderte ich die Art der Ausgabe zu ARRAY_A und hinzugefügt, um die var_dump() vor der foreach Schleife, um zu sehen, was innerhalb des Arrays ist, und das ist, was ich habe:

output

+0

wpdb :: get_results (string $ query = null, string $ output = OBJECT) Return # (array | Objekt | null) Datenbank Abfrageergebnisse https://developer.wordpress.org/reference/classes/wpdb/get_results/ – Shefali

Antwort

1

Verwendung ARRAY_A statt ARRAY_N assoziatives Array zu erhalten, die .. $results in Ihrem Code numerisch indizierte mehrdimensionalen Array zurückgibt mehrdimensionales Array ist .. Verwendung var_dump() stattdessen auf Echo variable Inhalte (zum Testen) anzuzeigen

+0

'echo $ id ['ID'];' –

+0

mit der 'var_dump()' Ich kann sehen, dass die 'ID's in einem Array in einem anderen größeren Array gespeichert sind, ich habe eine Bildschirmaufnahme der Ausgabe und in der Post aktualisiert. Wenn ich nun eine "foreach" -Schleife für das innere Array innerhalb der "foreach" -Schleife für das größere Array anlege, druckt es die "ID" aus, danke für den Vorschlag auf 'var_dump()' zu überprüfen. – lhy

0

Nach diesem answer Sie den folgenden Code in der

foreach ($results as $result) { 
    echo '<br>' . $result->id; 
} 

Try foreach Schleife tun sollten die $results und erhalten das entsprechende Objekt zu drucken.

+0

Ich habe keine Ausgabe mit diesem Code, und das Ausdrucken von '$ result' gibt mir 'Array' – lhy