Creare sondaggio

  • Creatore Discussione Creatore Discussione Shyson
  • Data di inizio Data di inizio
Vedi che c'era un errore, la parentesi di troppo

$w= $web_banner/$tot*100); $web_banner_pos=(int)$w-100;
$web_banner=number_format($w, 1, ',','');

Ora va bene, c'è ancora una cosa: quando è a 100 scrive 100,0%, qui non è necessario il decimale, come lo tolgo?
 
ciao
con un if
PHP:
$motori_di_ricerca=number_format($m, 1, ',','');
if$motori_di_ricerca >=100){$motori_di_ricerca)=(int)$motori_di_ricerca;}
 
ciao
con un if
PHP:
$motori_di_ricerca=number_format($m, 1, ',','');
if$motori_di_ricerca >=100){$motori_di_ricerca)=(int)$motori_di_ricerca;}

Praticamente tolgo questo

PHP:
$m= $motori_di_ricerca/$tot*100; $motori_di_ricerca_pos=(int)$m-100; 
$motori_di_ricerca=number_format($m, 1, ',','');

e metto il tuo?

Le parentesi vanno bene, perché non apre la pagina anche se le metto
 
ciao
no ,devi solo aggiungere
PHP:
if($motori_di_ricerca >=100){$motori_di_ricerca=(int)$motori_di_ricerca;}

verifica comunque la parentesi che siano messe bene
 
Ho ancora una cosa da sistemare, ho notato che se più utenti votano la stessa voce, io per saperlo devo entrare nel db.
Ho visto dei siti di sondaggio che hanno anche un numero tra 2 parentesi che indica il numero di votanti per lo stesso item, vorrei metterlo anch'io:

PHP:
...
<?php
$q="SELECT * FROM sondaggio WHERE id=1"; 
$risultato = mysql_query($q); 
$riga=mysql_fetch_assoc($risultato); 
$tot=0;//metto il totale a 0 
foreach($riga as $chiave => $valore) { 
    if($chiave !="id") {
        ${$chiave}=$valore;//valore del campo 
        $tot=$tot+$valore;//faccio il totale 
    } 
} 
if($tot >0) { 
     $g= $giornali/$tot*100; $giornali_pos=(int)$g-100; 
     $giornali=number_format($g, 1, ',',''); //questo mette il decimale 
  if($giornali >=100){$giornali=(int)$giornali;}  //questo toglie il decimale a 100%
     $d= $depliant/$tot*100; $depliant_pos=(int)$d-100; 
     $depliant=number_format($d, 1, ',',''); 
  if($depliant >=100){$depliant=(int)$depliant;}     
     $t= $televisione/$tot*100; $televisione_pos=(int)$t-100; 
     $televisione=number_format($t, 1, ',',''); 
  if($televisione >=100){$televisione=(int)$televisione;}     
     $w= $web_banner/$tot*100; $web_banner_pos=(int)$w-100; 
     $web_banner=number_format($w, 1, ',','');  
  if($web_banner >=100){$web_banner=(int)$web_banner;}    
     $c= $casualmente/$tot*100; $casualmente_pos=(int)$c-100; 
     $casualmente=number_format($c, 1, ',',''); 
  if($casualmente >=100){$casualmente=(int)$casualmente;}     
     $m= $motori_di_ricerca/$tot*100; $motori_di_ricerca_pos=(int)$m-100; 
     $motori_di_ricerca=number_format($m, 1, ',','');  
  if($motori_di_ricerca >=100){$motori_di_ricerca=(int)$motori_di_ricerca;}      
     $a= $amici_o_conoscenti/$tot*100; $amici_o_conoscenti_pos=(int)$a-100;
     $amici_o_conoscenti=number_format($a, 1, ',',''); 
  if($amici_o_conoscenti >=100){$amici_o_conoscenti=(int)$amici_o_conoscenti;}     
}
else {
     $giornali= 0; $giornali_pos=-100;
     $depliant= 0; $depliant_pos=-100;
     $televisione= 0; $televisione_pos=-100;
     $web_banner= 0; $web_banner_pos=-100;
     $casualmente= 0; $casualmente_pos=-100;
     $motori_di_ricerca= 0; $motori_di_ricerca_pos=-100;
     $amici_o_conoscenti= 0; $amici_o_conoscenti_pos=-100;
}
...
<div class="fra">
<input type="radio" name="voto" value="giornali"> Giornali
<br>
<div class="a" style="background-position:<?php echo $giornali_pos;?>px"></div><div class="percentuale"><?php echo $giornali;?>%</div>
<br>
<input  type="radio" name="voto" value="depliant"> Depliant
<br>
<div class="a" style="background-position:<?php echo $depliant_pos;?>px"></div><div class="percentuale"><?php echo $depliant;?>%</div>
<br>
<input type="radio" name="voto" value="televisione"> Televisione
<br>
<div class="a" style="background-position:<?php echo $televisione_pos;?>px"></div><div class="percentuale"><?php echo $televisione;?>%</div>
<br>
<input type="radio" name="voto" value="web_banner"> Web banner
<br>
<div class="a" style="background-position:<?php echo $web_banner_pos;?>px"></div><div class="percentuale"><?php echo $web_banner;?>%</div>
<br>
<input type="radio" name="voto" value="casualmente"> Casualmente
<br>
<div class="a" style="background-position:<?php echo $casualmente_pos;?>px"></div><div class="percentuale"><?php echo $casualmente;?>%</div>
<br>
<input type="radio" name="voto" value="motori_di_ricerca"> Motori di ricerca
<br>
<div class="a" style="background-position:<?php echo $motori_di_ricerca_pos;?>px"></div><div class="percentuale"><?php echo $motori_di_ricerca;?>%</div>
<br>
<input type="radio" name="voto" value="amici_o_conoscenti"> Amici o conoscenti
<br>
<div class="a" style="background-position:<?php echo $amici_o_conoscenti_pos;?>px"></div><div class="percentuale"><?php echo $amici_o_conoscenti;?>%</div>
...
 
