Utilizzare la funzione mysql_num_rows() in PHP 5

miagy

Utente Attivo
2 Nov 2014
83
1
8
Ciao ragazzi,
solo per mera curiosità. Con le antiche versioni di PHP, ho sempre usato la funzione mysql_num_rows() di MySQL per conteggiare il numero di righe di un risultato. In base al risultato, le soluzioni erano 2.
Più nello specifico, la usavo in questo modo:

PHP:
$checkoff = mysql_num_rows(mysql_query("SELECT * FROM chat WHERE idchat = ".$_SESSION['idchat']." AND autore = '".$_SESSION['login']."'"));

if ($checkoff > 0) {
    
    //RISULTATO 1
    
} else {
    
    //RISULTATO 2
}

Adesso, in parte l'ho sempre odiato perché l'ho sempre reputato molto pesante per il server, (un loop che percorre ogni riga per contarle oggi sembra una follia).

Esiste un metodo più moderno (magari con un PHP 5.4) che possa alleggerire questa funzione seguendo la stessa logica?
 

Hormus

Utente Attivo
26 Giu 2020
83
10
8
In realtà la libreria mysqli esiste fin da php 5.0.0 devi adeguare il tuo codice nell'utilizzare tale libreria invece che la ormai deprecata e rimossa di mysq da php 7.0.
Ecco il doc php come lo spiega https://www.php.net/manual/en/mysqlinfo.concepts.buffering.php ovviamente nota che nello stile procedurale $link è il primo parametro della funzione mysqli_query mentre in mysql_query sarebbe stato il secondo parametro.
 
Ultima modifica:

miagy

Utente Attivo
2 Nov 2014
83
1
8
Grazie mille della risposta.
Ho letto il link, ma francamente non ho capito - stando ai 3 esempi riportati - cosa io debba sostituire per avere un risultato simile :S
 

Hormus

Utente Attivo
26 Giu 2020
83
10
8
Bufferizzata:
Le query utilizzano la modalità bufferizzata per impostazione predefinita. Ciò significa che i risultati della query vengono immediatamente trasferiti da MySQL Server a PHP e quindi conservati nella memoria del processo PHP.
Senza Buffer:
Si occupa solo MySQL Server.
Per grandi dimensioni di dati si adopera senza buffer i tre esempi che hai letto in quella pagina.
Attenzione la funzione mysqli_num_rows ritorna (nel caso che non esista row ritorna zero) un intero decimale ma se supera PHP_INT_MAX è di tipo stringa, comunque usa il buffer perché senza buffer può ritornare valori sbagliati.
Il tuo else indica l'alternativa che dunque è uguale o minore a zero e lo zero dentro un if significa false non eseguire e si usa else per procedere.. non esiste altra soluzione che appunto l'alternativa.
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
A utilizzare array di una funzione in un'altra jQuery 1
S Utilizzare la funzione postmessage per fare un redirect Javascript 0
G Consiglio su piattaforma forum da utilizzare CMS (Content Management System) 1
L [WordPress] Utilizzare multisite per network di agenzie WordPress 0
S utilizzare monitor per videosorveglianza IP Cam e Videosorveglianza 6
D [PHP] Utilizzare un form in multitasking PHP 3
A passare parametri ad un file php prima di utilizzare $.get jQuery 1
L [WordPress] creare un plugin , come faccio ad utilizzare le session. WordPress 5
K [ASP.Net] Utilizzare e modificare dati linq ASP.NET 0
A utilizzare variabile inviata tramite json Ajax 9
cosmin Utilizzare una variabile php in CREATE TABLE mysql. PHP 2
I come utilizzare dati Json provenienti da un url esterno Javascript 1
B Sito professionale utilizzare joomla o altro ?? CMS (Content Management System) 6
felino [WebApp][Report] Report online: quali strumenti utilizzare? PHP 4
S Utilizzare path_info per riscrivere gli url PHP 2
P utilizzare dati raccolti tramite form PHP 2
L utilizzare https per ecommerce Hosting 9
F Come utilizzare Jquery cookie al riavvio del browser jQuery 0
P ogni vista deve avere un ViewController.h o può utilizzare sempre lo stesso? Sviluppo app per iOS 0
S Utilizzare piu if in una pagina PHP 5
P utilizzare INN JOIN PHP 8
P utilizzare API con php PHP 1
A Come utilizzare cURL per connettersi a uno streaming? PHP 0
braccobaldo [GUIDA] VBulletin 4: lista di condizioni e variabili da utilizzare nei template CMS (Content Management System) 2
neo996sps Applicazione complessa in PHP: quale framework utilizzare? PHP 3
A Quando utilizzare i form in javascript Javascript 1
V Utilizzare una chiavetta USB Linux e Software 9
L Che formato utilizzare? HTML e CSS 3
corkis81 realizzare sito web: utilizzare un cms? CMS (Content Management System) 15
M Come utilizzare :hover senza documento .css HTML e CSS 4
G utilizzare personaggi come logo (super mario, sonic etc etc) Leggi, Normative e Fisco 2
G utilizzare screenshot google earth Leggi, Normative e Fisco 0
B Come utilizzare ClipBucket? CMS (Content Management System) 1
I Meglio utilizzare i trattini o l'underscore? [era: Tratto divisore.] Windows e Software 4
N [Access] Utilizzare un modulo all interno di una macro MS Access 0
N Credenziali da utilizzare per un dominio. Domini 0
A Utilizzare HTACCESS per HTTPS Apache 3
K Utilizzare tag html in dreamweaver cs4 Webdesign e Grafica 3
S utilizzare i cookie PHP 8
S font da utilizzare su un sito web [era: un piccolo aiutino!] HTML e CSS 8
A script per utilizzare mouse trailer Webdesign e Grafica 1
M Quale video player utilizzare? Webdesign e Grafica 1
S utilizzare files di access con php PHP 5
A Utilizzare la sessione di phpbb3 phpBB 3
I Come utilizzare il database Access su Asp? Classic ASP 2
T consiglio su quale programma utilizzare Discussioni Varie 0
S [VB.net 2005] Utilizzare il metodo POST - GET Programmazione 6
K Possibilità di utilizzare le funzioni di cronologia in un filmato Flash 1
B chi mi insegna ad utilizzare php? PHP 4
S [VB.net 2005] Utilizzare XML come Origine Dati Programmazione 1

Discussioni simili