Newsgroup: it.comp.www.php
Titolo: mysql_fetch_array()... Porca zozzona...

Buongiorno a tutti, o meglio 'notte a tutti...
ho due pagine all'interno di un iframe con un sondaggio e pesco tramite db
sia le domande che le risposte... e fin qui tutto ok... solo che volevo
applicare un controllo con variabile di sessione onde evitare di avere un
utente che mi voti più di una volta... e qui sono iniziati i problemi...
allora nella prima pagina faccio il controllo della variabile di sessione se
non esiste mi stampa la domanda con le risposte (che vanno inviate alla
seconda pagina che poi mi visualizza i risultati... ) altrimenti mi stampa i
risultati parziali... ( che è uguale alla seconda pagina ma ho rimesso la
stampa all'interno della pagina 1 (lo so che come tecnica di programmazione
fa schifo, ma non ci saltavo fuori altrimenti...) ed ecco qui il problema...
nella pagina 1, ma nel caso in cui la variabile esista ( e quindi si è già
votato ) invece di stamparmi i risultati mi da questi warning e non stampa
'na mazza:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result
resource in f:\web sites\techmulti\sondaggio.php on line 12
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result
resource in f:\web sites\techmulti\sondaggio.php on line 22
le righe di codice interessate sono queste:
12 | while ($data_sond = mysql_fetch_array($result_sonda)) {
13 |    $alt1 = $data_sond["risp1"];
14 |    $alt2 = $data_sond["risp2"];
15 |    $alt3 = $data_sond["risp3"];
16 |    $alt4 = $data_sond["risp4"];
17 | }
e queste:
22 | while ($data_risp = mysql_fetch_array($result_risp)) {
23 |    if (($data_risp["risp1"] > 140) || ($data_risp["risp2"] > 140) ||
($data_risp["risp3"] > 140) || ($data_risp["risp4"] > 140)) {
24 |        $val_risp1 = $data_risp["risp1"] / 2; // queste righe mi servono
per il valore di height nelle immagini che uso per istogramma
25 |        $val_risp2 = $data_risp["risp2"] / 2;
26 |        $val_risp3 = $data_risp["risp3"] / 2;
27 |        $val_risp4 = $data_risp["risp4"] / 2;
28 |    } elseif (($data_risp["risp1"] > 70) || ($data_risp["risp2"] > 70)
|| ($data_risp["risp3"] > 70) || ($data_risp["risp4"] > 70)) {
29 |        $val_risp1 = $data_risp["risp1"];
30 |        $val_risp2 = $data_risp["risp2"];
..... etc etc
Chi ne capisce qlc?
Grazie in anticipo a tutti!
--
~~~ Riccardo Slanzi ~~~
      UIN # 140213360


Che l'errore e stato causato prima (passi un argomento che non e' OK).
Leggi qui come risolvere:
Perche' PHP mi da sempre: 'Supplied argument is not a valid MySQL result'?
http://www.dopoil.com/PHP/faq.php?mysqlResultError


Si scusate, il controllo errori ce l'avevo già e l'errore che mi dava, se vi
può essere utile, è il 1064 (che non ho trovato sul manuale e neache su
google) e questo è il codice precedente:
$query_sondag = "SELECT id_sond, domanda, risp1, risp2, risp3, risp4 FROM
sondaggi WHERE id_sond = $id_d";
$result_sond = mysql_query($query_sondag);
if (!$result_sond) error_message(sql_error()); // mi dice "errore 1064
vicino a "" line 1" - la funzione error_message e sql_error funzionano.


 if (!$result_sond) error_message(sql_error()); // mi dice "errore 1064
Hai mischiato roba sql con mysql (sql_error() con mysql_error())
Not good!


Mmmm non mi sembra... è una funzione esterna... e richiama questo codice:
function sql_error() {
    global $MYSQL_ERRNO, $MYSQL_ERROR;
    if(empty($MYSQL_ERROR)) {
        $MYSQL_ERRNO = mysql_errno();
        $MYSQL_ERROR = mysql_error();
    }
    return "$MYSQL_ERRNO: $MYSQL_ERROR";
}
mentre error_message() è solo un allert in javascript!
function error_message($msg) {
    head("Errore");
    echo "<SCRIPT>alert(\"Errore $msg\");history.go(-1)</SCRIPT>";
    foot();
    exit;


       UIN # 140213360
secondo me l'errore è nella query, hai provato a stampare il testo della
query ed eseguirlo con  un tool visuale, tipo phpmyadmin?
--
Ciao da Ska Man (Baldo)
akira_sendo[at]
libero.it
Togli "NOSPAM" per risposte via E-Mail
----------
La prima regola di internet:  mai fare i conti senza l'hoster


Usi due variabili diversi: $result_sond e $result_sonda
mettendo insieme i tuoi pezzetini postati:
$result_sond = mysql_query($query_sondag);
mysql_fetch_array($result_sonda);  // variable not defined...
metti magari un error_reporting(E_ALL) all'inizio del tuo script...


Si e funziona... ma quello che è strano è che ho due pagine con lo stesso
codice solo che in una è all'intetrno di una if e in quella senza if
funziona perfettamente, poi la pagina dovrebe tornare a quella con l'if e
visualizzare i risultati; e invece mi da questi errori.......
Eventualmente cosa mi potete consigliare per gestire un sondaggio formato da
due pagine, che una volta votato (in una sessione) al refresh o alla
riapertura della pagina mi vada in automatico alla pagina dei risultati?
la sintassi logica sarebbe simile a:
    if (già votato)
          result.php
     else
          sondaggio.php



No č solo che mentre aspetto le vostre risposte sono alla ricerca di un
eventuale errore.... e capita che cambi anche il nome di alcune variabile


 eventuale errore.... e capita che cambi anche il nome di alcune variabile
Allora non sei di grande aiuto per farti aiutare...
;-)
Perche' non posti tutto (incluso definizione tabelle e qualche dato)?


Ok come vuoi....
**********
<?php
// sondaggio.php
session_start();
if ($votato == "si") {
     @require "result.php";
} else {
     @require "domande.php";
}
?>
**********
<?php
// domande.php
session_start();
@require "function.php";
@head();
$link_id = db_connect("techmulti_it_db");
if (!$link_id) die (sql_error());
$query_sond = "SELECT id_sond, domanda, risp1, risp2, risp3, risp4 FROM
sondaggi WHERE id_sond = last_insert_id(id_sond)";
$result_sond = mysql_query($query_sond);
if (!$result_sond) error_message(sql_error());
echo "<form name=\"sondaggio\" action=\"result.php\"
method=\"post\">\n\t<div class=\"sond\"
align=\"center\"><b>Sondaggio</b>:</div>";
while ($data_sond = mysql_fetch_array($result_sond)) {
echo "<input type=\"hidden\" name=\"id_d\"
value=\"",$data_sond["id_sond"],"\">";
echo "<span class=\"sond\">" . $data_sond["domanda"] . "</span><br><br>";
echo "<input type=\"radio\" name=\"domanda\" value=\"risp1\"><span
class=\"sond\">",$data_sond["risp1"],"</span></input><br>";
echo "<input type=\"radio\" name=\"domanda\" value=\"risp2\"><span
class=\"sond\">",$data_sond["risp2"],"</span></input><br>";
echo "<input type=\"radio\" name=\"domanda\" value=\"risp3\"><span
class=\"sond\">",$data_sond["risp3"],"</span></input><br>";
echo "<input type=\"radio\" name=\"domanda\" value=\"risp4\"><span
class=\"sond\">",$data_sond["risp4"],"</span></input></small><br>";
}
echo "<br><div align=\"center\"><input type=\"submit\"
value=\"Vota\"></div>";
echo "</form>";
?>
**********
<?php
// result.php
@session_start();
@require "function.php";
@head();
$link_id = @db_connect("techmulti_it_db");
if (!$link_id) die (sql_error());
if ($votato != "si") {
    $votato = "si";
    session_register('votato', 'id_d');
    $query_update = "UPDATE risposte SET $domanda = $domanda + 1 WHERE
id_risp = $_SESSION['id_d']";
    $res_upd = mysql_query($query_update);
    if (!$res_upd) error_message(sql_error());
} else {
    // parte per la stampa dei risultati
    $query_update = "UPDATE risposte SET $domanda = $domanda + 1 WHERE
id_risp = $id_d";
    $res_upd = mysql_query($query_update);
    if (!$res_upd) error_message(sql_error());
    echo "<b>Grazie per aver votato.</b><br><u>Risultato parziale:</u>\n";
    echo "<br><div align=\"center\">\n\t<table border=\"0\"
width=\"120\">\n";
    $query_sondag = "SELECT id_sond, domanda, risp1, risp2, risp3, risp4
FROM sondaggi WHERE id_sond = $id_d";
    $result_sond = mysql_query($query_sondag);
    if (!$result_sond) error_message(sql_error());
    while ($data_sond = mysql_fetch_array($result_sond)) {
        $alt1 = $data_sond["risp1"];
        $alt2 = $data_sond["risp2"];
        $alt3 = $data_sond["risp3"];
        $alt4 = $data_sond["risp4"];
    echo "\t<tr>\n\t<td align=\"center\" width=\"25%\"
class=\"sond\">A</td>\n\t<td align=\"center\" width=\"25%\"
class=\"sond\">B</td>\n\t<td align=\"center\" width=\"25%\"
class=\"sond\">C</td>\n\t<td align=\"center\" width=\"25%\"
class=\"sond\">D</td>\n\t</tr>\n";
}
$query_risp = "SELECT id_risp, risp1, risp2, risp3, risp4 FROM risposte
WHERE id_risp = $id_d";
$result_risp = mysql_query($query_risp);
if (!$result_risp) error_message(sql_error());
while ($data_risp = mysql_fetch_array($result_risp)) {
    if (($data_risp["risp1"] > 140) || ($data_risp["risp2"] > 140) ||
($data_risp["risp3"] > 140) || ($data_risp["risp4"] > 140)) {
        $val_risp1 = $data_risp["risp1"] / 2;
        $val_risp2 = $data_risp["risp2"] / 2;
        $val_risp3 = $data_risp["risp3"] / 2;
        $val_risp4 = $data_risp["risp4"] / 2;
    } elseif (($data_risp["risp1"] > 70) || ($data_risp["risp2"] > 70) ||
($data_risp["risp3"] > 70) || ($data_risp["risp4"] > 70)) {
        $val_risp1 = $data_risp["risp1"];
        $val_risp2 = $data_risp["risp2"];
        $val_risp3 = $data_risp["risp3"];
        $val_risp4 = $data_risp["risp4"];
    } elseif (($data_risp["risp1"] > 40) || ($data_risp["risp2"] > 40) ||
($data_risp["risp3"] > 40) || ($data_risp["risp4"] > 40)) {
        $val_risp1 = $data_risp["risp1"] * 2;
        $val_risp2 = $data_risp["risp2"] * 2;
        $val_risp3 = $data_risp["risp3"] * 2;
        $val_risp4 = $data_risp["risp4"] * 2;
     } elseif (($data_risp["risp1"] > 20) || ($data_risp["risp2"] > 20) ||
($data_risp["risp3"] > 20) || ($data_risp["risp4"] > 20)) {
        $val_risp1 = $data_risp["risp1"] * 3;
        $val_risp2 = $data_risp["risp2"] * 3;
        $val_risp3 = $data_risp["risp3"] * 3;
        $val_risp4 = $data_risp["risp4"] * 3;
     } else {
        $val_risp1 = $data_risp["risp1"] * 4;
        $val_risp2 = $data_risp["risp2"] * 4;
        $val_risp3 = $data_risp["risp3"] * 4;
        $val_risp4 = $data_risp["risp4"] * 4;
    }
    echo "<tr>\n\t<td width=\"25%\" valign=\"bottom\" align=\"center\"><img
src=\"images/risp1.gif\" border=\"0\" width=\"10\" height=\"$val_risp1\"
alt=\"$alt1\" title=\"$alt1\"></td>";
    echo "\n\t<td valign=\"bottom\" align=\"center\"><img
src=\"images/risp2.gif\" border=\"0\" width=\"10\" height=\"$val_risp2\"
alt=\"$alt2\" title=\"$alt2\"></td>";
    echo "\n\t<td valign=\"bottom\" align=\"center\"><img
src=\"images/risp3.gif\" border=\"0\" width=\"10\" height=\"$val_risp3\"
alt=\"$alt3\" title=\"$alt3\"></td>";
    echo "\n\t<td valign=\"bottom\" align=\"center\"><img
src=\"images/risp4.gif\" border=\"0\" width=\"10\" height=\"$val_risp4\"
alt=\"$alt4\" title=\"$alt4\"></td>\n</tr>\n";
    echo "<tr>\n\t<td width=\"25%\" valign=\"bottom\" align=\"center\"
class=\"sond\">",$data_risp["risp1"],"</td>";
    echo "\n\t<td width=\"25%\" valign=\"bottom\" align=\"center\"
class=\"sond\">",$data_risp["risp2"],"</td>";
    echo "\n\t<td width=\"25%\" valign=\"bottom\" align=\"center\"
class=\"sond\">",$data_risp["risp3"],"</td>";
    echo "\n\t<td width=\"25%\" valign=\"bottom\" align=\"center\"
class=\"sond\">",$data_risp["risp4"],"</td></tr>";
    }
    echo "</table></div>";
}
?>
***********
<?php
// funzioni.php
// dichiarazione variabili
    $dbhost = "localhost";
    $default_dbname = "techmulti_it_db";
    $default_sort_order = "ASC";
    $records_per_page = 5;
    $MYSQL_ERRNO = '';
    $MYSQL_ERROR = '';
// funzione per la verifica del login
function verifica($username, $userpassword) {
    $link_id = db_connect("techmulti_it_db");
    $query = "SELECT username FROM amministratori WHERE username =
'$username' AND pass = password('$userpassword')";
    $result = mysql_query($query);
    if(!mysql_num_rows($result))
        return 0;
    else {
        $query_data = mysql_fetch_row($result);
        return $query_data[0];
    }
}
function head($bclass) {
    echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0
Transitional//EN\">\n";
    echo "<html>\n";
    echo "<head>\n";
    echo "\t<title>Tecniche Multimediali 2002</title>\n";
    echo "\t<meta http-equiv=\"Content-Type\" content=\"text/html;
charset=ISO-8859-1\">\n";
    echo "\t<meta name=\"language\" content=\"Italian\">\n";
    echo "\t<meta name=\"author\" content=\"Riccardo Slanzi & Simone
Iori\">\n";
    echo "\t<meta name=\"copyright\" content=\"GNU Public License\">\n";
    echo "\t<meta http-equiv=\"Content-Language\" content=\"IT\">\n";
    echo "\t<meta name=\"keywords\" content=\"SGML, HTML, CSS, XML, XSL,
PHP, MySQL, grafica, html, css, sgml, xml, xsl, usabilità;,
accessibilità\">\n";
    echo "\t<meta name=\"robots\" content=\"INDEX, FOLLOW\">\n";
    echo "\t<meta name=\"revisit-after\" content=\"7 days\">\n";
    echo "\t<meta name=\"document-class\" content=\"Completed\">\n";
    echo "\t<meta name=\"document-classification\" content=\"Internet\">\n";
    echo "\t<meta name=\"document-rating\" content=\"Safe for Kids\">\n";
    echo "\t<meta name=\"document-distribution\" content=\"Local\">\n";
    echo "\t<meta name=\"document-state\" content=\"Dynamic\">\n";
    echo "\t<link rel=\"stylesheet\" href=\"stile.css\"
type=\"text/css\">\n";
    echo "<script
src=\"
http://hit.tripod.lycos.it/tracker.js\
"></script>\n";
    echo "</head>\n";
    if (isset($bclass)){
        echo "<body class=\"$bclass\">\n";
    } else {
        echo "<body>\n";
    }
}
function db_connect($dbname='') {
    global $dbhost, $dbusername, $dbuserpassword, $default_dbname;
    global $MYSQL_ERRNO, $MYSQL_ERROR;
    $link_id = mysql_connect($dbhost, $dbusername, $dbuserpassword);
    if(!$link_id) {
    $MYSQL_ERRNO = 0;
    $MYSQL_ERROR = "Connessione fallita al database $dbhost.";
    return 0;
    }elseif(empty($dbname) && !mysql_select_db($default_dbname)) {
        $MYSQL_ERRNO = mysql_errno();
        $MYSQL_ERROR = mysql_error();
        return 0;
     } else if(!empty($dbname) && !mysql_select_db($dbname)) {
        $MYSQL_ERRNO = mysql_errno();
        $MYSQL_ERROR = mysql_error();
        return 0;
    } else return $link_id;
}
function sql_error() {
    global $MYSQL_ERRNO, $MYSQL_ERROR;
    if(empty($MYSQL_ERROR)) {
        $MYSQL_ERRNO = mysql_errno();
        $MYSQL_ERROR = mysql_error();
    }
    return "$MYSQL_ERRNO: $MYSQL_ERROR";
}
function error_message($msg) {
    echo "<SCRIPT>alert(\"Errore $msg\");history.go(-1)</SCRIPT>";
    exit;
}
// Funzione per visualizzare gli utenti collegati
    function usr_on() {
    $db_table = "useronline";
    $timeout = "2";
    $ora = time();
    $scadenza = $ora-($timeout*60);
    $ip = getenv(REMOTE_ADDR);
    $file = $PHP_SELF;
    if (!$link_id)
        $link_id = mysql_connect($dbhost);
    @mysql_select_db(techmulti_it_db,$link_id);
    $result = @mysql_query("INSERT INTO useronline VALUES
('$ora','$ip','$file')",$link_id);
    $result = @mysql_query("DELETE FROM useronline WHERE
utenti<'$scadenza'",$link_id);
    $result = @mysql_query("SELECT DISTINCT ip FROM useronline",$link_id);
    $utenti_coll = @mysql_numrows($result);
    if ( $utenti_coll > 1 )
        $texth1 = "utenti on-line";
    elseif ( $utenti_coll == 0 )
        $texthl = "Errore";
    else
    $texthl = "utente on-line";
    $testo = "&nbsp;&nbsp;&nbsp;&nbsp;<b>$utenti_coll</b> " . $texthl;
    echo $testo;
}
// Funzione per il menu laterale
function menu() {
    echo "<br>";
    echo "<a href=\"index.php?p=news\" class=\"menu\">HOME</a><br>";
    echo "<a href=\"articoli.php?sel=SGML\" class=\"menu\">SGML</a><br>";
    echo "<a href=\"articoli.php?sel=HTML\" class=\"menu\">HTML</a><br>";
    echo "<a href=\"articoli.php?sel=CSS\" class=\"menu\">CSS</a><br>";
    echo "<a href=\"articoli.php?sel=JavaScript\"
class=\"menu\">JavaScript</a><br>";
    echo "<a href=\"articoli.php?sel=XML\" class=\"menu\">XML</a><br>";
    echo "<a href=\"articoli.php?sel=XSL\" class=\"menu\">XSL</a><br>";
    echo "<a href=\"articoli.php?sel=FLASH\"
class=\"menu\">Flash</a><br><br>";
    echo "<a href=\"index.php?p=contatti\"
class=\"menu\">Contattaci</a><br><br>";
    echo "<a
href=\"
http://jigsaw.w3.org/css-validator/validator?uri=http://utenti.lycos
.
it/techmulti/stile.css\" target=\"_blank\"><img src=\"images/css.bmp\"
title=\"Valid CSS!\" alt=\"Valid CSS!\"
style=\"border:0;width:88px;height:31px\"></a><br><br>";
    echo "<a
href=\"
http://validator.w3.org/check?uri=http://utenti.lycos.it/techmulti/
;\
" target=\"_blank\"><img style=\"border:0;width:88px;height:31px\"
src=\"images/html.bmp\" title=\"Valid HTML 4.01!\" alt=\"Valid HTML
4.0!\"></a><br><br>";
    echo "<a href=\"
http://www.w3.org/WAI/WCAG1AA-Conformance\
"
title=\"Explanation of Level Double-A Conformance\"><img
style=\"border:0;width:88px;height:31px\" src=\"images/wai-aa.bmp\"
title=\"Level Double-A conformance icon, W3C-WAI Web Content Accessibility
Guidelines 1.0\" alt=\"Level Double-A conformance icon, W3C-WAI Web Content
Accessibility Guidelines 1.0\"></a><br><br>";
    echo "<br>";
}
// funzione per il menu nelle pagine per amministratori
function admin_menu(){
    echo "<h4>Menu di navigazione</h4>";
    echo "<div align=\"center\"><a href=\"insert.php\">Inserisci</a> | <a
href=\"modify.php\">Modifica</a> | <a href=\"delete.php\">Cancella</a> | <a
href=\"check.php?f=logout\">Logout</a></div>";
}
// funzione per la stampa della chiusura della pagina
function foot() {
    echo "<table width=\"760\" border=\"0\" cellpadding=\"0\"
cellspacing=\"0\">";
    echo "<tr>";
    echo "<td align=\"center\"><small>Disclaimer</small></td>";
    echo "</tr>";
    echo "</table>";
}
?>
***************
ed ora passiamo alle tabelle. vi posto il dump di phpmyqdmin:
#
# Struttura della tabella `risposte`
#
CREATE TABLE risposte (
  id_risp int(11) NOT NULL auto_increment,
  risp1 int(11) NOT NULL default '0',
  risp2 int(11) NOT NULL default '0',
  risp3 int(11) NOT NULL default '0',
  risp4 int(11) NOT NULL default '0',
  PRIMARY KEY  (id_risp)
) TYPE=MyISAM;
#
# Dump dei dati per la tabella `risposte`
#
INSERT INTO risposte VALUES (1, 53, 79, 29, 18);
# --------------------------------------------------------
#
# Struttura della tabella `sondaggi`
#
CREATE TABLE sondaggi (
  id_sond tinyint(5) NOT NULL auto_increment,
  domanda text NOT NULL,
  risp1 varchar(30) NOT NULL default '',
  risp2 varchar(30) NOT NULL default '',
  risp3 varchar(30) NOT NULL default '',
  risp4 varchar(30) NOT NULL default '',
  PRIMARY KEY  (id_sond)
) TYPE=MyISAM;
#
# Dump dei dati per la tabella `sondaggi`
#
INSERT INTO sondaggi VALUES (1, 'Ti piace questo sito?', 'Si, molto!', 'Si,
abbastanza', 'Insomma...', 'Fa schifo!');
Lunghetto? insomma.....
Grazie cmq!


Lasciando perdere l'esempio di cui sopra, che ho capito che nessuno (come è
giusto che sia) ha tempo da perdere per nulla...
cosa mi consigliate di fare?
ovvero io ho 2 pagine una con le domande e una con i risultati... al primo
accesso per sessione appaiono le domande dal secondo in poi dovrebbero
apparire le risposte.... e ovviamente finito di votare dovrebbero uscire le
risposte... che procedimento posso usare?
Grazie mille a tutti e scusate se rompo...


 cosa mi consigliate di fare?
Sai, se non ti prendi neanche i 10 minuti per ridurre i sorgenti ad un
nucleo con il quale si potrebbe circondare il problema. Il minimo con il
quale si riesce a ricreare il problema. Lettura di 15k di roba se bastano
forse 2 non e' di aiuto per nessuno.
Una vaga idea avrei su quello he sta succedendo (l'errore e' veramente un
1064 oppure per caso un 1054 (che sarebbe meglio da capire?)). Forse legato
al last_insert_id(). cmq. sul tuo sql_error() ho dei dubbi
(if(empty($MYSQL_ERROR)) ). Per il resto hai messo in tutte le funzioni il
@. Cosa non molto buona se hai uno script instabile. Poi c'e' anche il
session_register('votato', 'id_d'); con il id_d... , perche' lo registri in
result? Nessun output delle query fatte?


        $val_risp4 = $data_risp["risp4"] / 2;
Tutto questo bordello :-), scusa il termine, te lo puoi risparmiare,
con un uso piu' intensivo del PHP4. Questo qua sotto funziona con la
tua struttura dati; e funzionerebbe meglio se le risposte fossero su
una tabella separata.
	// Le correzioni appaiono solo qui, una volta sola, cosi' se
	// devi correggerle :-) non si rischia l'apparizione di guai
	// esoterici.
	$correzioni = array(
		0	=> 4,
		20	=> 3,
		40	=> 2,
		70	=> 1,
		140	=> 0.5
	);
	...
	(per ogni riga del database)
	$corr = $correzioni[0];
	// Calcola il minimo valore di correzione da apportare.
	// In pratica, se anche uno solo dei valori "merita" un
	// fattore di 0.5 perche' supera i 140, questo sara' il
	// fattore applicato alla fine della fiera.
	reset($correzioni);
	while(list($max, $factor) = each($correzioni))
		for ($i=0; $i < 5; $i++)
			if ($data_risp["risp$i"] > $max)
				if ($max < $corr)
					$corr = $max;
	for ($i=0; $i < 5; $i++)
		${"val_risp$i"} = $data_risp["risp$i"]*$corr;
Leonardo suggestivo
-- 
Time's angles, mages tell, conceal a place
incredible, beyond the mundane mind;
night-shrouded and between the seas of space
dread creatures drift in the ageless winds.

 Leonardo suggestivo
Thanks Leonardo... ;-)
A proposito: Un testo carino da leggere si trova qui:
  Come scrivere programmi incomprensibili?
 
www.soft-land.org/documenti/pessimo.html

  
www.soft-land.org/documenti/pessimo.html
Be', io CI PROVO, a scrivere codice comprensibile. Per ora sono arrivato
al primo gradino: quando lo rileggo dopo sei mesi, non dico piu' "Ma ero
briao di 'olo, o cosa?!?".
Il secondo gradino sara' far si' che chiunque legga il mio codice non si
debba domandare "Ma costui c'e', ci fa, o si fa?", limitandosi alla sola
scelta fra "c'e'" e "ci fa" :-)
Leonardo

 40 => 2,
[CUT]
Grazie mille davvero... ora provo ad implementare il tutto... cmq per la
cronaca.. ero riuscito a farlo funzionare con il mio metodo aggiungendo uan
pagina intermedia....
ovvero domande.php result.php e show_result.php... cmq non c'è che dire...
il tuo metodo è molto migliore!


 era li... altrimenti l'ho trovato :-) o almeno credo...
se metti @ davanti a mysql_connect()
ti sembrerà che l'errore sia sulla query o sulla select_db, invece ti sei 
perso un'eccezione alle spalle!!
per ogni funzione ci andrebbe sempre (soprattutto se ci metti la @)
if(!funzione())
 {
 gestione_o_stampa_dellerrore();
 }
ciao