Pagina 1 di 1

RISOLTO Wordpress $wpdb->get_results ottenere resource

Inviato: martedì 2 giugno 2015, 8:26
da eaghezzi
la funzione wordpress $wpdb->get_results
ritorna sempre un array generando un carico elevato
è possibile avere in ritorno un resource e ciclare facendo il fetch una riga alla volta ?

Re: Wordpress $wpdb->get_results ottenere resource

Inviato: martedì 2 giugno 2015, 12:07
da cortinico
Puoi utilizzare $wpdb->get_row per ottenere una riga alla volta. Fai delle query filtrate sull'ID che vuoi ottenere, e ad ogni giro gli chiedi un ID nuovo:
https://codex.wordpress.org/it:Riferimento_classi/wpdb

Re: Wordpress $wpdb->get_results ottenere resource

Inviato: martedì 2 giugno 2015, 16:39
da eaghezzi
se fosse così semplice avrei fatto una select filtrata per id

ho bisogno l'elenco dei post ordinati e filtrati
che io sappia si può fare solo con l'accesso diretto al db senza usare wpdb

mi sembra strano che data una query 'generale' non ci sia modo di fare il fetch un record alla volta.

Re: Wordpress $wpdb->get_results ottenere resource

Inviato: mercoledì 3 giugno 2015, 1:47
da cortinico
Puoi provare ad usare un oggetto WP_Query: https://codex.wordpress.org/it:Riferime ... i/WP_Query
Comunque penso che per quanto riguarda quello che vuoi fare tu questo non ti possa essere di aiuto, ho provato a dare un'occhiata veloce al codice e vengono comunque caricati tutti i risultati appena si invoca il costruttore e mantenuti in un array associativo.

Re: Wordpress $wpdb->get_results ottenere resource

Inviato: mercoledì 3 giugno 2015, 6:12
da eaghezzi
grazie del contributo se può interessarti ho risolto così

dal mio plugin utilizzando le costanti definite in wp-config apro una nuova connessione al db eseguo la query senza utilizzare wpdb
e nella pagina eseguo il classico ciclo row=fetch ...
non è bello ma funziona bene e non carica il server.

Re: Wordpress $wpdb->get_results ottenere resource

Inviato: mercoledì 3 giugno 2015, 14:40
da cortinico
eaghezzi [url=http://forum.ubuntu-it.org/viewtopic.php?p=4765036#p4765036][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:grazie del contributo se può interessarti ho risolto così

dal mio plugin utilizzando le costanti definite in wp-config apro una nuova connessione al db eseguo la query senza utilizzare wpdb
e nella pagina eseguo il classico ciclo row=fetch ...
non è bello ma funziona bene e non carica il server.
Grazie della segnalazione ;)

Re: Wordpress $wpdb->get_results ottenere resource

Inviato: mercoledì 3 giugno 2015, 20:33
da Zoff
È possibile farlo anche con wpdb:

Codice: Seleziona tutto

<?php

$count = $wpdb->get_var('SELECT COUNT(*) FROM tabella WHERE condizione');
for( $i=0; $i<$count; $i++){
    $row = $wpdb->get_row('query', ARRAY_A, $i);
    //Use $row
}
Oppure:

Codice: Seleziona tutto

<?php

$i=0;
while( $row = $wpdb->get_row('QUERY', ARRAY_A, $i++) ){
    //Use $row
}

Re: Wordpress $wpdb->get_results ottenere resource

Inviato: giovedì 4 giugno 2015, 12:12
da cortinico
Zoff [url=http://forum.ubuntu-it.org/viewtopic.php?p=4765238#p4765238][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:È possibile farlo anche con wpdb:

Codice: Seleziona tutto

<?php

$count = $wpdb->get_var('SELECT COUNT(*) FROM tabella WHERE condizione');
for( $i=0; $i<$count; $i++){
    $row = $wpdb->get_row('query', ARRAY_A, $i);
    //Use $row
}
Oppure:

Codice: Seleziona tutto

<?php

$i=0;
while( $row = $wpdb->get_row('QUERY', ARRAY_A, $i++) ){
    //Use $row
}
+1 :D
Soluzioni molto eleganti entrambi