PHP - Cargar datos db

 
Vista:

Cargar datos db

Publicado por Pablo (39 intervenciones) el 03/02/2014 13:46:49
Hola amigos: tengo un error al intentar cargar datos a mi database el mensaje es: Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /registrar2.php on line 24. Para mi no parece que haya un error de comas pero no logro hacerlo funcionar, es más intenté borrar el echo y sigue dándome error. Gracias por su tiempo
1 <?php
2 $dbhost="xxxx";
3 $dbusername="xxxx";
4 $dbuserpass="xxxx";
5 $dbname="xxxx";
6 mysql_connect ($dbhost, $dbusername, $dbuserpass)or die ('ha fallado conexion: '.mysql_error());
7 mysql_select_db($dbname) or die("Cannot select database")or die ('error al elegir base de datos: '.mysql_error());
8 if (isset($_POST["login"])) {
9 $username = $_POST["login"];
10 $password = $_POST["pass1"];
11 $cpassword = $_POST["pass2"];
12 $email = $_POST["email"];
13 if($username==NULL|$password==NULL|$cpassword==NULL|$email==NULL) {
14 echo "un campo está vacio.";
15 }else{
16 if($password!==$cpassword) {
17 echo "Las contraseñas no coinciden";
18 }else{
19 $checkuser = mysql_query("SELECT utente FROM utente WHERE username='$username'");
20 $username_exist = mysql_num_rows($checkuser);
21 $checkemail = mysql_query("SELECT email FROM utente WHERE email='$email'");
22 $email_exist = mysql_num_rows($checkemail);
23 if ($email_exist>0 | $username_exist>0) {
24 echo “EL nombre de usuario o la cuenta de correo estan ya en uso”;
25 }else{
26 $query = "INSERT INTO utente (utente, pass, email) VALUES ($username, $password, $email)";
27 mysql_query($query) or die(mysql_error());
28 echo “El usuario $username ha sido registrado de manera satisfactoria.”;
29}
30 }
31}
32}
33?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Cargar datos db

Publicado por xve (6935 intervenciones) el 03/02/2014 16:26:16
Hola Pablo, creo que el error lo tienes en la linea 23... los condicionales or son así: || y los and así: &&...

Nos puedes comentar si es esto?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cargar datos db

Publicado por Pablo (39 intervenciones) el 03/02/2014 16:37:49
Gracias xve por tu intervento corregí el error 23 pero me sigue dando error 24. Lo curioso que elimine todas las condiciones if y terminaba con:
$query = "INSERT INTO utente (utente, pass, email) VALUES ($username, $password, $email)";
mysql_query($query) or die(mysql_error());
?>
Lo más absurdo que me daba error en ?>. La verdad que se me fueron las ideas.
Gracias de nuevo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Cargar datos db

Publicado por bathorz (33 intervenciones) el 03/02/2014 17:16:47
Prueba con las comillas:
1
"INSERT INTO utente (utente, pass, email) VALUES ('$username', '$password', '$email');";
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cargar datos db

Publicado por Pablo (39 intervenciones) el 03/02/2014 17:57:13
Gracias barthorz. Lamentó decir qué ni siquiera esto resuelve mi dilema. Siempre gracias pues con así e resuelta muchos otros problemas. Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Cargar datos db

Publicado por bathorz (33 intervenciones) el 03/02/2014 19:30:57
Revisa el tipo de comillas en 24 y 28, el IDE tira sintax error en ellas.
1
2
3
echo "un campo está vacio."; // ej: línea 14 comillas OK
echo “EL nombre de usuario o la cuenta de correo estan ya en uso”; // línea 24 tira error: comillas extrañas
echo “El usuario $username ha sido registrado de manera satisfactoria.”; // línea 28 tira error: comillas extrañas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cargar datos db

Publicado por Pablo (39 intervenciones) el 03/02/2014 19:50:13
Me dio error pero un error diferente pues entonces es positivo al agrandar el 24 y 28 como dijiste eran diferentes. Ahora mi error da:
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /registrar2.php on line 20 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 '@yahoo.com.ar)' at line 1.
Gracias siempre
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Cargar datos db

Publicado por bathorz (33 intervenciones) el 03/02/2014 20:53:44
Te lo está diciendo: SQL syntax <-- error de sintaxis en lo que le estás enviando.
Prueba por terminal o phpmyadmin:
1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT count( email ) FROM utente WHERE email = 'prueba@yahoo.com.ar';
+----------------+
| count( email ) |
+----------------+
|              1 |
+----------------+
 
SELECT count( email ) FROM utente WHERE email = 'noexiste@yahoo.com.ar';
+----------------+
| count( email ) |
+----------------+
|              0 |
+----------------+

Haz un echo para ver lo que estás enviando y compara.
1
2
echo $SQL = "SELECT count(email) FROM utente WHERE email='$email'";
//mysql_query($SQL);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cargar datos db

Publicado por Pablo (39 intervenciones) el 03/02/2014 22:54:08
La verdad que te agradezco tanto tu ayuda. Aunque no lo puedas creer en la form donde compilo los datos inicie y termine con apóstrofe escribí tus líneas y me llena el database pero me da este mensaje.

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/w72319/domains/montinope.it/public_html/pablo/registrar2.php on line 20 Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /registrar2.php on line 22 SELECT count(email) FROM utente WHERE email=''[email protected]''El usuario 'xxx' ha sido registrado de manera satisfactoria.
Realmente agradezco en general la ayuda pues sí era por mi todavía estaba en una laguna
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Cargar datos db

