- Home
- Categorie
- Coding e Sistemistica
- PHP
- Contare articoli di un determinato utente sul database
-
Contare articoli di un determinato utente sul database
Ciao a tutti,
ho un problema con il database mysql e php.Sul mio database memorizzo gli articoli di ogni utente, però ogni utente può scrivere più di un articolo, e nel database verrà memorizzato una cosa del genere :
Nome Articolo
Luca bla bla bla
Franc hihihihihi
Luca oohohhohohe così via....
Ora voglio far in modo che stampi tutti gli articoli solo di luca...e contare quanti articoli ha scritto quel determinato utente.
Sapete più o meno come fare ?
Grazie
-
Ciao infosicurezza,
non ho capito la struttura del database con il tuo esempio, in ogni caso basta inserire il WHERE nella query per prendere solo gli articoli scritti da un determinato utente.
-
la struttura del mio database è una cosa del genere...
Nome : Luca - Articolo : bla bla bla bla
Nome : Franc - Articolo : ohohohohoho
Nome : Luca - articolo : HIHIHIHIHIIHIHICioè memorizza nome e articolo per ogni utente...
io ho fatto una cosa del genere
[php]
if(mysql_num_rows(mysql_query("SELECT user,giorno,mese,anno FROM articoli WHERE user = '$user' LIMIT 1")) == 1)
[/php]
Ma non ottengo risultati... o meglio non stampa ciò che voglio...
-
Cosa dovrebbe fare quell'if?
-
@Thedarkita said:
Cosa dovrebbe fare quell'if?
controllare se l'utente in quella tabella memorizzato abbia almeno scritto un articolo... hai qualche idea ?? io sto impazzendo
-
prova con
[PHP]
if(mysql_num_rows(mysql_query("SELECT user,giorno,mese,anno FROM articoli WHERE user = '$user'")) != 0)
[/PHP]
-
No non va....
Il fatto è che stampa sempre 1 solo articolo di quell'utente (l'ultimo inserito) mentre invece ne dovrebbe stampare tutto il resto sempre di quel determinato utente
-
allora puoi postare tutto il codice completo?
e nn solo l'if
-
[php]
<?php
$query_leggi = "SELECT * FROM assenze";
$result = mysql_query($query_leggi,$dbh);
$numero_righe = mysql_num_rows($result);@$info = mysql_fetch_array(mysql_query("SELECT id,user,giorno,mese,anno FROM assenze WHERE user = $_REQUEST[user] '{$_SESSION['login']}'"));
if(mysql_num_rows(mysql_query("SELECT user,giorno,mese,anno FROM articolo WHERE user = '$user' LIMIT 1")) == 1)
{print "L'utente <font color=green> $user </font> ha memorizzato : ";
echo "<table border="1" width="400" height="19">
<tr>
<td bgcolor="DARKBLUE"><Font color="white"> Utente </font></td>
<td bgcolor="SLATEBLUE"><Font color="white"> giorno </font></td>
<td bgcolor="SLATEBLUE"><Font color="white"> mese </font></td>
<td bgcolor="SLATEBLUE"><Font color="white"> anno </font></td>
<td bgcolor="DARKBLUE"><Font color="white"> Assenze </font></td>
</tr>
<tr>
<td><font color="BLUEVIOLET">$user<font></td>
<td><font color="green">{$info['giorno']}<font></td>
<td><font color="green">{$info['mese']}<font></td>
<td><font color="green">{$info['anno']}<font></td>
<td><font color="RED"> Assente <font></td>
</tr>
</table>";
}
else
{
print"<h4><font color=red> Attenzione : </font> L'utente $user Non ha memorizzato le assenze";
}if($numero_righe == 0)
{
print "<h3><font color=red>Attenzione : Non ci sono Assenze registrate </font> </h3>";
}
?>
[/php]
ecco il codice!
-
Con la @ stai nascondendo un errore di sintassi.
Inoltre non vi è un ciclo e stai stampando il risultato di una query con LIMIT 1.
-
io non vedo errori di sintassi, poi LIMIT 1 lo inserito dopo e ho provato con il for, ma da sempre gli stessi risultati solo che stampa più volte la stessa cosa
-
WHERE user = $_REQUEST[user] '{$_SESSION['login']}' ```Da un chiaro errore di sintassi SQL.
-
Facendo in quel modo riesco a stampare le singole informazioni per ogni utente...
comunque sia siamo usciti fuori argomento... il problema resta comunque... sai come posso risolverlo ?
-
Come ti ho detto il problema è la query, basta mettere un or die(mysql_error()) per rendersene conto.
-
Allora se tolgo l'operatore di silence, mi stamperà questo errore Notice: Undefined index: user in....ecc...
se lo metto mi stampa almeno gli articoli, però di tutti gli utenti e nn di uno solo come vorrei... quindi nn credo sia quello il problema... o almeno credo
-
Nascondere gli errori non è una soluzione, il problema è quello.
-
Non è una soluzione però sembra banale... hai qualche consiglio su come aggiustare ?
-
WHERE user = $_REQUEST[user] '{$_SESSION['login']}'
Il campo user deve essere uguale a $_REQUEST['user'] o a $_SESSION['login']?
-
@Thedarkita said:
WHERE user = $_REQUEST[user] '{$_SESSION['login']}'
Il campo user deve essere uguale a $_REQUEST['user'] o a $_SESSION['login']?
Bhe se lo metto uguale a $_SESSION['login'] le informazioni per ogni utente nn saranno singole...