Creare sondaggio

  • Creatore Discussione Creatore Discussione Shyson
  • Data di inizio Data di inizio
ciao
ok

posta la parte prima della riga 52 dove fai la query sino alla 52 (o qualcuna di più)

PHP:
<?php
$q="SELECT * FROM sondaggio WHERE id=1"; 
$risultato = mysql_query($q); 
$riga=mysql_fetch_assoc($risultato);
var_dump($riga);//dovrebbe darti: array il nome dei campi e il loro valore 
$tot=0;//metto il totale a 0  
foreach($riga as $chiave => $valore) {          //LINEA 52
    if($chiave !="id") {
        ${$chiave}=$valore;//valore del campo 
        $tot=$tot+$valore;//faccio il totale 
    }   
}
 
ciao
viste così le righe sono corrette (sono talmente semplici).
per prima cosa metti un var_dump a $risultato
PHP:
<?php
//....
$q="SELECT * FROM sondaggio WHERE id=1"; 
$risultato = mysql_query($q);
var_dump($risultato);
$riga=mysql_fetch_assoc($risultato);
//var_dump($riga);//dovrebbe darti: array il nome dei campi e il loro valore 
$tot=0;//metto il totale a 0  
foreach($riga as $chiave => $valore) {          //LINEA 52
    if($chiave !="id") {
        ${$chiave}=$valore;//valore del campo 
        $tot=$tot+$valore;//faccio il totale 
    }   
} 
//......
?>
poi chiami la pagina la prima volta e guardi cosa risulta
scrivi un successo e riporta ancora il risultato del var_dump
così a naso sembrerebbe che quando invii un successo perdesse i dati di connessione
 
ciao
viste così le righe sono corrette (sono talmente semplici).
per prima cosa metti un var_dump a $risultato
PHP:
<?php
//....
$q="SELECT * FROM sondaggio WHERE id=1"; 
$risultato = mysql_query($q);
var_dump($risultato);
$riga=mysql_fetch_assoc($risultato);
//var_dump($riga);//dovrebbe darti: array il nome dei campi e il loro valore 
$tot=0;//metto il totale a 0  
foreach($riga as $chiave => $valore) {          //LINEA 52
    if($chiave !="id") {
        ${$chiave}=$valore;//valore del campo 
        $tot=$tot+$valore;//faccio il totale 
    }   
} 
//......
?>
poi chiami la pagina la prima volta e guardi cosa risulta
scrivi un successo e riporta ancora il risultato del var_dump
così a naso sembrerebbe che quando invii un successo perdesse i dati di connessione
Da ancora lo stesso errore, chiamandola la prima volta come vedi, risulta resource(16) of type (mysql result)
 
Ultima modifica:
ciao
ho fatto una prova
1) chiamata la pegina e come hai detto
resource(16) of type (mysql result)
2) scritto ed inviato un successo, il var_dump da l'errore

bool(false)
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /membri/gruppoalveo/menuDX.php on line 50

Warning: Invalid argument supplied for foreach() in /membri/gruppoalveo/menuDX.php on line 53

poi non rimane troppo a lungo l'avviso di successo inviato
(secondo me devi accorciare il tempo di permanenza, al massimo un paio di secondi)?
comunque quando "finalmente" sparisce l'avviso e la pagina si ricarica l'errore svanisce.
quindi vuol dire che quando dai l'invio del successo e nel tempo di attesa perde la connessione.
in che punto della pag l'hai messa? hai usato un require_once "connessione.php" o simile?
 
ciao
ho fatto una prova
1) chiamata la pegina e come hai detto
resource(16) of type (mysql result)
2) scritto ed inviato un successo, il var_dump da l'errore

bool(false)
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /membri/gruppoalveo/menuDX.php on line 50

Warning: Invalid argument supplied for foreach() in /membri/gruppoalveo/menuDX.php on line 53

poi non rimane troppo a lungo l'avviso di successo inviato
(secondo me devi accorciare il tempo di permanenza, al massimo un paio di secondi)?
comunque quando "finalmente" sparisce l'avviso e la pagina si ricarica l'errore svanisce.
quindi vuol dire che quando dai l'invio del successo e nel tempo di attesa perde la connessione.
in che punto della pag l'hai messa? hai usato un require_once "connessione.php" o simile?
Ho impostato appositamente 100 secondi in modo che si può vedere l'errore.

Ho messo all'inizio della pagina successi

PHP:
<?php
//Richiama i parametri di connessione al db
require_once "connessione.php";
//Questi 2 include vanno in questa pagina altrimenti da errore
include ("funzioni.php"); 
include ("parole-proibite.php");
?>

...
 
