$ wpdb-> get_row () gibt nur eine einzelne Zeile zurück?
4 Antworten
- Stimmen
-
- 2011-04-08
Verwenden Sie
verwendenget_row()
nur dann,wenn Sieein Ergebniserwarten,andernfalls können Sieget_results()
Indeed, use
get_row()
only when you expect to get one result, else you can useget_results()
-
Referenz siehe https://developer.wordpress.org/reference/classes/wpdb/get_row/ und https://developer.wordpress.org/reference/classes/wpdb/get_results/For reference see https://developer.wordpress.org/reference/classes/wpdb/get_row/ and https://developer.wordpress.org/reference/classes/wpdb/get_results/
- 2
- 2017-06-21
- user51928
-
- 2011-04-08
Esgibt drei Möglichkeiten,Daten aus der Datenbank abzurufen.
1.
$wpdb->get_var
: Verwenden Sie diese Option,umeinen einzelnen Wert aus der Datenbanktabelle abzurufen. Zum Beispiel,wenn Sie die Gesamtzahl der Kommentare zählenmöchten. Sie können diesfolgendermaßentun:<?php $comment_count = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM $wpdb->comments;")); echo '<p>Total comments: ' . $comment_count . '</p>'; ?>
2.
$wpdb->get_row
: Umeine gesamte Tabellenzeile abzurufen,können Sie diese verwenden.Beispiel:
<?php $thepost = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE ID = 1" ) ); echo $thepost->post_title; ?>
ODER
<?php $thepost = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE ID = 1" ), ARRAY_A ); print_r ($thepost); ?>
Mit dem Parameter
ARRAY_A
in get_row werden Ihre Post-Daten als assoziatives Array zurückgegeben. Alternativ können Sie den ParameterARRAY_N
verwenden,um Ihre Post-Datenin einemnumerischindizierten Array zurückzugeben.3.
$wpdb->get_results
: StandardabfragenSELECT
sollten die Funktionget_results zum Abrufenmehrerer Datenzeilen aus der Datenbank verwenden.<?php global $wpdb; $allposts = $wpdb->get_results( $wpdb->prepare("SELECT ID, post_title FROM $wpdb->posts WHERE post_status = 'publish'") ); foreach ($allposts as $singlepost) { echo '<p>' .$singlepost->post_title. '</p>'; } ?>
und Siebenötigen den letzten,wie Sieerwarten können.
There are three ways to pull data from the database.
1.
$wpdb->get_var
:use this to get a single value from the database table. Like if you want to count the total number of comments. You can do it in following way:<?php $comment_count = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM $wpdb->comments;")); echo '<p>Total comments: ' . $comment_count . '</p>'; ?>
2.
$wpdb->get_row
: To retrieve an entire table row you can use this.Example:
<?php $thepost = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE ID = 1" ) ); echo $thepost->post_title; ?>
OR
<?php $thepost = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE ID = 1" ), ARRAY_A ); print_r ($thepost); ?>
By using the
ARRAY_A
parameter in get_row your post data is returned as an associative array. Alternatively, you could use theARRAY_N
parameter to return your post data in a numerically indexed array.3.
$wpdb->get_results
:StandardSELECT
queries should use the get_results function for retrieving multiple rows of data from the database.<?php global $wpdb; $allposts = $wpdb->get_results( $wpdb->prepare("SELECT ID, post_title FROM $wpdb->posts WHERE post_status = 'publish'") ); foreach ($allposts as $singlepost) { echo '<p>' .$singlepost->post_title. '</p>'; } ?>
and you need the last one, as you can expect.
-
Wunderbare Detailbeispiele ..Wonderful detail examples..
- 1
- 2013-01-27
- pixelngrain
-
Sicher! warumnicht..Sure! why not..
- 0
- 2013-01-28
- pixelngrain
-
- 2011-09-01
$wpdb->get_row('query', output_type, row_offset);
row_offset (Ganzzahl) Diegewünschte Zeile (0ist dieerste).Der Standardwertist 0.
$wpdb->get_row('query', output_type, row_offset);
row_offset (integer) The desired row (0 being the first). Defaults to 0.
-
- 2016-11-16
meine Lösungisteinfach ..
<?php function count_results() { # use the data base global $wpdb; # Query to count all results from one table $sql_count_results = ' SELECT count(*) as count FROM `YOUR_TABLE`;'; # Ejecute function $results = $wpdb->get_row( $sql_count_results , OBJECT ); # Return results return $results->count; }
Verwenden Sie:
<?php echo count_results();
my solution is simple..
<?php function count_results() { # use the data base global $wpdb; # Query to count all results from one table $sql_count_results = ' SELECT count(*) as count FROM `YOUR_TABLE`;'; # Ejecute function $results = $wpdb->get_row( $sql_count_results , OBJECT ); # Return results return $results->count; }
Use:
<?php echo count_results();
-
Es wäregroßartig,wenn Sie zusätzlich zum Posten aucherklären könnten,was dieser Codebewirkt.It would be great if you can also explain what this code does in addtion to posting it.
- 4
- 2016-11-16
- bravokeyl
-
Dies zählt die Zeilenin einer Tabelle undist keine Antwort auf die Frage des OP.This counts the rows in a table, it is not an answer to the OP's question.
- 0
- 2019-01-15
- alexg
Warumistes so?Ich habe dieselbe Abfragein der Konsole versucht und sie hatmehrere Zeilen zurückgegeben.Hierist die Abfrage:
$this->wpdb->get_row("SELECT * FROM ".$this->wpdb->users." WHERE status = 'active'", ARRAY_A);
Beimehreren aktiven Benutzern wirdimmer dieselbeeinzelne Zeile zurückgegeben.Vermisseichetwas?