Problema con mysql_num_rows

Roberto91

Nuovo Utente
28 Mag 2010
6
0
0
Salve Ragazzi,
Sono alle prese con la registrazione di utenti. C'è un problema però : mysql_num_rows mi ritorna come risultato sempre 0 !!!. Quindi praticamente mi dice sempre che non ci sono righe all'interno del Database e invece è falso perchè l'inserimento funziona e ho inserito 4 righe. Come devo fare ????.
Questo è il codice :

<?php
//Connessione al database

$pass_crypt=sha1($_POST['Password']);
$sql="SELECT Username,Password FROM cliente WHERE Username='";
$sql=$sql . $_POST['requiredUsername'] . "' AND Password='";
$sql=$sql . $pass_crypt . "'";

$ris=mysql_query($sql,$conn);
$nrighe=mysql_num_rows($ris); //problema sulle righe !!!!
echo $nrighe;

if($nrighe!=0)
{
header("location: neg_utente.html"); // spedisce ad una pagina per l'avviso che User e Pass sono già presenti all'interno del Db. Non entra mai in questo caso perchè l'istruzione da sempre 0 !!!
die("la registrazione non è possibile con questo account");
}
else
{
include ("funzione.php");
$Nome= $_POST['requiredNome'];
$Cognome= $_POST['requiredcognome'];
$Data= $_POST['requiredData'];
$Sesso= $_POST['sesso'];
$Indirizzo= $_POST['Indirizzo'];
$Città = $_POST['requiredCittà'];
$Cap = $_POST['requiredCap'];
$Telefono = $_POST['Telefono'];
$Email =$_POST['requiredEmail'];
$User= $_POST['requiredUsername'];
$Pass = $pass_crypt ;

$sql= "INSERT INTO cliente (Nome,Cognome,Nascita,sesso,Indirizzo,Città,Cap,Telefono,Email,Username,Password) VALUES('" . $Nome . "','" . $Cognome . "','" . $Data ."','" . $Sesso . "','" . $Indirizzo . "','" . $Città . "','" . $Cap . "','" . $Telefono . "','" . $Email . "','" . $User . "','" . $Pass . "')";

$risultato = mysql_query($sql) or die("Query fallita: " . mysql_error() );

if($risultato)
{
header("location: index3.html");
die("Inserimento eseguito con successo");
}
}

mysql_close($conn);
?>
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
prova:
PHP:
$ris=mysql_query($sql,$conn) or die (mysql_error());
e vedi se ti restituisce qualche errore
 

Roberto91

Nuovo Utente
28 Mag 2010
6
0
0
Problema mysql_num_rows

Niente, non mi restituisce nessun problema....Comunque io l'ho pubblicato già su Altervista...non vorrei che sia un problema del comando sul database (creato su altervista).
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
un altro consiglio
metti un var_dump e qguarda come viene fatta la query

PHP:
//...................
$sql=$sql . $pass_crypt . "'";

var_dump($sql);
//.............................

poi dimenticavo prova a scrivere la quey così


PHP:
//............
$sql="SELECT Username,Password FROM cliente WHERE Username='";
$sql .= $_POST['requiredUsername'] . "' AND Password='";
$sql .= $pass_crypt . "'";
var_dump($sql);
//............
 

Roberto91

Nuovo Utente
28 Mag 2010
6
0
0
risposta

Ti ringrazio x esserti preoccupato del problema. Ho notato ke mi riporta il seguente errore :

string(120) "SELECT Username,Password FROM cliente WHERE Username='Roberto' AND Password='e54399cfa6f4efb29169f797f411f4d698662ac1'" Query fallita: Duplicate entry 'Roberto-e54399cfa6f4efb29169' for key 1
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
mi sembra che la query di select sia giusta, secondo me l'errore derviva dall'insert, non sono sicuro ma sembrerebbe che che tu abbia messo il campo Username a unico e nella tabella esiste di già un campo user con valore Roberto quindi non può inserirne un altro. devi verificare.
o metti togli il'unico al campo o fai una verifica dell'esistenza dell'user e, se esiste, devi dire all'utente di cambiarlo
 

Roberto91

Nuovo Utente
28 Mag 2010
6
0
0
risposta

Ciao,
senti il fatto che mi dia quel messaggio, mi va bene. Infatti sto facendo il login di un sito. Il problema è che quando mi registro con una Username e Password che già esistono all'interno del Db, mi deve mandare ad un'altra pagina e non mi deve visualizzare quel messaggio di errore. Ripeto, il messaggio di errore mi va bene però non capisco il perchè la "mysql_num_rows" mi da come valore sempre 0 !!. Dato che la spedizione ad un'altra pagina avviene se nrighe !=0, non entra mai in questo caso. Comunque è strano davvero....
C'è un comando in mysql che sostituisce la mysql_num_rows ???????
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
non so di preciso se esista, anche perche ho sempre usato mysql_num_rows, comunque guardo e poi ti so dire, però è un assurdo che non funzi se la query, come sembra, è fatta bene.
è una stupidaggine, ma nell'if io di solito uso

PHP:
if($nrighe > 0)
{
header("location: neg_utente.html"); // spedisce ad una pagina per l'avviso che User e Pass sono già presenti all'interno del Db. Non entra mai in questo caso perchè l'istruzione da sempre 0 !!!
die("la registrazione non è possibile con questo account");
}
//ecc....
comunque al posto dell'echo sotto mysql_num_rows metti un var_dump che ti dice non solo i lavore, ma anche il tipo (che dovrebbe essere int)
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao, ho trovato questo, ma non so esattamente come usarlo, in quanto non l'ho mai usato

$sql="SELECT COUNT(*) FROM cliente WHERE Username='" . $_POST['requiredUsername'] . "' AND Password='". $pass_crypt . "'";
comunque ho trovato questo

$query = "SELECT count(*) AS tot FROM news";

Come si può notare non abbiamo selezionato alcuna colonna della tabella, ma abbiamo scelto di farci restituire una tabella con una sola colonna e una sola riga. La riga conterrà il numero di righe che rispondono ai criteri di selezione indicati. Nel nostro caso l'unico vincolo inserito è quello di appartenere alla tabella news (FROM news). Questo ci permetterà di ottenere il numero di articoli inseriti nella tabella. Tramite AS tot abbiamo indicato che nella tabella che otteniamo la colonna che contiene la somma si deve chiamare tot. Questo non è necessario, ma può essere utile nel caso in cui si utilizzano le funzioni.
Per ottenere il risultato utilizziamo i metodi usati fin'ora:

$result = mysql_query($query, $db);
$row = mysql_fetch_array($result);

Quindi il numero totale di articoli sarà contenuto in $row[tot].
dimenticavo se anche $row[tot] ti da zero l'errore è a monte.
 

Roberto91

Nuovo Utente
28 Mag 2010
6
0
0
Risposta

Ehi scusami tanto ma veramente mi stavo cervellando e alla fine ho capito qual'è il problema. Praticamente mi ero dimenticato di mettere all'interno della tabella "clienti" un campo auto_increment !!!!! :). Dunque probabilmente la mysql_num_rows nn contava da nessuna parte !!!.
Scusami se ho fatto cervellare anche te. Cmq adesso mi viene fuori questo problema :

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.

Avrò commesso qualche errore di sintassi ?????
 
Discussioni simili
Autore Titolo Forum Risposte Data
S problema con recupero dati tabella mysql PHP 2
Z Problema con INT MySQL PHP 1
Z Problema database MySQL con XAMPP PHP 0
V [MySQL] problema query con date su server MySQL 5
G inserimento csv in tabella mysql; problema con struttura PHP 11
S Problema ricevimento dati da con MySQL PHP 6
T PHP+MYSQL: problema con quelle maledette lettere accentate... PHP 5
F Problema con mysql workbench MySQL 0
M [MySql - VB6 sp6] Problema connessione db con alcuni pc (errore Lost connection to MySQL server...). MySQL 1
gandalf1959 problema con la codifica caratteri accentati e speciali tra php e mysql PHP 3
webmachine [PHP][MYSQL] Problema con le SELECT PHP 5
F [MySQL] Problema con LEFT JOIN MySQL 6
A [MySQL] problema con la command line client. MySQL 0
neo996sps PHP/MySQL - Problema con generazione array PHP 14
S Problema con pagination e mysql PHP 0
I Problema con DELETE - MYSQL PHP 6
M problema con form scrittura su mysql PHP 3
H Problema con MySQL e PHP, dopo aver fatto una SELECT non ottengo alcun risultato PHP 7
G Problema con query mysql MySQL 1
A problema con database (mysql - php) PHP 4
A problema con database (mysql - php) PHP 1
L PHP: problema con query mysql. PHP 3
S Autocompletamente con jQuery, PHP e MySQL - Problema con le query PHP 7
T Problema: Confronto date con Mysql PHP 3
A problema con php and mysql aiuto !!!! PHP 1
T Problema con form e recupero dati da mysql PHP 17
T Problema condizione di un form con mysql PHP 15
R Problema con UPDATE su DB mysql MySQL 1
K [MYSQL] problema con una query in loop MySQL 1
B Problema con query mySql Java 2
A problema con query mysql PHP 1
F problema nella connessione con mysql presente in Aruba PHP 3
G Problema con gestore esterno Mysql PHP 11
M Problema con newslettere e mysql PHP 7
M mysql 4 problema con tabella frm Database 2
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

Discussioni simili