Foros del Web » Programando para Internet » PHP »

Codigo erroneo

Estas en el tema de Codigo erroneo en el foro de PHP en Foros del Web. haber me voy a clarificar tu tabla debe ser algo asi tabla aviso id_aviso id_emisor id_receptor mensaje estado_emisor estado_receptor fecha <?php mysql_select_db('foros'); session_start(); $favorito = ...
  #1 (permalink)  
Antiguo 13/02/2012, 07:01
 
Fecha de Ingreso: agosto-2011
Mensajes: 165
Antigüedad: 12 años, 8 meses
Puntos: 1
Codigo erroneo

haber me voy a clarificar

tu tabla debe ser algo asi
tabla aviso
id_aviso
id_emisor
id_receptor
mensaje
estado_emisor
estado_receptor
fecha

<?php
mysql_select_db('foros');
session_start();
$favorito = isset($_GET['favorito']) ? $_GET['favorito'] : 0;
$sql = "SELECT * FROM avisos A, id_aviso E_A WHERE E_A.id_aviso=A.id_aviso AND E_A.id_usuario = $id_aviso AND A.nombre='" .
$res = mysql_query($sql) or die(mysql_error());
if(mysql_num_rows($res) < 1)
{
echo "no hay datos";
}
else
{
while($row=mysql_fetch_array($res))
{
echo $row[0];
}
}
?>


tabla favorito
id_aviso
id_usuario(puede seer el emisor o receptor)

Esto es lo que quiero hacer juntar las 2 tablas

select f.* ,a.id_aviso from aviso a , favorito f
where a.id_aviso=f.id_aviso and id_usuario=nombre

Tengo error en la pagina creo que pongo mal los datos asi

$favorito = isset($_GET['favorito']) ? $_GET['favorito'] : 0;
$sql = "SELECT * FROM avisos A, id_aviso E_A WHERE E_A.id_aviso=A.id_aviso AND E_A.id_usuario = $id_aviso AND A.nombre='" .

aqui da el error creo tener algun dato mal colocado
  #2 (permalink)  
Antiguo 13/02/2012, 07:46
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Codigo erroneo

1. Dada la select:

Código SQL:
Ver original
  1. "SELECT * FROM avisos A, id_aviso E_A WHERE E_A.id_aviso=A.id_aviso AND E_A.id_usuario = $id_aviso AND A.nombre='" .
se entiende que hay una tabla que se llama id_aviso y cuyo alias es E_A pero no posteas la estructura más arriba.

2. Es posible que ese punto final te de problemas, por lo tanto yo pondría:
Código SQL:
Ver original
  1. $sql = "SELECT * FROM avisos A, id_aviso E_A WHERE E_A.id_aviso=A.id_aviso AND E_A.id_usuario = $id_aviso AND A.nombre='";
Supongo que querias concatenar algo, entonces sería:

Código PHP:
Ver original
  1. $sql = "SELECT * FROM avisos A, id_aviso E_A WHERE E_A.id_aviso=A.id_aviso AND E_A.id_usuario = $id_aviso AND A.nombre='$variable';";

3. Con este código:
Código PHP:
Ver original
  1. if(mysql_num_rows($res) < 1)
si hay un sólo aviso no lo mostrarás, supongo que es
Código PHP:
Ver original
  1. if(!mysql_num_rows($res))
.

4. En esta select:

Código SQL:
Ver original
  1. SELECT f.* ,a.id_aviso FROM aviso a , favorito f
  2.  WHERE a.id_aviso=f.id_aviso AND id_usuario=nombre
falta la referencia al nombre de la tabla a la cual pertenece id_usuario, debería ser:


Código SQL:
Ver original
  1. SELECT f.* ,a.id_aviso FROM aviso a , favorito f
  2.  WHERE a.id_aviso=f.id_aviso AND a.id_usuario=nombre
o f. según corresponda.

Espero que sirva, saludos
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 13/02/2012, 11:00
 
Fecha de Ingreso: agosto-2011
Mensajes: 165
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: Codigo erroneo

se entiende que hay una tabla que se llama id_aviso y cuyo alias es E_A pero no posteas la estructura más arriba.


tabla aviso
id_aviso
id_emisor
id_receptor
mensaje
estado_emisor
estado_receptor
fecha

tabla favorito
id_aviso
id_usuario(puede seer el emisor o receptor)

Lo que estoy intentando hacer es un sistema de mensajes de enviados,recibidos,favortos,eliminados

<?php
mysql_select_db('foros');
session_start();
$favorito = isset($_GET['favorito']) ? $_GET['favorito'] : 0;
$sql = "SELECT * FROM avisos A, id_aviso E_A WHERE E_A.id_aviso=A.id_aviso AND E_A.id_usuario = $id_aviso AND A.nombre='$favorito';";
$res = mysql_query($sql) or die(mysql_error());
if(mysql_num_rows($res))
{
echo "no hay datos";
}
else
{
while($row=mysql_fetch_array($res))
{
echo $row[0];
}
}
?>

error:

Notice: Undefined variable: id_aviso in C:\xampp\htdocs\Forofernando\acceso.php on line 6
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 'AND A.nombre='0'' at line 1

Última edición por yolanda16568; 13/02/2012 a las 11:10
  #4 (permalink)  
Antiguo 13/02/2012, 12:35
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Codigo erroneo

