[PHP] Contare i record di una tabella

  • Creatore Discussione Creatore Discussione zorro
  • Data di inizio Data di inizio

zorro

Utente Attivo
20 Ott 2014
334
21
28
ROMA
Salve a tutti.
Come da titolo dovrei contare i record totali di una tabella. L'avevo già fatto usando le vecchie MySQL; ma, essendo ormai deprecate, cercavo di farlo usando le nuove MySQLi ma con scarsi successi: stò letteralmente impazzendo, sono giorni che cerco su internet ma....... niente. C'è qualcuno che mi può dare una mano?^
Di seguito riporto il vecchio codice che usavo


PHP:
//connessione al server DB
$link_connessione=mysql_connect("localhost","...........",".........") or die ("Connessione impossibile");
//Selezione del database
$db=mysql_select_db("............", $link_connessione) or die ("Database inesistente!");
//Visualizzazione dei record di una tabella
$query="SELECT COUNT(*) as tot FROM ANGRAFICA";
$tabella=mysql_query($query, $link_connessione) or die ("Attenzione: errore nella query");
//Esecuzione della query
$row=mysql_fetch_assoc($tabella);
//$count=$row[' count'];
$righetot=$row['tot'];


Grazle millea chi vorrà aiutarmi.

Zorro
 
ciao
si ti conviene passare a mysqli soprattutto se stai facendo un lavoro che dovrà durare nel tempo e quindi il rischio di dover rimettere le mani su tutto.
comunque non è difficile passare da mysql a mysqli se usi la programmazione procedurale, se usi la programmazione ad oggetti che mysqli permette devi studiare un po' di più.
comunque per sapere quanti sono i record, dai un occhio allo script schematico sotto
PHP:
//ho lasciato i nomi dellre variabili per capire cosa sono
//connessione al server DB e Selezione del database
$link_connessione = mysqli_connect($host,$username,$password, $db) or die (mysql_error());
$query="SELECT COUNT(*) as tot FROM ANGRAFICA";
$tabella=mysqli_query($link_connessione, $query) or die ("Attenzione: errore nella query");
$num_record_tot=mysqli_num_rows($tabella);//questo restituisce il numero totale di record che hai in tabelle
//...
 
Ciao Borgo,
innanzi tutto grazie per la pronta risposta.
In effetti ho imparato a programmare diversi anni fa con il procedurale; dal momento però che stà sempre più prendendo
piede la OOP sto cercando di adeguarmi (soprattutto con le nuove MySQLi) e, in effetti, ho qualche problema a passare dall'uno all'altro modo. A tal proposito ho trovato un post che spiegava
come inserire nuovi record in una tabella con la OOP. Ho cercato di modificarlo affinchè restituisse il nr dei record della tabella, ma invano
Mi suggeriresti come modificarlo affinchè conti effettivamente il numero dei record??


PHP:
//************stringa di connessione al DB*************

$connessione = new mysqli($host, $user, $password, $db);

// verifica su eventuali errori di connessione
if ($connessione->connect_errno) {
    echo "Connessione fallita: ". $connessione->connect_error . ".";
    exit();
} else {
    echo 'Connessione col DB correttamente riuscita!!!!<br>';
}

 
// esecuzione della query per l'inserimento dei record
if (!$connessione->query("INSERT INTO agenda (nome, cognome) VALUES ('.$pippo.', 'Messi'))")) {
    echo "Errore della query: " . $connessione->error . ".";
}else{
    echo "Inserimenti effettuati correttamente.";
}
// chiusura della connessione
$connessione->close();


Grazie.

Zorro
 
be, se stai facendo il salto, perché non usare direttamente PDO ?
se vuoi una buona guida,
https://phpdelusions.net/pdo
al suo interno troverai tutti gli argomenti,

sto usando pdo, da sempre,
ho esteso la classe con un mio sviluppo, riducendo al minimo indispensabile le istruzioni sql presenti negli script
ed al contempo gestendo bene la sicurezza

se ti serve una mano, fatti vivo, ciao
Marino
 
Ciao,
sì, in effetti avevo cominciato a studiare PDO. Credo che lo riprenderò. Grazie del consiglio


Zorro
 
ciao
che sia procedurale, oggetti o pdo credo che comunque per avere il numero di record totali, tu debba fare una query tipo "SELECT * FROM tabelle", non una query "INSERT....", con la insert (o l'udate o delete) puoi ottenere l'identificativo del record interessato che non è detto che corrisponda al numero dei record totali
 
No,
ma infatti mi son dimenticato di modificare la query: questo era l'esempio che ho trovato di query di inserimento
 

Discussioni simili