ciao
facciamo una prova.
metti anche un altro require_once appena prima della riga di $q (mi raccomando l'once)
PHP:
<?php
//....
require_once "connessione.php";
$q="SELECT * FROM sondaggio WHERE id=1"; 
$risultato = mysql_query($q);
var_dump($risultato);
$riga=mysql_fetch_assoc($risultato);
//var_dump($riga);//dovrebbe darti: array il nome dei campi e il loro valore 
$tot=0;//metto il totale a 0  
foreach($riga as $chiave => $valore) {          //LINEA 52
    if($chiave !="id") {
        ${$chiave}=$valore;//valore del campo 
        $tot=$tot+$valore;//faccio il totale 
    }   
} 
//......
?>
verifica se funzia e poi cerco di capire perche sparisce
 
Forse ho trovato io l'inghippo, come vedi prima dell'invio chiudo la connessione, difatti non da più errore se lo tolgo, è questo?

PHP:
if($erroreS=="") { 
//Scrive i dati all'interno della tabella successi
//INSER INTO contiene il NOME dei records, dall'alto verso il basso, che ci sono nella tabella del db 
//VALUES inserisce nella tabella del db i VALORI scritti nei campi del form, vanno scritti nello stesso ordine di INSERT INTO
$q="INSERT INTO successi(data_localeS,dataGmtS,oggettoS,messaggioS,nomeS,cittaS,suoemailS,ip,bandierina,country)
       VALUES('$data_localeS','$dataGmtS','$oggettoS','$messaggioS','$nomeS','$cittaS','$suoemailS','$ip','$bandierina','".$countries[$two_letter_country_code][1]."')"; 
// Lancio la query              
$ris=mysql_query($q);  
      
// Controllo l'esito
if (!$ris) {
die("Errore nella query $query: " . mysql_error());
}
// chiudo la connessione a MySQL
mysql_close($connessione);

$_SESSION=array();
echo "<div class=\"inviatoSuccessi\"><div style=\"margin-top:-20px; margin-bottom:40px; text-align:center;\"><img src=\"immagini/ok.png\" width=\"60\" height=\"60\" alt=\"Ok\" title=\"Ok\" /></div><font style=\" font-size:22px; color:#005d00;\">Successo inviato!</font></div>"; 
echo "<meta http-equiv='refresh' content='2; url=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
 
ciao
si toglilo.
ci pensa php a chiuderla in automatico quando non serve più.
infatti generalmente è sconsigliata


p.s.
una curiosità:
le immagini che ha sul sito del guest sono tue?
 
ciao
facciamo una prova.
metti anche un altro require_once appena prima della riga di $q (mi raccomando l'once)
PHP:
<?php
//....
require_once "connessione.php";
$q="SELECT * FROM sondaggio WHERE id=1"; 
$risultato = mysql_query($q);
var_dump($risultato);
$riga=mysql_fetch_assoc($risultato);
//var_dump($riga);//dovrebbe darti: array il nome dei campi e il loro valore 
$tot=0;//metto il totale a 0  
foreach($riga as $chiave => $valore) {          //LINEA 52
    if($chiave !="id") {
        ${$chiave}=$valore;//valore del campo 
        $tot=$tot+$valore;//faccio il totale 
    }   
} 
//......
?>
verifica se funzia e poi cerco di capire perche sparisce

Vedi post #89
 
Per me dava errore perché chiudeva in anticipo la connessione e poi si ricollegava
 
ciao

allora quando funzia tutto, per "premiarmi", me ne mandi qualcuna (paesaggi italiani) che la pubblico sul mio sito :)
Io non ne faccio molto amo lo street e le foto alla Cartier Bresson, puoi prenderne qualcuna dal sito ma cita la fonte (meglio se metti il link del mio sito), e comunque se ti chiedono di acquistarle o di usarle prima chiedi a me (comunque detengo i negativi)
 
Tornando a noi, da ancora quell'errore che num_archivio non è definito

PHP:
<?php
$links = array('http://gruppoalveo.altervista.org/archivio_successi.php' => 'In archivio&nbsp;('.$_SESSION['num_archivio'].')');  
$pagina = basename($_SERVER['PHP_SELF']);   
  foreach($links as $link => $text) { 
    if(basename($link) == $pagina) { 
      echo '<div class="menu1a">' . $text . '</div>'; 
    } 
    else 
    { 
      echo '<a href="' . $link . '">' . $text . '</a>'; 
    } 
  }
 
ciao
è questa che è indefinita
$_SESSION['num_archivio']
?
dove la definisci?
in qualche punto o pagina precedente dovresti avere
$_SESSION['num_archivio']= qualche cosa

p.s.
hai messo session_start() nella pagina?

ps al ps
prima di prelevare ti faccio un mp
 
ciao
è questa che è indefinita
$_SESSION['num_archivio']
?
dove la definisci?
in qualche punto o pagina precedente dovresti avere
$_SESSION['num_archivio']= qualche cosa

p.s.
hai messo session_start() nella pagina?

ps al ps
prima di prelevare ti faccio un mp

Qui in funzioni.php

PHP:
<?php
session_start();
//Sessioni conta successi 
$_SESSION['num_successi']=mysql_num_rows(mysql_query("SELECT id FROM successi"));  
$_SESSION['num_archivio']=mysql_num_rows(mysql_query("SELECT id FROM archivio")); 
$_SESSION['totale_successi']=$_SESSION['num_successi']+$_SESSION['num_archivio'];

in successi.php

PHP:
<?php
//Richiama i parametri di connessione al db
require_once "connessione.php";
//Questi 2 include vanno in questa pagina altrimenti da errore
include ("funzioni.php"); 
include ("parole-proibite.php");
?>
 
ciao
metti i soliti e dimmi cosa riportano
PHP:
<?php
//Richiama i parametri di connessione al db
require_once "connessione.php";
//Questi 2 include vanno in questa pagina altrimenti da errore
include ("funzioni.php");
var_dump($_SESSION['num_successi']);//??
var_dump($_SESSION['num_archivio']);//??
include ("parole-proibite.php");
//.....
?>
 
ciao
metti i soliti e dimmi cosa riportano
PHP:
<?php
//Richiama i parametri di connessione al db
require_once "connessione.php";
//Questi 2 include vanno in questa pagina altrimenti da errore
include ("funzioni.php");
var_dump($_SESSION['num_successi']);//??
var_dump($_SESSION['num_archivio']);//??
include ("parole-proibite.php");
//.....
?>

Questo, eppoi certe immagini le ingrandisce, puoi vedere dal sito

int(3) int(19)
 

Discussioni simili