Sigo sin ver la tabla que se llama id_aviso, tal vez te refieras a un campo de alguna tabla, tipo:

Código MySQL:
Ver original
  1. SELECT A.*, E_A.id_aviso FROM avisos A, favoritos E_A WHERE E_A.id_aviso=A.id_aviso AND E_A.id_usuario = $id_aviso AND A.nombre='$favorito';
Respecto del error de sintaxis, comprueba que valor hay en $favorito, tal y como está definida, por $_GET puede venir cualquier cosa.
Haz un echo de la select y pruébala en un cliente mysql.
__________________
Fere libenter homines, id quod volunt, credunt.
  #5 (permalink)  
Antiguo 13/02/2012, 13:00
 
Fecha de Ingreso: agosto-2011
Mensajes: 165
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: Codigo erroneo

La tabla se llama favorito no id_aviso es el campo de la tabla favorito

El problema puede ser ese???
como deveria de quedar???

Mira estos dos codigos el de abajo funciona pero el de arriba no solo cambiar el nombre de tablas

ASI NO ME FUNCIONA
tabla aviso
id_aviso
id_emisor
id_receptor
mensaje
estado_emisor
estado_receptor-este es el campo que comunica con la otra tabla
fecha

tabla favorito
id_aviso
id_usuario(puede seer el emisor o receptor)



<?php
mysql_select_db('foros');
session_start();
$favorito = isset($_GET['favorito']) ? $_GET['favorito'] : 0;
$sql = "SELECT * FROM avisos A, id_aviso E_A WHERE E_A.id_aviso=A.id_aviso AND E_A.id_usuario = $id_aviso AND A.nombre='" .
$res = mysql_query($sql) or die(mysql_error());
if(mysql_num_rows($res) < 1)
{
echo "no hay datos";
}
else
{
while($row=mysql_fetch_array($res))
{
echo $row[0];
}
}
?>


ASI ME FUNCIONA

tabla avisos:
aviso_id
texto
nombre_user
nombre
id_estado - este es el campo que comunica con la otra tabla
eliminado

tabla estado_avisos:

id_estado
estado_name


<?php
mysql_select_db('usuarios');
session_start();
$estado = isset($_GET['estado']) ? $_GET['estado'] : 1;
$sql = "SELECT * FROM avisos A, estado_aviso E_A WHERE E_A.id_estado=A.id_estado AND E_A.id_estado = $estado AND A.nombre='" .
$_SESSION['MM_Username'] . "'";
$res = mysql_query($sql) or die(mysql_error());
if(mysql_num_rows($res) < 1)
{
echo "no hay datos";
}
else
{
while($row=mysql_fetch_array($res))
{
echo $row[0];
}
}
?>

Última edición por yolanda16568; 13/02/2012 a las 13:06
  #6 (permalink)  
Antiguo 13/02/2012, 13:10
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Codigo erroneo

Cita:
Notice: Undefined variable: id_aviso in C:\xampp\htdocs\Forofernando\acceso.php on line 6....
o.O el error es perfectamente claro, la variable $id_aviso no esta definida...

Código PHP:
Ver original
  1. $sql = "SELECT * FROM avisos A, id_aviso E_A WHERE E_A.id_aviso=A.id_aviso AND E_A.id_usuario = $id_aviso AND A.nombre='" .
  2. $res = mysql_query($sql) or die(mysql_error());

Para ser mas exactos es en esta parte de su sentencia SQL E_A.id_usuario = $id_aviso
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #7 (permalink)  
Antiguo 13/02/2012, 13:27
 
Fecha de Ingreso: agosto-2011
Mensajes: 165
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: Codigo erroneo

Gracias pero no doy.

Puedes decirme como quedaria,

Lo que para ti esta claro para mi es un mundo.
  #8 (permalink)  
Antiguo 13/02/2012, 15:19
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Codigo erroneo

Cita:
Iniciado por yolanda16568 Ver Mensaje
Gracias pero no doy.

Puedes decirme como quedaria,

Lo que para ti esta claro para mi es un mundo.
o.O, el error dice que la variable no esta definida, ósea en ningún lado inicias la variable y le das un valor, basicamente, sacas la variable de la nada, revisa el código que has publicado aquí mismo y veras que la unica referencia de la variable $id_aviso esta en la sentencia SQL cuando deberías antes declararla y darle un valor

Código PHP:
Ver original
  1. //declara la variable!!!
  2. $id_aviso = $_GET['id_aviso'];   //asignar una variable GET
  3. $id_aviso = 1;                           //asignar una variable int
  4. $id_aviso = 'algún valor!';          //asignar un string
  5.  
  6. $sql = "SELECT * FROM avisos A, id_aviso E_A WHERE E_A.id_aviso=A.id_aviso AND E_A.id_usuario = $id_aviso AND A.nombre='" .
  7. $res = mysql_query($sql) or die(mysql_error());
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #9 (permalink)  
Antiguo 14/02/2012, 02:24
 
Fecha de Ingreso: agosto-2011
Mensajes: 165
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: Codigo erroneo

Hola me estoy volviendo loca.

Mira lo que dices puede que este echo dentro de esta tabla favorito
esta insectado estos valores

1=enviados
2=recibidos
3=favoritos
4=eliminados

Te refieres a esto???????????

Etiquetas: erroneo, mysql, sql, tabla, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:10.