Foros del Web » Programando para Internet » PHP »

Fallo al escribir un campo.

Estas en el tema de Fallo al escribir un campo. en el foro de PHP en Foros del Web. ¿Esto esta mal escrito? echo $row["numpza"]; Es que me da erro Undefined index y lo tengo definidido en el select ... ¿por que me hace ...
  #1 (permalink)  
Antiguo 20/04/2004, 06:31
 
Fecha de Ingreso: marzo-2003
Mensajes: 90
Antigüedad: 14 años, 8 meses
Puntos: 0
Fallo al escribir un campo.

¿Esto esta mal escrito?

echo $row["numpza"];

Es que me da erro Undefined index y lo tengo definidido en el select ... ¿por que me hace eso?

Lo puse aqui y no en base de datos por que es problema del php no de la sentencia.

Ah la sentencia es :

select apellidos, numpza, refcomp from asegurados

Un saludo
  #2 (permalink)  
Antiguo 20/04/2004, 06:40
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

¿Y el resto del codigo? Porque puede ser algo en la lectura del registro, o alguna manipulacion del array.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 20/04/2004, 08:18
 
Fecha de Ingreso: marzo-2003
Mensajes: 90
Antigüedad: 14 años, 8 meses
Puntos: 0
Ok te pongo todo el codigo a ver si veis la razon :

Código PHP:
$seguirsql = 'si'; // esto es para validar que poner en el sql si where o and.
$sql = 'select apellidos, numpza, refcomp from asegurados inner join expedientes on expedientes.codaseg=asegurados.codaseg ';


if ($_POST['apellido'] <> "") { //AQUI BUSCA POR APELLIDOS.
    $sql = $sql . 'where';
    $sql = $sql . ' apellidos like "' .$_POST['apellido']. '"' ;
$seguirsql = 'no';
}

if ($_POST['numero'] <> "") { //AQUI BUSCA POR NUMERO DE POLIZA.
    if ($seguirsql <> 'no') {
    $sql = $sql . 'where';
    } else {
    $sql = $sql . ' and ';
    }
    $sql = $sql . ' numpza like "' .$_POST['numero']. '"' ;
}


if ($_POST['referencia3'] <> "") { //AQUI BUSCA POR REFERENCIA COMPAÑIA.
    if ($seguirsql <> 'no') {
    $sql = $sql . 'where';
    } else {
    $sql = $sql . ' and ';
    }
    $sql = $sql . ' refcomp like "' .$_POST['referencia3']. '"' ;
}



// YA TENGO EL SQL
$result = mysql_query($sql, $conectar); 


if (mysql_numrows($result) == 0 ) {
echo "No hay Expedientes a mostrar.";
exit;
}


while ($row = mysql_fetch_row($result)){ 
?>
  <tr> 
    <td><?echo $row[0];?></td>
    <td><div align="center"><?echo $row["numpza"];?></td>
    <td><div align="center"></div></td>
    <td><div align="center"></div></td>
    <td><div align="center"><?echo $row[2];?></div></td>
    <td><div align="center"><a href="../expediente.php">Ver</a></div></td>
  </tr>
  <?};?>
</table>
  #4 (permalink)  
Antiguo 20/04/2004, 08:22
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Mira en el manual las diferecias entre mysql_fetch_row() (www.php.net/mysql_fetch_row) y mysql_fetch_assoc() (www.php.net/mysql_fetch_assoc). Y tambien tienes mysql_fetch_array() (www.php.net/mysql_fetch_array).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 20/04/2004, 08:37
 
Fecha de Ingreso: marzo-2003
Mensajes: 90
Antigüedad: 14 años, 8 meses
Puntos: 0
Vaaaaaaale, gracias no me conocia esto, soy bastante novato en PHP todavia.

¿Cual es el mas rapido de los 3? o cual es el mas recomendable ???

Segun lei es el row por ir mas directo ¿es correcto?.

Gracias XD
  #6 (permalink)  
Antiguo 20/04/2004, 08:44
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Yo recomiendo assoc o array. Queda mejor documentado el codigo con:
Código PHP:
echo $row['titulo']; 
que con
Código PHP:
echo $row[0]; 
Ademas, con los indices de texto no tienes que preocuparte por el orden en que especificas los campos en el select.

Sobre la velocidad y rendimiento, es practicamente despreciable la diferencia.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #7 (permalink)  
Antiguo 20/04/2004, 09:27
 
Fecha de Ingreso: marzo-2003
Mensajes: 90
Antigüedad: 14 años, 8 meses
Puntos: 0
Ok gracias, pues problema solucionado totalmente.

Graaaaaaaaaaacias.
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 04:16.