Publicado por bathorz (33 intervenciones) el 04/02/2014 12:59:20
La consulta SELECT, retorna un recurso(resource) si la consulta es OK, o un boleano(false) si no lo es.
Si el mensaje es un boleano(false) debe ser que la consulta está fallando.
Agrega or die() a todas las consultas.
1
2
3
4
5
6
7
8
9
10
11
$conn = mysql_connect($dbhost, $dbusername, $dbuserpass) or die('ha fallado conexion: ' . mysql_error());
mysql_select_db($dbname, $conn) or die('Fallo BBDD: ' . mysql_error());
 
$email = 'mailPrueba';
$username = 'usuarioPrueba';
 
$SQL1 = "SELECT utente FROM utente WHERE username='$username'";
$checkuser = mysql_query($SQL1, $conn) or die('Fallo query: ' . mysql_error());
 
$SQL2 = "SELECT email FROM utente WHERE email='$email'";
$checkemail = mysql_query($SQL2, $conn) or die('Fallo query: ' . mysql_error());
¿Cuál es ahora el mensaje?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cargar datos db

Publicado por pablo (39 intervenciones) el 07/02/2014 02:17:41
Hola bathorz: Disculpá pero se me complico el día. Hice lo que me dijiste y me envió este mensaje.
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 '@tiscali.it)' at line 1

Lo más curioso que en la form que uso para compilar los datos si en las textbox de username y email pongo comillas carga los datos al database sin ningún problema. No se, qué pensas?

<form action="registrar3.php" method="POST">
Login: <input type="text" name="login" value=""><br>
Password: <input type="password" name="pass1" value=""><br>
Repite Password: <input type="password" name="pass2" value=""><br>
E-mail: <input type="text" name="email" value=""><br>
<input type="submit" name="Crear">
</form>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Cargar datos db

Publicado por bathorz (33 intervenciones) el 07/02/2014 09:25:20
Pon un echo para ver qué le está enviando, ejemplo:
echo $SQL = "SELECT email FROM utente WHERE email='$email'";
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cargar datos db

Publicado por pablo (39 intervenciones) el 07/02/2014 22:36:21
A mi da este error y sin embargo con echo me da correcto? Qué te parece?
SELECT email FROM utente WHERE email='[email protected]'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 '@hotmail.com)' at line 1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Cargar datos db

Publicado por bathorz (33 intervenciones) el 08/02/2014 10:28:11
...syntax to use near '@hotmail.com) <-- hasta donde sé es un error típico de comillas.

* Deja solo lo mínimo en un script de prueba, pega esto:
1
2
3
4
5
6
7
8
9
$conn = conectadb('utente'); // <-- aquí lo que uses para conectarte
$email = 'pablomasague@hotmail.com';
echo $SQL = "SELECT email FROM utente WHERE email='".$email."';";
$recurso = mysql_query($SQL, $conn) or die(mysql_error());
echo '<br />';
var_dump($recurso);
$result = mysql_fetch_assoc($recurso);
echo '<br />';
var_dump($result['email']);

* Debería darte:
1
2
3
SELECT email FROM utente WHERE email='pablomasague@hotmail.com';
resource(8) of type (mysql result)
string(24) "pablomasague@hotmail.com"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cargar datos db

Publicado por pablo (39 intervenciones) el 08/02/2014 11:50:15
puede ser que me este dando el mismo idéntico error!!!
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 '@hotmail.com)' at line 1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Cargar datos db

Publicado por bathorz (33 intervenciones) el 08/02/2014 15:57:12
* Pruebas

1. Con:
"SELECT email FROM emp WHERE email='$email'"
"SELECT email FROM emp WHERE email='".$email."'"
"SELECT email FROM emp WHERE email=\"$email\""
OK los tres

2. Con: "SELECT email FROM emp WHERE email=$email"
near '@hotmail.com' at line 1

3. Con: "SELECT email FROM emp WHERE email='$email"
near ''[email protected]' at line 1

4. Con: "SELECT email FROM emp WHERE email=$email"
near '@hotmail.com' at line 1

5. Con: "(SELECT email FROM emp WHERE email=$email)"
near '@hotmail.com)' at line 1

El 5º es igual al error de tu último mensaje.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cargar datos db

Publicado por Pablo (39 intervenciones) el 09/02/2014 12:30:44
La verdad que te agradezco tanto tu ayuda. Sabes que cambie como dijiste y me da siempre el mismo error. Me da impotencia no darle la vuelta a este problema. Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Cargar datos db

Publicado por bathorz (33 intervenciones) el 09/02/2014 14:48:59
Imprime (completo) el script de prueba que estás utilizando basado en el del mensaje: Deja solo lo mínimo en un script...
Hazlo desde el inicio (<?php...) hasta el final.
Ponlo entre las etiquetas code, las coloca el ícono que parece un engranaje en el menú de respuesta.

Ejecuta el script con un navegador e imprime el resultado que devuelve (completo).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Cargar datos db

Publicado por pablo (39 intervenciones) el 10/02/2014 01:46:36
Hola bathorz: Realmente sí sigo viendo estés script es sólo por tu ayuda de no ser así hubiera tirado todo al diablo. Te cuento que encontré el problema que espero sea fácil resolver. Si en la form escribo en login utente y en email escribo email me rellena el database solo con la pass1 y pass2. Es irreal o muy cómico
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar