Variable con hipervínculo de una pagima a otra

Tengo un código php incrustado en una página en esa muestra todos los registros de una tabla de veinte en veinte registros, con uno de ellos ("oferta" para ser especifico) le hago un hipervínculo para que aparte de mostrarse me direccione a otra pagima web. Donde debo rescatar el registro con $_request dentro de la clausula where para mostrar ese registro en especifico con más detalle, a contiuacion les muestro el código:
De la primera página, donde muestro todos los registros
...
<div id="ofertl">
<?php
$link=mysql_connect("localhost","xxxxxx","yyyyyy");
$db_selected = mysql_select_db("zzzzzz", $link);
$consulta="SELECT codigo, nombre, oferta, lugar  FROM empresas ORDER BY codigo DESC LIMIT $inicio,20";
$query=mysql_query($consulta, $link);
$impresos=0;
while ($reg=mysql_fetch_array($query))
{
  $impresos++;
  echo "Codigo:".$reg['codigo']."<br>";
  echo "Nombre:".$reg['nombre']."<br>";
  $ofertaelegida=$reg['oferta'];
  echo "<a href='inscribiroferta.php?tabla=".$ofertaelegida." '>Oferta:".$ref['oferta']."</a><br/>";
  echo "Lugar:".$reg['lugar']."<br>";
  echo "
<hr>
";
}
mysql_close($link);
?>
</div>
.........
y este el codigo de la pagina que recibe el hipervinculo
.....
<div id="ofertg">
<?php
$link=mysql_connect("localhost","xxxxxx","yyyyyy");
$db_selected = mysql_select_db("zzzzzz", $link);
$consulta="SELECT codigo, nombre, oferta, lugar  FROM empresas where oferta=$_request[tabla]";
$query=mysql_query($consulta, $link);
$reg=mysql_fetch_array($query);
echo "Codigo:".$reg['codigo']."<br>";
echo "Nombre:".$reg['nombre']."<br>";
echo "Oferta".$reg['oferta']."<br>";                                            
echo "lugar:".$reg['lugar']."<br>";
echo "
<tr>
";
mysql_close($link);
?>
</div>
...
Y me da este tipo de error
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/afines/domains/a-fin.es/public_html/trabajo/inscribiroferta.php on line 96
Código:
Nombre:
Oferta
Lugar:
donde la linea 96 corresponde al $reg=mysql_fetch_array($query);
no se si sirva pero en la ventana de direcciones del navegador me sale..
http://www.trabajo.a-fin.es/inscribiroferta.php?tabla=asdgasdgasdg
y no se si corresponde ... ¿algun experto que me de una idea de como resolver esto?
{"Lat":43.3571382221105,"Lng":-1.8292236328125}

1 respuesta

Respuesta
1
Esta línea es incorrecta:
$consulta="SELECT codigo, nombre, oferta, lugar  FROM empresas where oferta=$_request[tabla]";
debería ser:
$consulta="SELECT codigo, nombre, oferta, lugar  FROM empresas where oferta=".$_request[tabla];
Saludos campeón, gracias por el intento, me diste una luz... pero no es la correcta experto..! Me sigue dando el mismo error en la misma linea, es decir no me reconoce el argumento... ¿conoces una manera alterntiva de hacerlo?
Hola experto hice unos cambios en el codigo de la primera pagina, dentro del
while donde muestro los campos, el hipervinculo donde cargo
la variable tabla esta vez lo muestro despues mostrar el registro y a la
variable tabla le asigno el valor del campo 'nombre' esta vez (hice esto para
que se vea menos complicado) te muestro el cambio:
  echo "Codigo:".$reg[codigo]."<br>";
  echo "Nombre:".$reg['nombre']."<br>";
  echo "Oferta:".$ref['oferta']."<br>";
  echo "Lugar:".$reg['lugar']."<br>";
  $nom=$reg['nombre'];
  echo '<a href="inscribiroferta.php?tabla='.$nom.'">Ver oferta</a><br/>';
  echo "
<hr>
";
luego en la pagina destino he variado la linea del select asi:
$consulta="SELECT codigo, nombre, oferta, lugar  FROM empresas where nombre='".$_request[tabla]."'";
El campo nombre es del tipo varchar por si acaso y de esta forma no me da errores pero no me muestra los registros
la página simplemente muestra:
Código:
Nombre:
Oferta:
Lugar:
Y si hago lo mismo con el campo código (campo de tipo INT) en vez de nombre, me muestra siempre el
registro con codigo=96...!
Debo estar más cerca de la solución..
Intenta hacer un echo de la consulta, y probarlo en mysql directamente (ya que mysql te dirá exactamente donde esta el error)
No se si t comprendo bien..
$db_selected = mysql_select_db("afines_w", $link);
$consulta="SELECT codigo, nombre, oferta, lugar  FROM empresas where nombre='".$_request[tabla]."'";
echo $consulta;                                                      
$query=mysql_query($consulta, $link);
$reg=mysql_fetch_array($query);
echo "Codigo:".$reg['codigo']."<br>";
echo "Nombre:".$reg['nombre']."<br>";
echo "Oferta:".$reg['oferta']."<br>";
echo "Lugar:".$reg['lugar']."<br>";
echo "
<tr>
";
mysql_close($link);
aumente la linea en negritas y lo k m sale en la pagina es :
SELECT codigo, nombre, oferta, lugar FROM empresas where nombre=''Codigo:
Nombre:
Oferta:
Lugar:
...
¿Era eso lo que m pedías?
Ok, por lo menos ahora sabemos que el $_request[tabla] está vacío. Y también me acabo de dar cuenta que le faltan un par de comillas, debería ser $_request['tabla'] y aunque lo he visto andar en minúsculas, te recomendaría usar $_REQUEST.
Saludos Marcelo, Siiiiiii esa era la respuesta, m percate de las comillas de $_REQUEST['tabla'] y probé con eso pero no funcionaba, obviamente era que el $_REQUEST debía ser en mayúsculas, buena lección..! Gracias Maestro..
Andres

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas