Foros del Web » Programando para Internet » PHP »

PHP Notice: Undefined index:

Estas en el tema de PHP Notice: Undefined index: en el foro de PHP en Foros del Web. Hola soy nuevo en desarrollar bajo php. Despues de varias horas investigando sobre este error no llego a ninguna conclusion. Os adjunto mi script a ...
  #1 (permalink)  
Antiguo 06/03/2011, 09:01
 
Fecha de Ingreso: octubre-2010
Mensajes: 13
Antigüedad: 13 años, 6 meses
Puntos: 0
PHP Notice: Undefined index:

Hola soy nuevo en desarrollar bajo php.

Despues de varias horas investigando sobre este error no llego a ninguna conclusion. Os adjunto mi script a ver sis vosotros sabeis a que se debe el error ya que por más que miro no encuentro el fallo. Me da error en las lineas 43,44,45 y 46 os las marco en negrita

<!--------CONSULTA POR ID, EMAIL DESTINO, EMAIL ORIGEN Y NOMBRE DEL FICHERO DEL MENSAJE------->
<HTML>
<HEAD>
<TITLE>CONSULTA POR ID, EMAIL DESTINO, EMAIL ORIGEN Y NOMBRE DEL FICHERO DEL MENSAJE</TITLE>
</HEAD>
<BODY>
<?php
$db_host = "localhost"; //Host al que conectar
$db_nombre = "hmailserver"; //Nombre de la base de datos a conectarse
$db_user = "usuario"; //Nombre del usuario con permisos
$db_pass = "password"; //Contraseña del usuario

//Ahora estoy realizando una conexion y la llamo "$link"
$link = mysql_connect($db_host,$db_user,$db_pass) or die ("Error conectando a la base de datos");

//Selecciono la base de datos que me interesa
mysql_select_db($db_nombre,$link) or die ("Error seleccionando la Base de Datos");

//Consulta hmailserver id origen destino mensaje
//include('conexion.inc.php'); //archivo de conexion
//$link = Conectarse(); //funcion que contiene los datos de conexion
//en una variable string escribo la consulta
$sql="select hm_accounts.accountid, hm_accounts.accountaddress, hm_messages.messagefilename, hm_messages.messagefrom from hm_accounts, hm_messages where hm_accounts.accountid = hm_messages.messageaccountid";
// order by hm_accounts.accountid";

//Con la funcion 'mysql_query()' realizo la consulta que quiero realizar a la base de datos seleccionada previamente
$result = mysql_query($sql) or die ("La siguiente consulta tiene algun error:<br><b>$sql</b></br>");

//Ahora tengo en $result todos los registros de la consulta, ahora voy a mostrar los resultados en forma de tabla
//para ello he de intercalar códgio html referente a tablas entre el código que muestra las variables antes que
//while he de escribir el siguiente codigo

//Comienzo la tabla antes que el while

echo "<table>";
//Escribo la cabecera de la tabla
echo "<tr><th>Numero de cuenta</th><th>E-Mail Destino</th><th>E-Mail Origen</th><th>Nombre del fichero del mensaje</th></tr>";


//Ahora escribo el while para que me muestre los registros uno a uno en la tabla
while($row=mysql_fetch_array($result))
{
echo "<tr><td>{$row['hm_accounts.accountid']}</td> \n";//Aqui Comienzo una fila
echo "<td>{$row['hm_accounts.accountaddress']}</td> \n";
echo "<td>{$row['hm_messages.messagefilename']}</td> \n";
echo "<td>{$row['hm_messages.messagefrom']}</td></tr> \n";//Aqui termino la fila

echo "</table>";//Fin de la tabla
}
?>
<BODY>
<HTML>

Gracias por adelantado por vuestra ayuda
  #2 (permalink)  
Antiguo 06/03/2011, 09:06
Usuario no validado
 
Fecha de Ingreso: diciembre-2010
Mensajes: 42
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: PHP Notice: Undefined index:

Lo conveniente es que revises que datos contiene la variable $row, para poder así utilizarlos, al parecer $row las s keys que necesitas
  #3 (permalink)  
Antiguo 06/03/2011, 09:06
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: PHP Notice: Undefined index:

¿y porque no muestras el mensaje completo de error?

aunque bueno, el error es muy sencillo... se refiere a que estas intentando acceder a índices que no existen en tal arreglo, por eso siempre hay que examinar el arreglo antes de usarlo...

usa var_dump() o print_r() para analizarlo...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 06/03/2011, 09:55
 
Fecha de Ingreso: octubre-2010
Mensajes: 13
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: PHP Notice: Undefined index:

Por variables de $row he de entender que son:

'hm_accounts.accountid'
'hm_accounts.accountaddress'
'hm_messages.messagefilename'
'hm_messages.messagefrom'

Disculpar pero mi desconocimiento es mayusculo, estoy a base de tutoriales y tengo un dolor de cabeza acojonante.

Si esas fueran las variables, ¿tendría que declararlas así?
$variable1 = 'hm_accounts.accountid';
$variable2 = 'hm_accounts.accountaddress';
$variable3 = 'hm_messages.messagefrom';
$variable4 = 'hm_messages.messagefilename';


y dejarlo así despues del while?:

echo "<tr><td>{$variable1 = $row['Numero de Cuenta'];}</td> \n"
echo "<td>{$variable2 = $row['E-Mail Destino']}</td> \n";
echo "<td>{$variable3 = $row['E-Mail Origen']}</td> \n";
echo "<td>{$variable4 = $row['Nombre del fichero del mensaje']}</td></tr> \n";
echo "</table>";//Fin de la tabla

La verdad es que me meto en camisas de once varas pero entiendo que es la unica manera de aprender.
  #5 (permalink)  
Antiguo 06/03/2011, 10:02
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: PHP Notice: Undefined index:

te esta indicando que tienes una variable que no esta definida como te dijo el amigo pateketrueke si colocas el mensaje completo pudieramos ver cual es, aunque viendolo desde el punto de vista ve a la linea que te esta indicando el error y verifica que esta variable no este vacia, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #6 (permalink)  
Antiguo 06/03/2011, 11:04
 
Fecha de Ingreso: octubre-2010
Mensajes: 13
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: PHP Notice: Undefined index:

El mensaje que sale es:

PHP Notice: Undefined index: hm_accounts.accountid in C:\\appsrv\\www\\valenzuelaycia.es\\webmail\\Consu ltaOrigenDestinoMensaje.php on line 44
PHP Notice: Undefined index: hm_accounts.accountaddress in C:\\appsrv\\www\\valenzuelaycia.es\\webmail\\Consu ltaOrigenDestinoMensaje.php on line 45
PHP Notice: Undefined index: hm_messages.messagefilename in C:\\appsrv\\www\\valenzuelaycia.es\\webmail\\Consu ltaOrigenDestinoMensaje.php on line 46
PHP Notice: Undefined index: hm_messages.messagefrom in C:\\appsrv\\www\\valenzuelaycia.es\\webmail\\Consu ltaOrigenDestinoMensaje.php on line 47
  #7 (permalink)  
Antiguo 06/03/2011, 11:06
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: PHP Notice: Undefined index:

Cita:
Iniciado por pateketrueke Ver Mensaje
[...] usa var_dump() o print_r() para analizarlo...
Código PHP:
print_r($row); 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 06/03/2011, 11:13
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: PHP Notice: Undefined index:

quitale el nombre de la tabla al indice de la variable $row del resultado y ve si te funciona, creo q una vez me paso algo parecido y era por eso
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #9 (permalink)  
Antiguo 06/03/2011, 11:28
 
Fecha de Ingreso: octubre-2010
Mensajes: 13
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: PHP Notice: Undefined index:

Muchas gracias a todos.

La solucion me la ha dado carlos_belisario. una vez que he quitado el nombre de la tabla lo ha dibujado todo a la perfección.

Hoy he aprendido un poco más. Gracias de nuevo

Etiquetas: index, undefined
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 08:35.