Ultima modifica:
ciao
sono arrivato in ritardo, alla prossima

Borgo, Riprendo il post perché ho fatto una modifica al codice e adesso a video mette una percentuale ridotta, es. prima segnava 32% e adesso 3,2% e ovviamente la barra azzurra è più corta, penso che c'è da sistemare le percentuali.

14map9v.jpg



PHP:
…
$cx=$casualmente;  
$c=$casualmente/$tot*100; $casualmente_pos=(int)$c-100; 
$casualmente=number_format($c, 1, ',',''); 
if($casualmente >=100){$casualmente=(int)$casualmente;}  

}else {
     $casualmente=0; $casualmente_pos=-100;
}
...
 
ciao
a parte che nello script hai messo una graffa in più, non vedo perchè, a me da il risultato giusto
PHP:
<?php
$casualmente=10;//messi per prova
$tot=80;
echo "<pre>";
$cx=$casualmente;//a che ti serve $cx?
var_dump($cx); 
$c=$casualmente/$tot*100;
var_dump($c);
$casualmente_pos=(int)$c-100;
var_dump($casualmente_pos);
$casualmente=number_format($c, 1, ',','');
var_dump($casualmente);
if($casualmente >=100){//qui manca qualcosa?
	$casualmente=(int)$casualmente;//qui una graffa in più
}else{
     $casualmente=0;
	 $casualmente_pos=-100;
}
var_dump($casualmente);
var_dump($casualmente_pos);
echo "</pre>";
?>
e questo è l'output
int(10)
float(12.5)
int(-88)
string(4) "12,5"
int(0)
int(-100)
anche se non capisco esattamente quell'if/else
 
ciao
a parte che nello script hai messo una graffa in più, non vedo perchè, a me da il risultato giusto
PHP:
<?php
$casualmente=10;//messi per prova
$tot=80;
echo "<pre>";
$cx=$casualmente;//a che ti serve $cx?
var_dump($cx); 
$c=$casualmente/$tot*100;
var_dump($c);
$casualmente_pos=(int)$c-100;
var_dump($casualmente_pos);
$casualmente=number_format($c, 1, ',','');
var_dump($casualmente);
if($casualmente >=100){//qui manca qualcosa?
	$casualmente=(int)$casualmente;//qui una graffa in più
}else{
     $casualmente=0;
	 $casualmente_pos=-100;
}
var_dump($casualmente);
var_dump($casualmente_pos);
echo "</pre>";
?>
e questo è l'output

anche se non capisco esattamente quell'if/else

Non riesco a capire, cosa dovrei modificare?

PHP:
...

// Definisce le variabili
$rx="";
$gx=""; 
$dx=""; 
$tx=""; 
$wx=""; 
$cx=""; 
$mx=""; 
$ax="";      

