Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-01-2008, 00:15   #1
bouncey2k
Member
 
Iscritto dal: Jan 2006
Messaggi: 271
[PHP, MySQL] problematica mysql_num_rows

Ho un ciclo che mi mostra alcuni articoli del database

Codice PHP:
$select mysql_query ("SELECT * FROM articoli LIMIT 0,5"$db);
while (
$record mysql_fetch_array ($select))
{
echo 
"<p>{$record['testo']}</p>";

in un'altra tabella "commenti" (nello stesso database) ho i commenti agli articoli; vorrei inserire il loro numero sotto il $record['testo']:
Codice PHP:
{
echo 
"<p>{$record['testo']}</p>";
echo 
"<p>(n.commenti $num_righe)</p>";

Per fare questo ho scritto due righe fuori dal ciclo while:

Codice PHP:
$select_count mysql_query ("SELECT * FROM commenti WHERE link_b = '$id' "$db);
$num_righe mysql_num_rows($select_count); 
Solo che non funziona perché pare che il while legga l'altra $select e non quella del conteggio righe.

Ho provato il codice senza il while e il numero delle righe me le legge.
Come potrei fare?
bouncey2k è offline   Rispondi citando il messaggio o parte di esso
Old 03-01-2008, 00:27   #2
vizzz
Senior Member
 
L'Avatar di vizzz
 
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
sapere per esteso la struttura delle tabelle chiarirebbe le cose, comuque ad occhio una soluzione veloce (forse non la migliore) sarebbe per ogni articolo di cui mostri il testo effettuare la query per ottenere il numero di commenti.
sapendo la struttura completa magari è possibile fare la stessa cosa con una query sola utilizzando una join.
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.
vizzz è offline   Rispondi citando il messaggio o parte di esso
Old 03-01-2008, 10:00   #3
kk3z
Senior Member
 
L'Avatar di kk3z
 
Iscritto dal: Nov 2003
Messaggi: 980
Codice PHP:
$select mysql_query ("SELECT a.*, COUNT(c.id) num_commenti
FROM articoli a
LEFT JOIN commenti c ON c.link_b  = a.id
GROUP BY a.id
LIMIT 0,5"
$db);
while (
$record mysql_fetch_array ($select))
{
echo 
"<p>{$record['testo']}</p>";
echo 
"<p>(n.commenti $record['num_commenti'])</p>";

a.id è l'id dell'articolo
kk3z è offline   Rispondi citando il messaggio o parte di esso
Old 03-01-2008, 13:41   #4
bouncey2k
Member
 
Iscritto dal: Jan 2006
Messaggi: 271
Quote:
Originariamente inviato da kk3z Guarda i messaggi
Codice PHP:
$select mysql_query ("SELECT a.*, COUNT(c.id) num_commenti
FROM articoli a
LEFT JOIN commenti c ON c.link_b  = a.id
GROUP BY a.id
LIMIT 0,5"
$db);
while (
$record mysql_fetch_array ($select))
{
echo 
"<p>{$record['testo']}</p>";
echo 
"<p>(n.commenti $record['num_commenti'])</p>";

a.id è l'id dell'articolo
Che cosa stanno a significare quei "a" e "c"? E quel "FROM articoli a" ?
bouncey2k è offline   Rispondi citando il messaggio o parte di esso
Old 03-01-2008, 15:04   #5
kk3z
Senior Member
 
L'Avatar di kk3z
 
Iscritto dal: Nov 2003
Messaggi: 980
a, c e num_commenti sono alias, cioè un altro modo di identificare una tabella (articoli -> a, commenti -> c) o un campo (COUNT(commenti.id) -> num_commenti). Se non ti è chiaro, ecco altre 2 soluzioni identiche:
Codice:
SELECT a.*, COUNT(c.id) AS num_commenti
FROM articoli AS a
LEFT JOIN commenti AS c ON c.link_b  = a.id
GROUP BY articoli.id
LIMIT 0,5
Codice:
SELECT articoli.*, COUNT(commenti.id)
FROM articoli
LEFT JOIN commenti ON commenti.link_b  = articoli.id
GROUP BY articoli.id
LIMIT 0,5
kk3z è offline   Rispondi citando il messaggio o parte di esso
Old 03-01-2008, 16:32   #6
bouncey2k
Member
 
Iscritto dal: Jan 2006
Messaggi: 271
adesso funziona, però GROUP BY articoli.id me li ordina in maniere crescente, io vorrei che me li ordinasse in maniera decrescente.

Ho provato con un ORDER BY articoli.id DESC ma non funziona, addirittura spariscono gli articoli!
bouncey2k è offline   Rispondi citando il messaggio o parte di esso
Old 03-01-2008, 17:19   #7
kk3z
Senior Member
 
L'Avatar di kk3z
 
Iscritto dal: Nov 2003
Messaggi: 980
Sicuramente metti l'ORDER BY nel posto sbagliato, e poi non controlli se la query dà errore o no. L'ORDER BY va dopo il GROUP BY e prima del LIMIT:
Codice:
SELECT a.*, COUNT(c.id) num_commenti
FROM articoli a
LEFT JOIN commenti c ON c.link_b  = a.id
GROUP BY a.id
ORDER BY a.id DESC
LIMIT 0,5
kk3z è offline   Rispondi citando il messaggio o parte di esso
Old 03-01-2008, 17:40   #8
bouncey2k
Member
 
Iscritto dal: Jan 2006
Messaggi: 271
Grazie. Adesso funziona tutto.
bouncey2k è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Airbus realizzerà altri 229 satel...
Arianespace lancerà altri satelli...
Eutelsat ha annunciato di aver affidato ...
PLD Space ha annunciato il nuovo razzo s...
CMF Clip Pro, tanta autonomia e design u...
Tre leggende del rally sbarcano in Asset...
iPhone 18 Pro Max, il chip A20 Pro mostr...
Samsung porterà il Privacy Displa...
WINDTRE BUSINESS trasforma la rete mobil...
Anthropic ammette un quarto caso di acce...
Mazda CX-6e, il primo test drive: quando...
La serie HONOR Magic 9 arriva a fine set...
Anker MagGo Power Bank 2 Pro arriva in I...
iRobot rilancia con Roomba Duo, il proto...
#linux su IRC è tornato dopo anni di sil...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 01:33.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v