|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2005
Città: Pescara
Messaggi: 304
|
[php-mysql] problema query
ho una query di questo tipo:
Codice:
$query = "SELECT user FROM tabella WHERE user='$utente'";
$query = mysql_query($query);
$num = mysql_num_rows($query);
if($num >= 1) {
// query di insert
} else echo "Il nome utente ".$utente." è già in uso!"
(praticamente dovrebbe controllare se un utente esiste già.. se nn esiste fa la query di insert, se esiste invece dice che è già in uso) |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jun 2001
Città: Alessandria (provincia)
Messaggi: 4772
|
Non sono un guru di php, dato che al 98% lavoro in Java, ma secondo me il problema è nell'if dove hai messo $num>=1
Prova a mettere solo > e non =. Da quello che posso capire in $num ci và il numero di righe che soddisfa la query. Se trova l'utente, tale numero è almeno uno (maggiore di 1 se si ripete). Quindi "non lo trova" dovrebbe essere 0. L'IF potrebbe quindi essere anche del tipo if ($num==0) |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jul 2005
Città: Pescara
Messaggi: 304
|
il num>=1 significa che deve trovare almeno una riga, quindi se trova un solo utente con quel nome già dovrebbe essere vero l'if.. invece a me viene falso lo stesso, l'if che hai postato tu invece è l'inverso di questo, praticamente se metto in quel modo significa che se è vero nn ci sono utenti, se è falso ci sono!
grazie mille dell'aiuto cmq!! |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Feb 2005
Città: Napoli (provincia)
Messaggi: 2361
|
"SELECT user FROM tabella WHERE user='$utente'"
Non capisco di PHP ancora ma credo che vada scritta come "SELECT user FROM tabella WHERE user='" . $utente . "'" A meno che non sia possibile includere variabili PHP all'interno di stringhe senza dover prima terminare la stringa e concatenarla...
__________________
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Sep 2002
Città: Monza
Messaggi: 598
|
innanzittuto ha ragione rdefalco:
si deve concatenare correttamente la stringa: Codice:
"SELECT user FROM tabella WHERE user='" . $utente . "'" Codice:
$query = "SELECT user FROM tabella WHERE user='".$utente."'";
$query = mysql_query($query);
$risultato=mysql_fetch_array($query);
if($risultato<>null){
// query di insert
} else echo "Il nome utente ".$utente." è già in uso!"
__________________
Nunc est bibendum |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jul 2005
Città: Pescara
Messaggi: 304
|
sìsì per il fatto della concatenazione ho sbagliato a trascrivere, in realtà avevo fatto così:
Codice:
$query = "SELECT user FROM reflink WHERE user=".$utente; Codice:
$query = "SELECT user FROM tabella WHERE user=".$utente;
$query = mysql_query($query);
$risultato=mysql_fetch_array($query);
if($risultato<>null){
// query di insert
echo "La registrazione è avvenuta correttamente!";
} else echo "Il nome utente ".$utente." è già in uso!";
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Sep 2002
Città: Monza
Messaggi: 598
|
fai questa prova:
-scegli un user che non sia esistente e fattelo stampare, per vedere cosa ti porta, anche se sembra la stessa cosa dovresti usare gli apici ' in questo modo: query=" select * from utenti where utente=' ".$user." ' "; infatti ci potrebbero essere problemi, lo vedi di sicuro quando $user contiene uno spazio. facci sapere
__________________
Nunc est bibendum |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Feb 2005
Città: Napoli (provincia)
Messaggi: 2361
|
Codice:
$query = "SELECT user FROM reflink WHERE user=".$utente; SELECT user FROM reflink WHERE user=rdefalco mentre dovrebbe essere SELECT user FROM reflink WHERE user='rdefalco' con l'apice singolo quindi il codice corrispondente almeno sarà così Codice:
$query = "SELECT user FROM reflink WHERE user='" . $utente . "'";
__________________
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Oct 2003
Città: Rimini
Messaggi: 519
|
Il nomeutente va tra apici quindi va bene anche usare la variabile dentro la stringa ma tra apici come avevi fatto nel primo esempio:
Codice PHP:
Io farei in questo modo: Codice PHP:
__________________
I bikers di Rimini, sito ufficiale: http://www.MotoRn.it PC: AMD Athlon Xp 1600+ | 512MB DDR | MB DFI AD70-SC | Ati Radeon 9800 Pro| Scheda Tv: Empire All In One Video - VGear | SBLive! 1024 | Creative Cambridge SoundWorks 5.1 | HDD IDE: MAxtor 40GB e 120GB | DVD-ROM Hitachi GD7000 | Master. DVD LG4040B FW A302 | Monitor Sony 19'' Trinitron E400 | APC Back-UPS CS 500 | Ultima modifica di mercurio76 : 19-12-2005 alle 23:08. |
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Jul 2005
Città: Pescara
Messaggi: 304
|
Quote:
vabbè, vi ringrazio tutti quanti, ora funziona |
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Jul 2005
Città: Pescara
Messaggi: 304
|
ora ho un altro problemino.. praticamente la seguente riga:
Codice:
$query=mysql_query("INSERT INTO reflink (user, val, val1) VALUES ('".$utente."','".$val."','".$val1."')") or die('Errore nella query: '.mysql_error());
o.O grazie |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Jul 2005
Città: Pescara
Messaggi: 304
|
uppino, ho ancora il problema
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:54.











Raffo™ (io, non la birra) |
|








