problema con il contaggio dei click sugli annunci

searedone

Utente Attivo
11 Giu 2010
508
0
0
Buongiorno a tutti ho un problema:

Le pagine del dito si autoincrementano in base alla categ ecc ecc e le richiamo tramite l'id dal db.

Più precisamente ho un admin, dove ogni persona registrata può 'inserire delle ricette, e ovviamente ogni ricetta postata la richiamo tramite uno script in base alla categoria, e per semplificarmi la vita utilizzo un db relazionale, dove ho la tabella annunci con i campi e le varie sotto tabelle che mi collagano l'annuncio alla tipologia, alla regione, ecc ecc.

Il principio è uguale a quello di un cms , l'annuncio viene messo nel db , e richiamando l'id della ricetta in base alla categoria, mi posta la ricetta.

Spero di essere stato chiaro.

Ora vorrei calcolare quante volte è stato cliccato ogni singolo annuncio con questo script, funziona ma non so perché anche modificandolo in mille modi mi prende il click, me lo conteggia, ma non me lo conteggia con l'id che è stato cliccato ma con l'intimo id della tabella.

Spero che qualcuno possa aiutarmi.

(la tabella annunci è la tabella principale, inizia con id_annunci, r poi i vari campi, tipo, descrizione, click_annuncio, id_tipologia ecc ecc ) non so se può' aiutarvi.

PHP:
if (isset($_GET['click_annuncio'])); 
$click_annuncio = $_GET['click_annuncio'];  
$jokelist = mysql_query ("UPDATE annunci SET click_annuncio = click_annuncio + 1 WHERE id_annunci=id_annunci " ) or die (mysql_error());
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Non capisco cosa significa questa query:
PHP:
$jokelist = mysql_query ("UPDATE annunci SET click_annuncio = click_annuncio + 1 WHERE id_annunci=id_annunci " ) or die (mysql_error());
Praticamente aggiunge un click a tutti gli annunci. Dovresti scrivere invece:
PHP:
$jokelist = mysql_query("UPDATE annunci SET click_annuncio = click_annuncio + 1 WHERE id_annunci = {$_GET['click_annuncio']}") or die(mysql_error());
E poi sarebbe meglio se usassi mysql_real_escape_string o addslashes sulla variabile $_GET['click_annuncio'] per evitare SQL injection. Così è facile cancellare l'intera tabella.
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
Ciao e grazie ..

Se aggiungo
$jokelist = mysql_query ("UPDATE annunci SET click_annuncio = click_annuncio + 1 WHERE id_annunci=id_annunci " ) or die (mysql_error());
Praticamente aggiunge un click a tutti gli annunci. Dovresti scrivere invece:
Codice PHP:
$jokelist = mysql_query("UPDATE annunci SET click_annuncio = click_annuncio + 1 WHERE id_annunci = {$_GET['click_annuncio']}") or die(mysql_error());

Mi da il seguente errore

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
eccolo:)

PHP:
<?php


require ('db_connect.php');




