[PHP] [SOLVED] While query result

Mirco#0099FF

Nuovo Utente
22 Gen 2019
6
0
1
Salve a tutti, scusate la domanda forse un po' banale, nel mio progetto è incluso questa classe che uso per lanciare e preparare le query [https://github.com/tschoffelen/db.php/blob/master/Database.php] questo è il file (il mio ovviamente è leggermente diverso ma non varia il problema)
Dovrei generare un ciclo while simile a questo
PHP:
while($row = mysqli_fetch_assoc($query))
{
   // code ...
}
ma non riesco a capire come fare con il mysqli_fetch_assoc, qualcuno può aiutarmi?

Scusate ma è la prima volta che lavoro con le classi su PHP :(
 

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
PHP:
while($row = mysqli_fetch_assoc($query))
{
   foreach($row as $chiave=>$valore){
       echo $chiave.' - '. $valore.'<br>';
   }
}
 

Mirco#0099FF

Nuovo Utente
22 Gen 2019
6
0
1
PHP:
while($row = mysqli_fetch_assoc($query))
{
   foreach($row as $chiave=>$valore){
       echo $chiave.' - '. $valore.'<br>';
   }
}

Mi sa che non hai capito il problema di fondo, ti allego io mio codice con l'errore riportato
PHP:
$query = $db->select($GLOBALS['tblUsers'], FALSE, 1, FALSE, FALSE, '*')->row();
while ($row = mysqli_fetch_assoc($query))
{
   // code ...
}

e l'errore in questione è questo:
"Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, object given in /Applications/XAMPP/xamppfiles/htdocs/dashboard/index.php on line 7"
 

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
Immagino che la documentazione tu non l'abbia letta
https://github.com/tschoffelen/db.php
Reading results
Reading the results can be done with the following functions:

  • $db->count() returns the number of selected rows, equal to mysql_num_rows()

  • $db->result() returns all matches rows as an array containing row objects

  • $db->row() returns the first row that matches the query as an object

  • $db->result_array() returns all matches rows as an array containing row arrays

  • $db->row_array() returns the first row that matches the query as an array
Quindi :
PHP:
$result=$db->select($GLOBALS['tblUsers'], FALSE, 1, FALSE, FALSE, '*')->row_array();
foreach($result as $chiave=>$valore){
    echo $chiave.' - '. $valore.'<br>';
}
 

Mirco#0099FF

Nuovo Utente
22 Gen 2019
6
0
1
Immagino che la documentazione tu non l'abbia letta
https://github.com/tschoffelen/db.php
Reading results
Reading the results can be done with the following functions:

  • $db->count() returns the number of selected rows, equal to mysql_num_rows()

  • $db->result() returns all matches rows as an array containing row objects

  • $db->row() returns the first row that matches the query as an object

  • $db->result_array() returns all matches rows as an array containing row arrays

  • $db->row_array() returns the first row that matches the query as an array
Quindi :
PHP:
$result=$db->select($GLOBALS['tblUsers'], FALSE, 1, FALSE, FALSE, '*')->row_array();
foreach($result as $chiave=>$valore){
    echo $chiave.' - '. $valore.'<br>';
}
L'avevo letta ma non avevo pensato a questa soluzione, grazie mille.
 

Mirco#0099FF

Nuovo Utente
22 Gen 2019
6
0
1
Immagino che la documentazione tu non l'abbia letta
https://github.com/tschoffelen/db.php
Reading results
Reading the results can be done with the following functions:

  • $db->count() returns the number of selected rows, equal to mysql_num_rows()

  • $db->result() returns all matches rows as an array containing row objects

  • $db->row() returns the first row that matches the query as an object

  • $db->result_array() returns all matches rows as an array containing row arrays

  • $db->row_array() returns the first row that matches the query as an array
Quindi :
PHP:
$result=$db->select($GLOBALS['tblUsers'], FALSE, 1, FALSE, FALSE, '*')->row_array();
foreach($result as $chiave=>$valore){
    echo $chiave.' - '. $valore.'<br>';
}
Però ti faccio una domanda, per stampare un solo valore (come ad esempio $row['id']) come posso fare? Scusa la domanda banale
 

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
PHP:
$result=$db->select($GLOBALS['tblUsers'], FALSE, 1, FALSE, FALSE, '*')->row_array();
foreach($result as $chiave=>$valore){
    echo $valore['id'];
}
in alternativa
PHP:
echo $result[0]['id'];
in alternativa
PHP:
for($i=0;$i<count($result);$i++){
echo $result[$i]['id'];
}
 

Mirco#0099FF

Nuovo Utente
22 Gen 2019
6
0
1
PHP:
$result=$db->select($GLOBALS['tblUsers'], FALSE, 1, FALSE, FALSE, '*')->row_array();
foreach($result as $chiave=>$valore){
    echo $valore['id'];
}
in alternativa
PHP:
echo $result[0]['id'];
in alternativa
PHP:
for($i=0;$i<count($result);$i++){
echo $result[$i]['id'];
}
No, le ho provate tutte ma non funzionano, dovrei creare una tabella con quei dati e non riesco a selezionarne un singolo campo :(

Scusa mi spiego meglio, di per se funziona il metodo che mi hai detto (anche se ho usato $result['id] perché altrimenti dava errore) ma nonostante ci sia un solo record nel database a me stampa 16 volte il risultato (16 di fatto sono i campi del database)
 
Ultima modifica:

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
Scusa mi spiego meglio, di per se funziona il metodo che mi hai detto (anche se ho usato $result['id] perché altrimenti dava errore) ma nonostante ci sia un solo record nel database a me stampa 16 volte il risultato (16 di fatto sono i campi del database)
Scusa, leggi la documentazione invece di andare a tentativi....
se il problema è la stampa fai un
PHP:
print_r($result)
e vedi di che natura è la variabile.... in questo modo dovresti riuscire a capire che tipo di dato devi trattare.
 

Mirco#0099FF

Nuovo Utente
22 Gen 2019
6
0
1
Scusa, leggi la documentazione invece di andare a tentativi....
se il problema è la stampa fai un
PHP:
print_r($result)
e vedi di che natura è la variabile.... in questo modo dovresti riuscire a capire che tipo di dato devi trattare.
L'oggetto in questione è un array ma non capisco perché mi stampa ogni risultato 16 volte, come se invece di dire (per ogni riga prendesse per ogni colonna)
 

Dex01

Nuovo Utente
12 Gen 2018
15
0
1
25
Scusa, leggi la documentazione invece di andare a tentativi....
se il problema è la stampa fai un
PHP:
print_r($result)
e vedi di che natura è la variabile.... in questo modo dovresti riuscire a capire che tipo di dato devi trattare.
Io ho un problema diverso, non riesco a trovare il modo di eseguire una specifica query con questa classe, la query è questa, potete aiutarmi


Codice:
SELECT `id` FROM `nwm_post` WHERE NOT EXISTS (SELECT who_block FROM nwm_block WHERE `author` = who_is_blocked AND who_block = 1) AND NOT EXISTS (SELECT who_block FROM nwm_block WHERE `author` = who_block AND who_is_blocked = 1) AND `deleted` = FALSE ORDER BY `timestamp` DESC
 

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
Scusa mi spiego meglio, di per se funziona il metodo che mi hai detto (anche se ho usato $result['id] perché altrimenti dava errore) ma nonostante ci sia un solo record nel database a me stampa 16 volte il risultato (16 di fatto sono i campi del database)
Ripeto.... nell variabile result ci sta direttamente la riga completa prelevata dal DB, quindi stampa 16 volte perchè ci sono (forse) 16 colonne....
e vedi di che natura è la variabile....
Ossia è array di oggetti o è un oggetto?

Quindi nel caso di array di obj:
PHP:
$result[0]->id
altrimenti
PHP:
$result->id

Notazione obj o array sono identiche cambia solo la scrittura da
PHP:
$obj->obj
//a
$obj['obj]
  • $db->count() returns the number of selected rows, equal to mysql_num_rows()

  • $db->result() returns all matches rows as an array containing row objects

  • $db->row() returns the first row that matches the query as an object

  • $db->result_array() returns all matches rows as an array containing row arrays

  • $db->row_array() returns the first row that matches the query as an array
$ db-> count () restituisce il numero di righe selezionate, uguale a mysql_num_rows ()
$ db-> result () restituisce tutte le righe corrispondenti come una matrice contenente oggetti riga
$ db-> row () restituisce la prima riga che corrisponde alla query come oggetto
$ db-> result_array () restituisce tutte le righe corrispondenti come una matrice contenente matrici di righe
$ db-> row_array () restituisce la prima riga che corrisponde alla query come una matrice
Ti trovi nell'ultimo caso.... quindi direttamente array chiave valore
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
F Cerco Hosting con VECCHIE versioni di php Hosting 0
Cosina Captcha php PHP 1
S passare un valore da un form a un file .php con metodo post PHP 4
N php msyql PHP 6
N php problemi a visualizzare video PHP 3
A menu a tendina php PHP 1
D protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito Web Server 1
F Php date_diff PHP 1
K [PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa PHP 2
C Wp-admin a file php WordPress 5
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
csi Inviare file jpg in locale alla stampante con php PHP 0
M Passaggio variabili array php su un tasto jq PHP 3
E Php aggiornamento tabella PHP 9
G phpmailer e php 8.1 con estensione mysqli PHP 6
M Invio dati database via email php PHP 0
K [php] Problema con inner join PHP 4
K [php]form invio dati PHP 0
P Codifica caratteri speciali mysql php PHP 0
K [PHP] Problema con variabili concatenate. PHP 1
E Stampante termica escpos-php PHP 6
JeiMax Modifica codice php personalizzato PHP 2
G Come modificare un pdf in php PHP 1
U Link a doppio file PHP PHP 0
E PHP & jQuery PHP 8
N Passare array da php a javascript PHP 5
F Applicazione PHP/MySQL per prenotazioni: limitare il numero massimo di posti prenotabili PHP 20
L tipo boolean non funzionante su mariadb (mysql). E codice php 7.4. PHP 0
U PHP creare un file excel dopo ricerca nel DB PHP 0
M PHP/MySQL - Estrarre valori min e max di ogni gruppo PHP 5
F Php e fatturazione elettronica PHP 0
P lanciare script asp (o php) da jquery Javascript 1
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
P Data scraping in PHP non funziona PHP 4
C Calcoli matematici in php PHP 5
F Scrivere dei dati in word con php PHP 0
D PHP leggere cartella di Windows PHP 1
I dominio aruba versione php server linux Domini 3
G Colorare menu select attraverso ricerca php PHP 0
L PHP motore di ricerca nel sito PHP 1
S PHP e Mysqli PHP 0
Y Stampare da php su un foglio A6 attraverso una stampante esterna PHP 1
M Visulizzare immagine con php PHP 8
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
G leggere file txt e stampare con php il contenuto a video PHP 7
F Ricreare struttura php+mysql su Xampp Apache 0
Z PHP.INI - STMP per invio email con PHP Server Dedicati e VPS 0
M Array associativi php su 2 campi mysql PHP 10
G Invio form con PHP PHP 3
T fatture con voci fattura in php PHP 0

Discussioni simili