Ver Mensaje Individual
  #3 (permalink)  
Antiguo 13/07/2021, 12:38
pilucho
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Respuesta: 2 tablas login sin relacion

Cita:
Iniciado por zerpico_01 Ver Mensaje
Info

https://dev.mysql.com/doc/refman/8.0...variables.html

Sospecho que el arroba le esta jugando una mala pasada

mysql tiene alcance de sesión, usar un arroba dentro de una consulta,
puede que este generando el error.
Tiene que ver el tipo de campo tambien al que se esta consultando, si es vachar, hay un problema.

Observe que se esta enviando como valor de consulta un arroba y esto mysql lo interpreta
como @variable, las variables comenzadas con arroba son variables de tipificación libre, que pueden inicializarse
en algún momento de una sesión y mantener su valor hasta el final de la misma.

por definición se preparan con @ y firmadas así @variable se pueden iniciar en un SET o dentro de una consulta,
por lo que si usted esta enviando
Código PHP:
Ver original
  1. $correo =alguncorreo@gmail.com
, puede estar interpretando
Código PHP:
Ver original
  1. @gmail.com
como variable.
Resumiendo:
En mysql, @variable indica una variable definida por el usuario.
El alcance de esta variable es la totalidad de la sesión. Eso significa que mientras exista su conexión con la base de datos, la variable puede seguir siendo utilizada, es bueno para ciertas ocasiones y no para otras :(
en su caso no es el modo, y sospecho que esto le esta ocurriendo, para saberlo imprima los errores,
si imprime:

Código PHP:
You have an error in your SQL syntax;....near '@uncorreodemo.com'... 
es problema de su método de consulta y se esta interpretando @uncorreodemo como variable definida por usted.

Probemos

Código PHP:
creo dos tablas :

CREATE TABLE `loginuno` (
  `
idint(10unsigned NOT NULL auto_increment,
  `
correovarchar(60NOT NULL,
  `
namevarchar(32NOT NULL,
  
PRIMARY KEY (`id`)
ENGINE=InnoDB DEFAULT CHARSET=utf8

CREATE TABLE 
`logindos` (
  `
idint(10unsigned NOT NULL auto_increment,
  `
correovarchar(60NOT NULL,
  `
namevarchar(32NOT NULL,
  
PRIMARY KEY (`id`)
ENGINE=InnoDB DEFAULT CHARSET=utf8


INSERT INTO 
`logindos` (`id`, `correo`, `name`) VALUES
(1'[email protected]''walter');

INSERT INTO `loginuno` (`id`, `correo`, `name`) VALUES
(1'[email protected]''hola walter'); 
GENERAMOS ERROR ARROBA

Código PHP:
$correo '[email protected]';

$sql "SELECT *
  FROM loginuno left_tbl LEFT JOIN logindos right_tbl ON left_tbl.correo = right_tbl.correo
  WHERE right_tbl.correo ="
.$correo;

$result $mysqli->query($sql);

if (!
$result) {
    echo 
$mysqli->error;
}

/**
imprime

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '@hotmail.com' at line 3

*/ 
VAMOS A HACER UNA CONSULTA CORRECTA

Código PHP:
$id '1';

/** relizamos una consulta razonable */
$sql "SELECT *
  FROM loginuno left_tbl LEFT JOIN logindos right_tbl ON left_tbl.id = right_tbl.id
  WHERE right_tbl.id ="
.(int)$id;

$result $mysqli->query($sql);

if (!
$result) {
    echo 
$mysqli->error;
} else {
    
$algo $result->fetch_assoc();
   
// print_r($algo); /** IMPRIME ARRAY COMPLETO */
    
echo $algo['correo']; /** IMPRIME EL CORREO [email protected] */

EN FIN, PUEDE QUE LE SEA DE AYUDA
LECTURA RECOMENDADA

https://dev.mysql.com/doc/refman/8.0...variables.html

y como siempre RTFM

https://es.wikipedia.org/wiki/RTFM

saludos


Hola amigo, muchas gracias por la orientación, pero
no entendí mucho el tema.. pero probé tu ejemplo y me sale el mismo error.
no sabia que se podía hacer un LEFT JOIN o INNER JOIN etc.. de igual no funciona.

la solución seria que crear dos login1.php login2.php al saber que no existe método alguno supongo





Código PHP:
Ver original
  1. $id = '1';  //  ESTO NO ENTIENDO PORQUE ESTA ALLI
  2.  
  3. /** relizamos una consulta razonable */
  4. $sql = "SELECT *
  5.  FROM loginuno left_tbl
  6.  LEFT JOIN logindos right_tbl ON left_tbl.correo = right_tbl.correo
  7.  WHERE right_tbl.correo =".$correo;

Error
Notice: Trying to get property 'num_rows' of non-object