Notice: Undefined index: id_inv in

Iniciado por Layla123, 13 Noviembre 2014, 07:31 AM

0 Miembros y 1 Visitante están viendo este tema.

Layla123

Código (php) [Seleccionar]
<?php

$id
=$_GET['id_inv'];

$consulta2=mysql_query("SELECT * FROM investigador where  id_inv='$id' '');
while(
$row=mysql_fetch_object($consulta2)){
echo''.
$row['nombre'].'&nbsp&nbsp'.$row['ape_pat'].'&nbsp&nbsp'.$row['ape_mat'].' <br/>';
}
?>


el error que me marca es el siguiente: la linea 112 tiene este codigo:

$id=$_GET['id_inv'];

Código (php) [Seleccionar]
 
Notice: Undefined index: id_inv in C:\wamp\www\proyecto_redhistal\investigadores.php on line 112    

Shell Root

Es porque aun no se ha enviado un parametro, si mal no recuerdo debes de ponerlo así,
Código (php,2,3,4,5,6) [Seleccionar]
<?php
   
if(isset($_GET)){
      
$id $_GET['id_inv'];
   }else{
      
$id 0;
   }
     
    
$consulta2 mysql_query("SELECT * FROM investigador WHERE id_inv = '$id'");

    while(
$row mysql_fetch_object($consulta2)){
       echo 
$row['nombre'].'&nbsp&nbsp'.$row['ape_pat'].'&nbsp&nbsp'.$row['ape_mat'].' <br/>';
    }
?>
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

#!drvy

#2
Siempre debes comprobar si realmente tiene valor la variable que intentas obtener.

Código (php) [Seleccionar]
$id = ((isset($_GET['id_inv']) && strlen($_GET['id_inv'])>0) ? $_GET['id_inv'] : 0);

Resumen:

Si $_GET['id_inv'] esta declarado y contiene uno o más caracteres, $id obtiene el valor de $_GET['id_inv']. En caso contrario, $id es 0.


PD: La razón de usar strlen ademas de isset es que este ultimo solo comprueba si esta declarada y no le importa el valor que tenga (aunque sea nulo).

Saludos

Shell Root

Probaste el código que te dejo @#!drvy?
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Layla123

#4
Si lo probe, no me muestra ningun error , pero tampoco me muestra la informacion de un solo investigador. :(





Formulario 1

Código (php) [Seleccionar]
<?php
        
//codigo para mandar a traer todos los nombres de los investigadores que estan almacenados en la base de datos.

$consulta mysql_query("SELECT *FROM investigador");

echo 
'<div style="border:2px solid  Black;
            background : white;
            color : skyblue;
            padding : 4px;
            width : 300px;
            height : 100px;
            overflow : auto; ">'
;
while (
$rowmysql_fetch_array($consulta)){

echo'<a href="investigadores.php?a=<?php echo'.$row['id_inv'].'?>
">'.$row['nombre'].'&nbsp&nbsp'.$row['ape_pat'].'&nbsp&nbsp'.$row['ape_mat'].' <br/> </a>';
}echo'</div>';


?>



Formulario 2

Código (php) [Seleccionar]
<?php
// Formulario2 :codigo para mandar a traer todos datos de un solo investigador al momento que se le de click en el formulario 1(muestra todos los investigadores que estan almacenados en la base de datos).
//id_inv='".$_GET['id_inv']."'"

$id = ((isset($_GET['id_inv']) && strlen($_GET['id_inv'])>0) ? $_GET['id_inv'] : 0);


$consulta2=mysql_query("SELECT * FROM investigador where  id_inv='$id'");
while(
$row=mysql_fetch_array($consulta2)){
            echo
''.$row['ruta_img'].'';
echo''.$row['nombre'].'&nbsp&nbsp'.$row['ape_pat'].'&nbsp&nbsp'.$row['ape_mat'].' <br/>';
echo''.$row['inst'].'';
echo''.$row['pag_per'].'';
echo''.$row['direccion'].'';
}
?>


Mod: No hacer doble post.

Shell Root

#5
Código (php,4) [Seleccionar]
$id = ((isset($_GET['id_inv']) && strlen($_GET['id_inv'])>0) ? $_GET['id_inv'] : 0);
$consulta2 = mysql_query("SELECT * FROM investigador WHERE id_inv='$id'");

echo "<div style='border:1px solid #000;'>SQL: ".$consulta2."</div>";

while($row=mysql_fetch_array($consulta2))
{
  echo $row['ruta_img']."<br/>";
  echo $row['nombre'].'&nbsp&nbsp'.$row['ape_pat'].'&nbsp&nbsp'.$row['ape_mat']."<br/>";
  echo $row['inst']."<br/>";
  echo $row['pag_per']."<br/>";
  echo $row['direccion']."<br/>";
}


Con esto ejecutas normalmente, te mostrara la string del sql y lo verificas que no tenga basura y directamente desde el motor de bases de datos y ver que resultado te da!
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Layla123

#6
Esto me muestra en el formulario 2, ayuda porfis. :-(

Código (php) [Seleccionar]
SQL: Resource id #6

Shell Root

Coño tienes razon, es una mysql_query jajaja necesitaba sólo la string, entonces haz lo siguiente:
Modifica esto
Código (php) [Seleccionar]
echo "<div style='border:1px solid #000;'>SQL: ".$consulta2."</div>";
por
Código (php) [Seleccionar]
echo "<div style='border:1px solid #000;'>SQL: SELECT * FROM investigador WHERE id_inv='$id';</div>";
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Layla123

Ya lo hice y me muestra lo siguiente en el formulario 2.


Código (php) [Seleccionar]
SQL: SELECT * FROM investigador WHERE id_inv='0'

Hadess_inf

#9
Código (php) [Seleccionar]
echo'<a href="investigadores.php?[b]a[/b]=<?php echo'.$row['id_inv'].'?>">'.$row['nombre'].'&nbsp&nbsp'.$row['ape_pat'].'&nbsp&nbsp'.$row['ape_mat'].' <br/> </a>';
}echo'</div>';


¿ no deberia ser ?

Código (php) [Seleccionar]
echo'<a href="investigadores.php?[b]id_inv[/b]=<?php echo'.$row['id_inv'].'?>">'.$row['nombre'].'&nbsp&nbsp'.$row['ape_pat'].'&nbsp&nbsp'.$row['ape_mat'].' <br/> </a>';
}echo'</div>';