if($tot >0) {
     //La "i" non è accentata così stampa giusto nel db, non deve stampare a video
     $giorno=array('Domenica','Lunedi','Martedi','Mercoledi','Giovedi','Venerdi','Sabato'); 
     $mese=array('','gennaio','febbraio','marzo','aprile','maggio','giugno','luglio','agosto','settembre','ottobre','novembre','dicembre');
     $dataGmtS=$giorno[date('w')].' '.date('d').' '.$mese[date('m')-0].' '.date('Y - H:i:s \G\M\T P');
     $ip=$_SERVER['REMOTE_ADDR'];  
     $rx=$radio; // Stampa il numero di votanti
     $r=$radio/$tot*100; $radio_pos=(int)$r-100; // Mette la percentuale
     $radio=number_format($r, 1, ',',''); // Mette il decimale 
  if($radio >=100){$radio=(int)$radio;}  // Toglie il decimale a 100%
     $gx=$giornali; 
     $g=$giornali/$tot*100; $giornali_pos=(int)$g-100; 
     $giornali=number_format($g, 1, ',',''); 
  if($giornali >=100){$giornali=(int)$giornali;} 
     $dx=$depliant;
     $d=$depliant/$tot*100; $depliant_pos=(int)$d-100; 
     $depliant=number_format($d, 1, ',',''); 
  if($depliant >=100){$depliant=(int)$depliant;} 
  	 $tx=$televisione;    
     $t=$televisione/$tot*100; $televisione_pos=(int)$t-100; 
     $televisione=number_format($t, 1, ',',''); 
  if($televisione >=100){$televisione=(int)$televisione;}  
  	 $wx=$web_banner;   
     $w=$web_banner/$tot*100; $web_banner_pos=(int)$w-100; 
     $web_banner=number_format($w, 1, ',','');  
  if($web_banner >=100){$web_banner=(int)$web_banner;}  
  	 $cx=$casualmente;  
     $c=$casualmente/$tot*100; $casualmente_pos=(int)$c-100; 
     $casualmente=number_format($c, 1, ',',''); 
  if($casualmente >=100){$casualmente=(int)$casualmente;}  
  	 $mx=$motori_di_ricerca;   
     $m=$motori_di_ricerca/$tot*100; $motori_di_ricerca_pos=(int)$m-100; 
     $motori_di_ricerca=number_format($m, 1, ',','');  
  if($motori_di_ricerca >=100){$motori_di_ricerca=(int)$motori_di_ricerca;}  
  	 $ax=$amici_o_conoscenti;    
     $a=$amici_o_conoscenti/$tot*100; $amici_o_conoscenti_pos=(int)$a-100;
     $amici_o_conoscenti=number_format($a, 1, ',',''); 
  if($amici_o_conoscenti >=100){$amici_o_conoscenti=(int)$amici_o_conoscenti;}     
}
else {
     $radio=0; $radio_pos=-100;
     $giornali=0; $giornali_pos=-100;
     $depliant=0; $depliant_pos=-100;
     $televisione=0; $televisione_pos=-100;
     $web_banner=0; $web_banner_pos=-100;
     $casualmente=0; $casualmente_pos=-100;
     $motori_di_ricerca=0; $motori_di_ricerca_pos=-100;
     $amici_o_conoscenti=0; $amici_o_conoscenti_pos=-100;
}

if(isset($_POST['puls_invio'])) { 
if(!isset($_COOKIE['votatoxx'])) { //Setta il cookie (2/4), il primo si trova in connessione.php
if(isset($_POST['voto'])) {
    $voto=mysql_real_escape_string($_POST['voto']);
    $q="UPDATE sondaggio SET $voto=$voto +1, dataGmtS='$dataGmtS', ip='$ip' WHERE id=1";
    if(mysql_query($q)) { 
    echo "Il tuo voto è stato inserito!"; 
    echo "<meta http-equiv='refresh' content='2; url=".htmlspecialchars($_SERVER['PHP_SELF'])."'>"; 
    setcookie("votato", "si", time()+259200); // Dura 3 giorni, setta il cookie (3/4)
  
// Estrae i dati dalla tabella    
$q="SELECT * FROM sondaggio";
 
Ho verificato i dump e stampa corretto. Il punto è che questo codice in locale stampa correttamente le percentuali e le relative barre, online invece, le riduce. I codici sono identici, cosa può essere allora?
 
ciao
se in locale funziona non vedo perchè non debba funzionare inline, l'unica cosa come detto che che tu abbia caricato un file diverso o errato. hai vuotato la cache?
 

Discussioni simili