problema raccapricciante php conteggio query

trattorino

Utente Attivo
23 Lug 2016
173
1
18
41
Ci sto ssbattendo la testa ore, ma non riesco a trovare una soluzione semplice senza incasinare la pesantezza con i processi di richiamo, in sostanza tramite usufruisco di una while per scaricarmi delle query es;

PHP:
while($row = mysqli_fetch_array($resultNumeroRep))
{
$reaction =  $row['reaction'];

}

la variabile $reaction mi scarica , facciamo un esempio, scarica 10 query guardate;
1
2
2
4
6
8
7
4
3
2
5
6
7
8
e qui viene il bello, quello che voglio fare e mi sto letteralmente scelvellando, e far in modo che riesco a conteggiare ad esempio i risultati '2' voglio prendere i risultati 2 e conteggiarli in questo caso come vedete sono 3, ho provato svariati modi ma senza risultati, ad esempio usando un contatore, inserire dentro il while $count++ e poi $count tutto dentro una if, ma da risultati ari a uno logicamente perche è dentro il while e cicla, riesco a prelevare il numero sono le la variabile $count la metto fuori dal while... avete ideee? cosa sbaglio mi sto perdendo in un bicchiere d'acqua
 

marino51

Utente Attivo
28 Feb 2013
3.164
202
63
Lombardia
non é molto chiara la tua richiesta, provo ancora con suggerire l'uso di count(*) nella query,
oppure con l'uso di un array per contare i diversi elementi
PHP:
$contatore = array();
while($row = mysqli_fetch_array($resultNumeroRep))
{
    $reaction =  $row['reaction'];

    if( empty($contatore[$reaction]) ) $contatore[$reaction] = 0;
    $contatore[$reaction] += 1;
}

// qui, il contatore é valorizzato con gli elementi presenti e contati
 
  • Like
Reactions: trattorino

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
Semplicemente senza iterare il risultato, che è solo uno spreco di risorse potresti utilizzare (se non vuoi dar retta a @marino51 con il count nella query) la funzione nativa di php : "array_count_values".
Eviterei if inutili le performance sui piccoli numeri sono abbastanza evidenti, basta effettuare una prova con e senza "IF":
PHP:
while($row = mysqli_fetch_array($resultNumeroRep))
{
    $contatore[] = $row['reaction'];
}
print_r(array_count_values($contatore));
Cosa fa l'IF: Sta valutando ogni iterazione (perde sostanzialmente tempo).
Problema: all'aumentare delle reactions il tempo di elaborazione aumenta.
Provare per credere.
L'img sotto rappresenta sulla sinistra la soluzione con if, sulla destra la soluzione senza if.
 

Allegati

  • per.png
    per.png
    4,8 KB · Visite: 323
  • Like
Reactions: trattorino

trattorino

Utente Attivo
23 Lug 2016
173
1
18
41
mi da sempre lo stesso problema uso
PHP:
$contatore[$reaction] = 1;
$testss = count($contatore);
inserito dentro il while mi da questo
1
2
3
questo perche cicla tre volte, da tre risultati, il secondo suggerimemto devo inserirlo fuori dai while cosa che non posso fare

penso di essermi fatto capire, il while mi scarica tre risultati, usufruendo della variabile $reaction = $row['reaction']; mi scarica ad esempio 5 risultati

carlo
valerio
massimo
valerio
valerio

io voglio conteggiare valerio e nn tutti i risultati, dentro il while, come posso fare per prelevare il numero 3? il ciclo while me lo impedisce se inserisco un contatore mi da risultato 1 - 2 - 3 dovrei prendere l'ultimo risultato 3 per risolvere
 
Ultima modifica:

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
Forse non hai visto bene la funzione di prima.... vedi cosa fa:
PHP:
$ar=['uno','due','tre','quattro','cinque'];
$data=[];
for($i=0;$i<25;$i++){
   $data[]=$ar[rand(0,count($ar)-1)];
}
print_r($data);
print_r(array_count_values($data));
output primo print_r
Codice:
Array
(
[0] => due
[1] => tre
[2] => uno
[3] => uno
[4] => due
[5] => uno
[6] => uno
[7] => tre
[8] => tre
[9] => uno
[10] => uno
[11] => cinque
[12] => cinque
[13] => quattro
[14] => quattro
[15] => uno
[16] => cinque
[17] => due
[18] => cinque
[19] => due
[20] => due
[21] => tre
[22] => quattro
[23] => cinque
[24] => quattro
)
Output secondo print_r
Codice:
Array
(
[due] => 5
[tre] => 4
[uno] => 7
[cinque] => 5
[quattro] => 4
)
Credo sia quello che a te serve.... nel caso specifico sapere quante volte è usata "uno"
PHP:
$conta=array_count_values($data);
print_r($conta['uno']);
 
  • Like
Reactions: trattorino
Discussioni simili
Autore Titolo Forum Risposte Data
F firefox problema http Linux e Software 0
N Problema con position absolute e overflow HTML e CSS 4
E Problema jquery Success jQuery 2
L Problema con inner join PHP 11
K [php] Problema con inner join PHP 4
E problema selezione sfumata Photoshop 2
K [PHP] Problema con variabili concatenate. PHP 1
A Problema filtro fluidifica Photoshop Photoshop 1
H Problema Bordi Scontorno Photoshop 1
O problema con query PHP 4
R Problema installazione Realtek WiFi USB rtl8821 Reti LAN e Wireless 0
I problema con 2 account Posta Elettronica 1
L problema collegamento file css con html HTML e CSS 0
Y Problema percorso file in rete PHP 1
N Problema SEO "L'URL non si trova su Google" SEO e Posizionamento 3
E Problema accesso a file con app sviluppata con MIT APP INVENTOR 2 Sviluppo app per Android 0
P Problema acquisizione clienti Webdesign e Grafica 0
F NetBeans problema creazione progetto Java Windows e Software 0
M Problema con Try Catch PHP 0
C problema seo + cerco esperto SEO e Posizionamento 10
Sergio Unia Problema con gli eventi del mouse su una data table: Javascript 2
T PROBLEMA CON SESSIONI PHP 3
A Problema, non so, di scale() o transform, oppure altro? HTML e CSS 0
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
R problema con else PHP 0
T PROBLEMA CON ARRAY PHP 8
L problema con query select PHP 2
R Problema query con ricerca id numerico PHP 2
F Problema con risposta PHP 0
S problema con recupero dati tabella mysql PHP 2
Z Problema con il mio tp-l i nk Reti LAN e Wireless 1
I PROBLEMA: Sostituzione sito XAMPP E-Commerce 0
T problema data 30/11/-1 PHP 0
L Problema RAM con Tomcat 8 Apache 0
napuleone problema con sort e asort PHP 4
Y Problema incolonnamento tabella PHP 7
S problema salvataggio immagini Photoshop 0
Z Problema con INT MySQL PHP 1
Z Problema database MySQL con XAMPP PHP 0
M Problema con controllo form in real time jQuery 6
D problema php mysql PHP 1
D problema php mysql PHP 1
M Problema Wi-Fi Linux Linux e Software 1
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
Daniele_Carrara Problema Aperture Mailup Email Marketing 5
F PROBLEMA ACCESSO INSTAGRAM Discussioni Varie 1
R Problema connessione db PHP 7
M problema if PHP 2
P Problema ArrayList<Pacco>... Java 0
G Problema con Get page PHP 4

Discussioni simili