Precedente :: Successivo |
Autore |
Messaggio |
ste_95 Dio maturo
Registrato: 03/08/07 13:41 Messaggi: 1920 Residenza: Italy
|
Inviato: 08 Gen 2008 19:10 Oggetto: * [PHP] Come contare le visite |
|
|
Vorrei contare le visite che vengono effettuate a un pezzo nel mio sito, per fare questo avevo in mente di creare una nuova colonna nel db dove vengono memorizzate esse.
Però non so come fare la parte in php...
Qualcuno può aiutarmi?
Grazie a tutti |
|
Top |
|
|
horus Macchinista
Registrato: 22/03/05 09:48 Messaggi: 2554 Residenza: Sirio e dintorni
|
Inviato: 09 Gen 2008 08:46 Oggetto: |
|
|
Se nella pagina usi già una connessione al db ti conviene farti un file php che poi includerai in tutte le tue pagine dove farai qualcosa tipo (pseudocodice)
Codice: | $query = "update tabella_visite set numero_visite=numero_visite+1";
$connessione->EseguiQuery($query); |
|
|
Top |
|
|
ste_95 Dio maturo
Registrato: 03/08/07 13:41 Messaggi: 1920 Residenza: Italy
|
Inviato: 09 Gen 2008 13:55 Oggetto: |
|
|
Si, allora la situazione per l'inserimento di scritti è così organizzata:
E' possibile inserire articoli, news e megafun, ma la struttura è uguale, ne elenco quella degli articoli:
Nella cartella articoli sono presenti il file index.php, che visualizza il titolo e la descrizione di un articolo (Nel quale poi dovrà venire aggiunto l'interrogazione al campo delle visite nel db), poi il file aggiungi_articolo.php del quale non sto a spiegarvi nulla... E il file visualizza_news.php, che sarà il file che, se richiesto e visualizzato, dovrà aggiungere una visita alla relativa colonna creata nel db per le visite.
Pensando che creerò una nuova colonna nel db chiamata visite.
Quindi includerò in visualizza_news.php lo script:
Codice: | $query = "update visite set visite=visite+1";
$connessione->EseguiQuery($query); |
Però c'è un problema, e cioè che a ogni articolo bisognerà conteggiare le visite in modo univoco, creare quindi una nuova colonna visite alla creazione di ogni nuova riga, e fin qui nessun problema. Ma mi pare di capire che lo script dato, grosso modo, valga univocamente per tutti gli articoli, quindi ogni articolo avrà lo stesso numero di visite se io metto il codice nella pagina che visualizza singolarmente le news (visualizza_news.php).
Ho sbagliato qualcosa? |
|
Top |
|
|
SverX Supervisor Macchinisti
Registrato: 25/03/02 11:16 Messaggi: 11568 Residenza: Tokelau
|
Inviato: 09 Gen 2008 18:10 Oggetto: |
|
|
fai confusione tra le tabelle e i campi...
magari vuoi aggiungere un campo 'visite' alla tabella dove hai gli articoli, così che ogni volta che qualcuno legge quell'articolo il campo sia incrementato... sì?
allora sarà più tipo
Codice: | $query = "update articoli set visite=visite+1 where numero_articolo=$num"; |
no? |
|
Top |
|
|
ste_95 Dio maturo
Registrato: 03/08/07 13:41 Messaggi: 1920 Residenza: Italy
|
Inviato: 09 Gen 2008 19:28 Oggetto: |
|
|
Si, hai ragione |
|
Top |
|
|
ste_95 Dio maturo
Registrato: 03/08/07 13:41 Messaggi: 1920 Residenza: Italy
|
Inviato: 09 Gen 2008 21:13 Oggetto: |
|
|
Ora mi restituisce il seguente errore:
Codice: | Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /membri/softnews/articoli/visualizza_articolo.php on line 28 |
Questo è il codice della pagina, in rosso la riga errata:
Codice: | <html>
<head>
<style>
.sopra { background: url(http://www.softnews.altervista.org/immagini/sopra.png); width: 800px; height: 20px; }
.mezzo { background: url(http://www.softnews.altervista.org/immagini/meta.png); width: 800px; font-family: Trebuchet MS; font-size: 10px; }
.mezzo table { font-family: Trebuchet MS; font-size: 13px; text-align: center; }
.sotto { background: url(http://www.softnews.altervista.org/immagini/sotto.png); width: 800px; height: 20px; }
body { color: black; }
a { color: white; text-decoration: none; }
a:hover { color: red; text-decoration: underline; }
</style>
<link rel="stylesheet" media="all" type="text/css" href="http://www.softnews.altervista.org/menu.css" />
<!--[if lte IE 6]>
<link rel="stylesheet" media="all" type="text/css" href="http://www.softnews.altervista.org/menu_ie.css" />
<![endif]-->
</head>
<body>
<div align="center">
<div class="sopra"></div>
<div class="mezzo">
<table>
<tr>
<td>
<?php
include('../menu.php');
include('config.inc.php');
[color=red]queryy=UPDATE articoli SET visite=NULL WHERE numero_articolo=.$row['id'];[/color]
$db = mysql_connect($dbhost, $dbusername, $dbpassword);
if (!$db)
{
die ("Errore nella connessione. Verificare i parametri nella configurazione.");
}
mysql_select_db($dbname, $db)
or die ("Errore nella selezione del database. Verificare i parametri nella configurazione");
$query = 'SELECT * FROM news WHERE id="'.$_GET['id'].'"';
$end_q = mysql_query($query,$db);
if($_GET['id'])
{
$row = mysql_fetch_array($end_q);
if($row['approved'] == '0')
{
echo '';
}
else
{
echo '<h2>'.$row['titolo'].'</h2>';
echo '<i>'.$row['descrizione'].'</i><br />';
echo 'Postata da: \'<b>'.$row['autore'].'</b>';
echo '<br />Il: '.date("j/n/y", $row[data]);
echo '<br /><br />'.$row['testo'];
}
}
?>
</td>
</tr>
</table>
</div>
<div class="sotto"></div></div>
</body>
</html> |
|
|
Top |
|
|
horus Macchinista
Registrato: 22/03/05 09:48 Messaggi: 2554 Residenza: Sirio e dintorni
|
Inviato: 10 Gen 2008 12:31 Oggetto: |
|
|
Non ho capito se questa
Codice: | queryy=UPDATE articoli SET visite=NULL WHERE numero_articolo=.$row['id']; |
è già una tua elaborazione oppure quello che hai scritto nel codice.
Il concetto è che
1. non puoi fare query se non hai il db
2. la sintassi è completamente sbagliata.
Dovresti inserire prima di Codice: | $query = 'SELECT * FROM news WHERE id="'.$_GET['id'].'"'; | qualcosa tipo Codice: | $query = "update articoli set visite=visite+1 where numero_articolo=$row['id']";
$end_q = mysql_query($query,$db); |
|
|
Top |
|
|
ste_95 Dio maturo
Registrato: 03/08/07 13:41 Messaggi: 1920 Residenza: Italy
|
Inviato: 12 Gen 2008 09:18 Oggetto: |
|
|
C'era un problema,non potevo addizionare uno direttamente dalla query, allora ho creato due variabili, una era il valore originario del db, e l'altra era il risultato dell'addizione a questo di 1.
Tutto risolto.
Grazie mille |
|
Top |
|
|
horus Macchinista
Registrato: 22/03/05 09:48 Messaggi: 2554 Residenza: Sirio e dintorni
|
Inviato: 12 Gen 2008 09:36 Oggetto: |
|
|
Strano, che errore ti dava?
Comunque se hai risolto va bene. |
|
Top |
|
|
ste_95 Dio maturo
Registrato: 03/08/07 13:41 Messaggi: 1920 Residenza: Italy
|
Inviato: 12 Gen 2008 09:39 Oggetto: |
|
|
L'errore ora non te lo so dire, ma mi pare che non implementasse... |
|
Top |
|
|
|