domanda facile: errore su mysql_fetch_array

iacoposk8

Utente Attivo
21 Apr 2009
54
0
0
ciao a tutti!!! ho questo script

PHP:
<?
	$voto=$_GET['v'];
	$id=$_GET['id'];

	$host = 'localhost';
	$username = 'root';
	$db = 'login';
	$password = '';

	$conn = @mysql_connect($host,$username,$password) or die (mysql_error());
	$sel = @mysql_select_db($db, $conn) or die (mysql_error());

	$controllo_db = mysql_query ("SELECT *
	FROM `mp3` 
	WHERE `id` = $id ");

	$query=mysql_query($controllo_db, $conn);
	$row = mysql_fetch_array($query);
	
	$voto=$voto+$row['voto'];
	
	$inserisco_dati_di_registrazione = mysql_query("
    INSERT INTO `utenti` ( `id` , `iduser` , `file` , `voto`)
	VALUES (NULL , NULL, NULL, '$voto')");
?>
e mi dice:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\programmi\easyphp1-8\www\classifica\v… on line 18

ovvero su questa riga

$row = mysql_fetch_array($query);

chi sa il perchè??
grazie
 

datipal

Nuovo Utente
6 Apr 2009
2
0
0
Ciao
La variabile $controllo_db deve essere = alla sola query.

Quindi $controllo_ db = "SELECT * FROM `mp3` WHERE `id` = $id";

:fonzie:
 

iacoposk8

Utente Attivo
21 Apr 2009
54
0
0
io ho sostituito la riga, ho scritto:
PHP:
<?
	$voto=$_GET['v'];
	$id=$_GET['id'];

	$host = 'localhost';
	$username = 'root';
	$db = 'login';
	$password = '';

	$conn = @mysql_connect($host,$username,$password) or die (mysql_error());
	$sel = @mysql_select_db($db, $conn) or die (mysql_error());

	$controllo_ db = "SELECT * FROM `mp3` WHERE `id` = $id";

	$query=mysql_query($controllo_db, $conn);
	$row = mysql_fetch_array($query);
	
	$voto=$voto+$row['voto'];
	
	$inserisco_dati_di_registrazione = mysql_query("
    INSERT INTO `utenti` ( `id` , `iduser` , `file` , `voto`)
	VALUES (NULL , NULL, NULL, '$voto')");
	
	echo "fatto";
?>

ma su quella linea mi dice:

Parse error: parse error in c:\programmi\easyphp1-8\www\classifica\votor.php on line 13
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
probabilmente l'errore deriva da riga 13
$controllo_ db = "SELECT * FROM `mp3` WHERE `id` = $id";

PHP:
$controllo_ db = "SELECT * FROM mp3 WHERE id = '$id'";
 

iacoposk8

Utente Attivo
21 Apr 2009
54
0
0
mi dice ancora: Parse error: parse error in c:\programmi\easyphp1-8\www\classifica\votor.php on line 13
 

Trogo

Utente Attivo
11 Gen 2008
370
0
0
43
Sanremo
Veramente sono ormai 20 anni che porto gli occhiali... Si vede che però i miei funzionano bene!! :D
 

iacoposk8

Utente Attivo
21 Apr 2009
54
0
0
si, anche io mi affido troppo a voi e non butto un occhio, potevo accorgermene, però non è ancora perfetto!!!
questo script praticamente viene aperto da una classifica, questa classifica a lato a 5 link che van da 1 a 5, e servono per votare un file, quindi io prendo i parametri passati dal link (id per identificare la riga e voto da 1 a 5) poi mi connetto al database, mi posiziono sulla riga dove id=id poi prendo il voto del db e gli sommo il voto passato, poi lo reinserisco nel db, però qualcosa non va!!!
come mai???
 

Trogo

Utente Attivo
11 Gen 2008
370
0
0
43
Sanremo
Ho aggiunto i commenti al codice

PHP:
<?
    // Qui viene preso il voto da 1 a 5 
    $voto=$_GET['v'];
    // Qui viene preso l'id del file votato
    $id=$_GET['id'];
    // Dati di connessione al DB
    $host = 'localhost';
    $username = 'root';
    $db = 'login';
    $password = '';
    // Effettua la connessione
    $conn = @mysql_connect($host,$username,$password) or die (mysql_error());
    // Seleziona il DB su cui operare
    $sel = @mysql_select_db($db, $conn) or die (mysql_error());
    // Query per prendere il voto attuale associato all'ID del file
    // appena votato
    $controllo_db = "SELECT * FROM `mp3` WHERE `id` = $id";

    $query=mysql_query($controllo_db, $conn);
    $row = mysql_fetch_array($query);
    // Al voto salvato viene aggiunto il voto appena dato
    $voto=$voto+$row['voto'];
    
    // Questa query non è per niente chiara. Viene aggiunta
    // una riga in una tabella utenti completamente vuota tranne
    // la somma dei voti appena calcolata. Ma così non ha alcuna
    // associazione nè con un file nè con un utente
    $inserisco_dati_di_registrazione = mysql_query("
    INSERT INTO `utenti` ( `id` , `iduser` , `file` , `voto`)
    VALUES (NULL , NULL, NULL, '$voto')");
    // Non viene aggiornato il record relativo al file appena votato.
    // Il voto per quel file non cambia
    echo "fatto";
?>
 

iacoposk8

Utente Attivo
21 Apr 2009
54
0
0
hai ragione!!!! la tabella!!!
quindi viene così!!!
PHP:
$inserisco_dati_di_registrazione = mysql_query("
    INSERT INTO `mp3` ( `id` , `iduser` , `file` , `voto`)
	VALUES (NULL , NULL, NULL, '$voto')");
ma posso scriverlo così??
PHP:
$inserisco_dati_di_registrazione = mysql_query("
    INSERT INTO `mp3` ( `voto`)
	VALUES ('$voto')");
però ancora non va :(
 

Trogo

Utente Attivo
11 Gen 2008
370
0
0
43
Sanremo
Il fatto è che per aggiornare il voto dovresti fare un UPDATE invece dell'INSERT.

$query = "UPDATE mp3 SET voto = '$voto' WHERE id = $id";

Gli apici intorno a $voto ci vanno solo se il campo nel DB non è numerico
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
scusa devi inserire o aggiornare il voto?
con quello che hai fatto inserisci nella tabella mp3 un record con un voto legato a chi?
poi secondo un manuale che ho io gli apici vanno solo sui valori, non sui nomi
...INTO mp3 (voto) VALUES ('$voto')");
se il file che deve essere votato (e aggiornato il voto) secondo me dovresti fare

//.......................
$voto=$voto+$row['voto'];
//.........................
mysql_query("UPDATE mp3 SET voto='$voto'WHERE id_file='$id'");

p.s. per trogo
solo un paio?:D o più come me?
 
Ultima modifica:

iacoposk8

Utente Attivo
21 Apr 2009
54
0
0
io ho scritto:
PHP:
<?
	$voto=$_GET['v'];
	$id=$_GET['id'];
	
	$host = 'localhost';
	$username = 'root';
	$db = 'login';
	$password = '';

	$conn = @mysql_connect($host,$username,$password) or die (mysql_error());
	$sel = @mysql_select_db($db, $conn) or die (mysql_error());

	$controllo_db = "SELECT * FROM mp3 WHERE id = '$id'";  

	$query=mysql_query($controllo_db, $conn) or die (mysql_error());
	
	$row = mysql_fetch_array($query);
	
	$voto=$voto+$row['voto'];
	
	$query = "UPDATE mp3 SET voto = $voto WHERE id = $id";

	echo "fatto";
?>
ma non va :(
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ehm..ehm...

$query = "UPDATE mp3 SET voto = $voto WHERE id = $id";

e il mysql_query dov'è?

PHP:
$query = mysql_query("UPDATE mp3 SET voto = '$voto' WHERE id = '$id'");
 

Trogo

Utente Attivo
11 Gen 2008
370
0
0
43
Sanremo
Per borgo:
Gli apici possono fare male eccome!!!
Prendiamo questo caso, che può anche essere utile al problema:

Così funziona. Incrementa correttamente il campo voto.

PHP:
$query = "UPDATE mp3 SET voto = voto + $voto WHERE id = $id";

Così non funziona. Il campo voto viene impostato a "zero". Questo perchè usando gli apici mysql effettua un casting da stringa a numero. Se tra gli apici c'è solo un numero, il casting viene effettuato con successo. Altrimenti il casting da risultato "zero".
PHP:
$query = "UPDATE mp3 SET voto = 'voto + $voto' WHERE id = $id";

Dovrebbe essere scritta così per funzionare, ma perchè far fare a mysql un casting inutile?
PHP:
$query = "UPDATE mp3 SET voto = voto + '$voto' WHERE id = $id";

P.S. solo un paio per fortuna!!!
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
penso che tu conosca il detto "cum grano salis", è evidente che il caso secondo non funzi.
io comunque, per il mio stile di programmazione non farei mai una cosa del genere (anche se formalmente corretta)
$query = "UPDATE mp3 SET voto = voto + '$voto' WHERE id = $id";
cerco sempre (anche perchè poi è più facile seguire i percorsi seminando vari var_dump) di tenere le cose più lineari possibili:
$voto_vecchio=$row['voto'];
$voto_aggiornato=$voto_vecchio+$voto;
$query="UPDATE tabella SET voto='$voto_aggiornato'.......
mysql_query($query);
forse utilizzo un metodo più antiquato, ma non amo certe scorciatoie sintattiche (es l'if con ? e talvolta preferisco $a=$a+1 al $a++ o simili)
 

iacoposk8

Utente Attivo
21 Apr 2009
54
0
0
non mi esprimo in questo off topic (perchè nn posso :) )ma vi ringrazio per l'aiuto, ora va :D
 

Trogo

Utente Attivo
11 Gen 2008
370
0
0
43
Sanremo
ciao
penso che tu conosca il detto "cum grano salis", è evidente che il caso secondo non funzi.
io comunque, per il mio stile di programmazione non farei mai una cosa del genere (anche se formalmente corretta)
$query = "UPDATE mp3 SET voto = voto + '$voto' WHERE id = $id";
cerco sempre (anche perchè poi è più facile seguire i percorsi seminando vari var_dump) di tenere le cose più lineari possibili:
$voto_vecchio=$row['voto'];
$voto_aggiornato=$voto_vecchio+$voto;
$query="UPDATE tabella SET voto='$voto_aggiornato'.......
mysql_query($query);
forse utilizzo un metodo più antiquato, ma non amo certe scorciatoie sintattiche (es l'if con ? e talvolta preferisco $a=$a+1 al $a++ o simili)

Ultimo post OT per concludere in bellezza :fonzie:

Anche io quando posso cerco di mantenermi il più possibile lineare col codice (figurati che la cosa che più apprezzo in python è la rigidità nella formattazione del codice...), il fatto è che per lavoro mi trovo spesso a dover scrivere codice ottimizzato al massimo, e poter risparmiare una query per me può voler dire molto!!!

Poi è ovvio e sacrosanto che ognuno abbia il proprio stile di programmazione (ed anche le proprie manie, io ne ho tante), sennò saremmo dei replicanti, non programmatori!!!
 
Discussioni simili
Autore Titolo Forum Risposte Data
T Domanda valutazione html LinkedIn 2022 pt3 HTML e CSS 7
T Domanda valutazione html LinkedIn 2023 pt2 HTML e CSS 15
T Domanda valutazione html LinkedIn 2023 pt1 HTML e CSS 1
S Domanda stupida... C/C++ 0
F domanda sul link juice SEO e Posizionamento 2
A domanda da principiante di facebook... Discussioni Varie 1
G Salutazioni...e 1 domanda Presentati al Forum 1
Annalisa83 Domanda spinosa SEO e Posizionamento 1
L [HTML] Domanda: Utilizzo script HTML e CSS 0
G [HTML] Domanda su responsive topnav HTML e CSS 0
jonnino2004 domanda su acquisto dominio libero Domini 1
T4MAR4 [HTML] punti di domanda al posto delle lettere accentate HTML e CSS 2
booklisa [PHP] Domanda scema di sintassi PHP 2
booklisa [PHP] Domanda semplice (apparantemente) PHP 4
T Domanda su Schema e Relazione Database 0
delphorm [PHP] Domanda stupida (credo) PHP 10
D domanda su EOF Visual Basic 2
G Domanda css HTML e CSS 0
G Domanda sul metodo GET PHP 1
P domanda su galleria HTML e CSS 4
L Domanda difficile: ecommerce CSV 20 000 prodotti E-Commerce 3
otto9due Piccola domanda su ++ e -- operatori di incremento/decremento PHP 0
otto9due Altra piccola domanda di approfondimento PHP 5
otto9due Piccola domanda di approfondimento PHP 3
T Domanda difficile... Javascript 21
R qualche domanda generale PHP 1
P Ciao a tutti ragazzi! avrei subito una domanda da farvi riguardo WORDPRESS, NETWORK, Presentati al Forum 1
Gabriele Visioli Domanda: rapporto fra Visite e Traffico Hosting 3
G Domanda sul sito facebook Discussioni Varie 0
F Domanda per javascript Javascript 0
A Domanda sulla modifica di CSS esistenti HTML e CSS 1
Gabriele Visioli Gestione DNS economico e domanda su affiliazioni legata ad esso Hosting 2
P Domanda... Discussioni Varie 4
filippino phpBB: spam nonostante captcha e domanda di sicurezza phpBB 0
R domanda su guadagni con sito non altervista Guadagnare col Sito 1
M Domanda riguardo i risultati della ricerca di google Joomla 14
bit77 Domanda! ho un file xml e devo estrapolare determinati testi, php è la soluzione? PHP 0
S Domanda per aprire una cartella PHP 0
P Domanda su File Database .sql di un forum Database 1
asheron Domanda importante, sulla vendita di pubblicità online: Vendere e Acquistare pubblicita' online 1
asevenx domanda su include e iframe PHP 3
A Mi presento con una domanda... XD Presentati al Forum 2
P Domanda da neofita : rubrica con diverse tipologia contatto Database 5
D Domanda copyright codice Leggi, Normative e Fisco 3
borgo italia domanda sui cookie PHP 4
emanuelevt Domanda generica su php / framework / risorse online PHP 2
M Domanda DataBase PHP 4
S Semplice domanda con Javascript Javascript 3
borgo italia domanda per alex Flash 6
borgo italia una domanda filosofica Discussioni Varie 10

Discussioni simili