<?php
$id=$_GET['id_inv'];
$consulta2=mysql_query("SELECT * FROM investigador where id_inv='$id' '');
while($row=mysql_fetch_object($consulta2)){
echo''.$row['nombre'].'  '.$row['ape_pat'].'  '.$row['ape_mat'].' <br/>';
}
?>
el error que me marca es el siguiente: la linea 112 tiene este codigo:
$id=$_GET['id_inv'];
Notice: Undefined index: id_inv in C:\wamp\www\proyecto_redhistal\investigadores.php on line 112
Es porque aun no se ha enviado un parametro, si mal no recuerdo debes de ponerlo así,
<?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'].'  '.$row['ape_pat'].'  '.$row['ape_mat'].' <br/>';
}
?>
Siempre debes comprobar si realmente tiene valor la variable que intentas obtener.
$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
Probaste el código que te dejo @#!drvy?
Si lo probe, no me muestra ningun error , pero tampoco me muestra la informacion de un solo investigador. :(
Formulario 1
<?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 ($row= mysql_fetch_array($consulta)){
echo'<a href="investigadores.php?a=<?php echo'.$row['id_inv'].'?>">'.$row['nombre'].'  '.$row['ape_pat'].'  '.$row['ape_mat'].' <br/> </a>';
}echo'</div>';
?>
Formulario 2
<?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'].'  '.$row['ape_pat'].'  '.$row['ape_mat'].' <br/>';
echo''.$row['inst'].'';
echo''.$row['pag_per'].'';
echo''.$row['direccion'].'';
}
?>
Mod: No hacer doble post.
$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'].'  '.$row['ape_pat'].'  '.$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!
Esto me muestra en el formulario 2, ayuda porfis. :-(
SQL: Resource id #6
Coño tienes razon, es una mysql_query jajaja necesitaba sólo la string, entonces haz lo siguiente:
Modifica esto
echo "<div style='border:1px solid #000;'>SQL: ".$consulta2."</div>";
por
echo "<div style='border:1px solid #000;'>SQL: SELECT * FROM investigador WHERE id_inv='$id';</div>";
Ya lo hice y me muestra lo siguiente en el formulario 2.
SQL: SELECT * FROM investigador WHERE id_inv='0'
echo'<a href="investigadores.php?[b]a[/b]=<?php echo'.$row['id_inv'].'?>">'.$row['nombre'].'  '.$row['ape_pat'].'  '.$row['ape_mat'].' <br/> </a>';
}echo'</div>';
¿ no deberia ser ?
echo'<a href="investigadores.php?[b]id_inv[/b]=<?php echo'.$row['id_inv'].'?>">'.$row['nombre'].'  '.$row['ape_pat'].'  '.$row['ape_mat'].' <br/> </a>';
}echo'</div>';
Me sigue mostrando lo mismo. :-[
SQL: SELECT * FROM investigador WHERE id_inv='0'
Haber:
En tu pagina 1:
while ($row = mysql_fetch_array($consulta))
{
print_r($row);
echo "<br><br>";
}
Y nos dices que te muestra.
No debe de mostrar nada ya que el id es 0, o por lo menos eso es lo que se muestra en la query
No se por qué me da que no está pasando el parametro en la url.
URL/investigadores.php?id_inv=ID
Podrias tambien mandar el valor para probar:
echo'<a href="investigadores.php?id_inv=1">'.$row['nombre'].'  '.$row['ape_pat'].'  '.$row['ape_mat'].' <br/> </a>';
Si la pagina 2 recibe el valor 1, significa que tu error esta en la consulta de la pagina 1
Eso me muestra en el formulario 1 y en el formulario dos sigue apareciendo lo mismo(SQL: SELECT * FROM investigador WHERE id_inv='0')
Array ( [0] => 2 [id_inv] => 2 [1] => Luis [nombre] => Luis [2] => villasenor [ape_pat] => villasenor [3] => Pineda [ape_mat] => Pineda [4] => INAOE [inst] => INAOE [5] => http://ccc.inaoep.mx/~villasen [pag_per] => http://ccc.inaoep.mx/~villasen [6] => [ruta_img] => [7] => 2 [id_usuario] => 2 [8] => zapote [direccion] => zapote )
Array ( [0] => 3 [id_inv] => 3 [1] => Juana [nombre] => Juana [2] => Contreras [ape_pat] => Contreras [3] => Pelaez [ape_mat] => Pelaez [4] => ITP [inst] => ITP [5] => www.facebook.com [pag_per] => www.facebook.com [6] => [ruta_img] => [7] => 1 [id_usuario] => 1 [8] => 13 oriente zapote blanco [direccion] => 13 oriente zapote blanco )
Array ( [0] => 4 [id_inv] => 4 [1] => Carla [nombre] => Carla [2] => Rojas [ape_pat] => Rojas [3] => Pealez [ape_mat] => Pealez [4] => BUAP [inst] => BUAP [5] => www.facebook.com [pag_per] => www.facebook.com [6] => [ruta_img] => [7] => 1 [id_usuario] => 1 [8] => erdvthb [direccion] => erdvthb )
Array ( [0] => 5 [id_inv] => 5 [1] => Pablo [nombre] => Pablo [2] => Cruz [ape_pat] => Cruz [3] => Olivera [ape_mat] => Olivera [4] => UNCO [inst] => UNCO [5] => www.facebook.com [pag_per] => www.facebook.com [6] => [ruta_img] => [7] => 1 [id_usuario] => 1 [8] => xx [direccion] => xx )
Array ( [0] => 7 [id_inv] => 7 [1] => Juana [nombre] => Juana [2] => Peralta [ape_pat] => Peralta [3] => Luna [ape_mat] => Luna [4] => ITP [inst] => ITP [5] => www.facebook.com [pag_per] => www.facebook.com [6] => [ruta_img] => [7] => 2 [id_usuario] => 2 [8] => colonia centro, zapote blanco [direccion] => colonia centro, zapote blanco )
T. Collins
eso mismo pienso yo, que no esta pasando de la url.
Esta así:
<?php
echo'<a href="investigadores.php?id_inv=<?php echo'.$row['id_inv'].'?>">'.$row['nombre'].'  '.$row['ape_pat'].'  '.$row['ape_mat'].' <br/> </a>';
?>
¿No debería ser así?
<?php
echo "<a href='investigadores.php?id_inv=".$row['id_inv']."'>" . $row['nombre'] . "</a>";
?>
Están de mas los echo puesto que ya estas imprimiendo con el primer "echo".
Nos cuentas como te fue.
Ahora sí no?
Muchas gracias. :D
Ya salio, lo que estaba mal era la url...<?php
echo'<a href="investigadores.php?id_inv=<?php echo'.$row['id_inv'].'?>">'.$row['nombre'].'  '.$row['ape_pat'].'  '.$row['ape_mat'].' <br/> </a>';
?>
pero ya agregando el siguiente codigo , ya funciono.
<?php
echo "<a href='investigadores.php?id_inv=".$row['id_inv']."'>" . $row['nombre'] . "</a>";
?>