$jokelist = @mysql_query(
"SELECT * FROM
    annunci INNER JOIN regione ON (annunci.regioneid=regione.id AND provinciaid=provinciaid)
     INNER JOIN provincia ON (annunci.provinciaid=provincia.id)
     
WHERE
    provincia.name='agrigento'");
    
    



    
    
    


if (!$jokelist) {
  exit('<p>Error performing query: ' . mysql_error() . '</p>');
}

while ($joke = mysql_fetch_array($jokelist)) {
$click_annuncio = $joke['click_annuncio'];
$id_annunci = $joke['id_annunci'];
  $descrizione = $joke['descrizione'];
  $mq = $joke['mq'];
  $prezzo = $joke['prezzo'];
  $tipologia = $joke['tipologia'];
  
  $name = $joke['name'];
  $citta = $joke['citta'];
  $user_name = $joke['user_name'];
  $user_email = $joke['user_email'];
   $condizioni = $joke['condizioni'];
    $regione = $joke['regione'];
     $tipo = $joke['tipo'];
      $condizioni = $joke['condizioni'];
       $logo_cliente = $joke['logo_cliente'];
         
  
   $nome_file = $joke['nome_file'];
  $tipo_file = $joke['tipo_file'];
  $dati_file = $joke['dati_file'];
  
  // Display the joke with author information
  echo "<p>$descrizione<br />" .
      "(by <a href=\"http://localhost:8888/sicilia/rannunci.php?id=$id_annunci\"/>$id_annunci</a>)<br />" . "$name</br>" . "$mq</br>" . "$prezzo</br>". "$tipologia</br>" . "$citta<br />" . "$regione<br />" . "$logo_cliente<br />" . "$condizioni<br />" . "$tipo</br></p>";

  echo "<img src='immagini1.php?id=$id_annunci' name='nome_file'  alt'' width='110' height='90'  />";  


}





?>

<?php

if (isset($_GET['click_annuncio']));  
$click_annuncio = $_GET['click_annuncio'];  
$jokelist = mysql_query("UPDATE annunci SET click_annuncio = click_annuncio + 1 WHERE id_annunci = {$_GET['click_annuncio']}") or die(mysql_error()); 

?>
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Che cosa significa questo?
PHP:
if (isset($_GET['click_annuncio']));
Cambia in:
PHP:
if (isset($_GET['click_annuncio'])) {
    $_GET['click_annuncio'] = (int)$_GET['click_annuncio'];
    // ...
}
Dove ci sono i puntini aggiungi le altre due linee.
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
ho provato così ma non prende i click :(

PHP:
<?php


require ('db_connect.php');




$jokelist = @mysql_query(
"SELECT * FROM
    annunci INNER JOIN regione ON (annunci.regioneid=regione.id AND provinciaid=provinciaid)
     INNER JOIN provincia ON (annunci.provinciaid=provincia.id)
     
WHERE
    provincia.name='agrigento'");
    
    



    
    
    


if (!$jokelist) {
  exit('<p>Error performing query: ' . mysql_error() . '</p>');
}

while ($joke = mysql_fetch_array($jokelist)) {
$click_annuncio = $joke['click_annuncio'];
$id_annunci = $joke['id_annunci'];
  $descrizione = $joke['descrizione'];
  $mq = $joke['mq'];
  $prezzo = $joke['prezzo'];
  $tipologia = $joke['tipologia'];
  
  $name = $joke['name'];
  $citta = $joke['citta'];
  $user_name = $joke['user_name'];
  $user_email = $joke['user_email'];
   $condizioni = $joke['condizioni'];
    $regione = $joke['regione'];
     $tipo = $joke['tipo'];
      $condizioni = $joke['condizioni'];
       $logo_cliente = $joke['logo_cliente'];
         
  
   $nome_file = $joke['nome_file'];
  $tipo_file = $joke['tipo_file'];
  $dati_file = $joke['dati_file'];
  
  // Display the joke with author information
  echo "<p>$descrizione<br />" .
      "(by <a href=\"http://localhost:8888/sicilia/rannunci.php?id=$id_annunci\"/>$id_annunci</a>)<br />" . "$name</br>" . "$mq</br>" . "$prezzo</br>". "$tipologia</br>" . "$citta<br />" . "$regione<br />" . "$logo_cliente<br />" . "$condizioni<br />" . "$tipo</br></p>";

  echo "<img src='immagini1.php?id=$id_annunci' name='nome_file'  alt'' width='110' height='90'  />";  


}





?>

<?php
if (isset($_GET['click_annuncio'])) { 
    $_GET['click_annuncio'] = (int)$_GET['click_annuncio']; 
   
 
$click_annuncio = $_GET['click_annuncio'];  
$jokelist = mysql_query("UPDATE annunci SET click_annuncio = click_annuncio + 1 WHERE id_annunci = {$_GET['click_annuncio']}") or die(mysql_error()); 
} 
?>
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
cosa intendi ?

Al momento l'url come la vedi dallo script la prendo dall'id dell'annuncio ....
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Prova un po' cambiando così:
PHP:
if (isset($_GET['id'])) {
    $_GET['id'] = (int)$_GET['id'];

$jokelist = mysql_query("UPDATE annunci SET click_annuncio = click_annuncio + 1 WHERE id_annunci = {$_GET['id']}") or die(mysql_error());
}
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
L'ho modificato così perché l'id è id_annunci ma niente non prende il click

PHP:
if (isset($_GET['id_annunci'])) { 
    $_GET['id_annunci'] = (int)$_GET['id_annunci']; 

$jokelist = mysql_query("UPDATE annunci SET click_annuncio = click_annuncio + 1 WHERE id_annunci = {$_GET['id_annunci']}") or die(mysql_error()); 
}

Ti posto anche la tabella magari ti aiuta ... ;(

PHP:
-- phpMyAdmin SQL Dump
-- version 3.3.7
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generato il: 11 set, 2011 at 06:20 PM
-- Versione MySQL: 5.1.44
-- Versione PHP: 5.3.2

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Database: `sicilia`
--

-- --------------------------------------------------------

--
-- Struttura della tabella `annunci`
--

CREATE TABLE IF NOT EXISTS `annunci` (
  `id_annunci` int(11) NOT NULL AUTO_INCREMENT,
  `descrizione` longtext NOT NULL,
  `mq` varchar(255) NOT NULL,
  `locali` varchar(255) NOT NULL,
  `prezzo` varchar(255) NOT NULL,
  `tipologia` varchar(255) NOT NULL,
  `altro` varchar(255) NOT NULL,
  `timesviewed` int(11) NOT NULL,
  `nome_file` varchar(255) NOT NULL,
  `tipo_file` varchar(255) NOT NULL,
  `dati_file` longblob NOT NULL,
  `nome_file2` varchar(200) NOT NULL,
  `tipo_file2` varchar(255) NOT NULL,
  `dati_file2` longblob NOT NULL,
  `nome_file3` varchar(255) NOT NULL,
  `tipo_file3` varchar(255) NOT NULL,
  `dati_file3` longblob NOT NULL,
  `nome_file4` varchar(255) NOT NULL,
  `tipo_file4` varchar(255) NOT NULL,
  `dati_file4` longblob NOT NULL,
  `nome_file5` varchar(255) NOT NULL,
  `tipo_file5` varchar(255) NOT NULL,
  `dati_file5` longblob NOT NULL,
  `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `provinciaid` int(255) NOT NULL,
  `user_id` int(11) NOT NULL,
  `cittaid` int(11) NOT NULL,
  `regioneid` int(11) NOT NULL,
  `clienteid` int(11) NOT NULL,
  `tipoid` int(11) NOT NULL,
  `condizioniid` int(11) NOT NULL,
  `id_image` int(5) NOT NULL,
  `click_annuncio` int(11) NOT NULL,
  PRIMARY KEY (`id_annunci`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=193 ;
 

searedone

Utente Attivo
11 Giu 2010
508
0
0
Nienete rimane a 0 :(


Ma perché le ho provate tutteeeee :((((

Mi sorge solo un dubbio ???

Io utilizzo text wrangler, ma anche con aptana che mi da i vari colori,la variabile WHERE id = {$_GET['id']}" non diventa blu ma rimane rossa
come "UPDATE annunci SET click_annuncio = click_annuncio + 1 WHERE id = {$_GET['id']}" .....

Invece in questa interrogazione user_id=".$_SESSION['user_id']." la variabile $_SESSION e blu, potrebbe essere un problema ???
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
O problema con dvr dahua xvr5116 IP Cam e Videosorveglianza 0
G Problema con Xampp Web Server 1
andrea barletta Problema con miniature comandi Photoshop 0
I problema con alice Posta Elettronica 0
N Problema con position absolute e overflow HTML e CSS 4
L Problema con inner join PHP 11
K [php] Problema con inner join PHP 4
K [PHP] Problema con variabili concatenate. PHP 1
O problema con query PHP 4
I problema con 2 account Posta Elettronica 1
L problema collegamento file css con html HTML e CSS 1
E Problema accesso a file con app sviluppata con MIT APP INVENTOR 2 Sviluppo app per Android 0
M Problema con Try Catch PHP 0
Sergio Unia Problema con gli eventi del mouse su una data table: Javascript 2
T PROBLEMA CON SESSIONI PHP 3
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
R problema con else PHP 0
T PROBLEMA CON ARRAY PHP 8
L problema con query select PHP 2
R Problema query con ricerca id numerico PHP 2
F Problema con risposta PHP 0
S problema con recupero dati tabella mysql PHP 2
Z Problema con il mio tp-l i nk Reti LAN e Wireless 1
L Problema RAM con Tomcat 8 Apache 0
napuleone problema con sort e asort PHP 4
Z Problema con INT MySQL PHP 1
Z Problema database MySQL con XAMPP PHP 0
M Problema con controllo form in real time jQuery 6
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
G Problema con Get page PHP 4
P Problema con require once PHP 6
P Problema con i package Java 1
A Problema login con Safari PHP 14
F INDESIGN: problema esportazione esecutivo per la stampa con foto B/N Webdesign e Grafica 0
S problema con css bootstrap3 HTML e CSS 4
M .load() problema con caricamenti dinamici di js Javascript 0
G Problema con eccessiva nitidezza apertura Camera Raw Photoshop 0
G Problema ------- con Query PHP 1
G Problema con Query PHP 1
T problema con select dinamica con jquery Javascript 0
S Problema con spazi bianchi HTML e CSS 5
A PROBLEMA: insert mysqli con dati Tagsinput Presentati al Forum 0
Tommy03 Problema con z-index HTML e CSS 3
M Problema inserimento parole con apostrofo nel db PHP 5
C Problema con dati meteo xml XML 1
S Problema con infrarossi videocamera IP Cam e Videosorveglianza 1
V Problema con librerie allegro5 c++ C/C++ 1
M Problema con php per calcolo costo percentuale PHP 7
S Problema con mysqli_num_rows PHP 18
grgfede Problema javascript con aruba Javascript 1

Discussioni simili