Comunidad de diseño web y desarrollo en internet online

(novato) extraer dato de mysql para convertirlo en enlace web

Citar            
MensajeEscrito el 09 Feb 2015 11:48 am
Muy buenas,
Mi pregunta es lo siguiente:
Tengo una tabla llamada "tabla" con 3 campos: campo1, campo2 y campo3.

Le hago una consulta que sería la siguiente:
$campo3 = mysqli_query($con, "SELECT campo3 FROM tabla WHERE campo1");
if (mysqli_num_rows($campo3)>0)
{
"Aqui ya me lio y por mas que he probado he sido incapaz de sacar el valor de la variable."
}

en teoría así no me debería de crear la variable $campo3 que me marque el campo3? Porque luego le hago un var_dump y solo me tira el siguiente error: object(mysqli_result)#3 (0) { } NULL
Lo intenté haciendo en array, pero no me sirve porque luego quiero usar ese campo3 para lanzar el vinculo a otra pagina, que sería este codigo:

echo '<script>location.href = "carpeta/'.$campo3.'.php";</script>';

Espero haberme explicado un poco, gracias por leerme.

Por taratata

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 09 Feb 2015 12:12 pm
$campo3 es un puntero a los resultados que devolvió la consulta SQL.

Para obtener los registros de ese resultado debes usar una de las funciones mysqli_fetch_assoc() o mysqli_fetch_array() pasándole como parámetro ese puntero.

Esas funciones devuelve un array con los valores de los campos del registro y debes seguir llamado a esa función repetidamente hasta que devuelva null porque esas funciones devuelve un registro y avanzan el puntero de lectura una posición.

Pero antes de eso debes solucionar el problema que tienes con la consulta SQL. La sintaxis de la misma es errónea y MySQL te está devolviendo un error.

Creo que has querido poner lo siguiente:

Código PHP :

$campo3 = mysqli_query($con, "SELECT campo3 FROM tabla WHERE `campo1` = ".$campo1);

Si es eso, entonces este sería el ejemplo completo:

Código PHP :

$res = mysqli_query($con, "SELECT `campo3` FROM tabla WHERE `campo1` = ".$campo1);
if (mysqli_num_rows($res) > 0) { // La consulta devuelve más de un registro?
   while ($fila = mysqli_fetch_assoc($res) { // Mientras haya registros en el resultado...
      echo '<pre>';
       print_r($fila);
      echo '</pre>';
   }
}

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 09 Feb 2015 12:57 pm
Si, estas es una manera parecida que intenté la otra vez. El problema es que al trasladar $fila o $res a
"echo '<script>location.href = "carpeta/'.$fila.'.php";</script>';"
no tira, porque es un array.
Me salta esto:
Array( [campo3] => valor_campo3)NULL
y no me carga el location.href

Ante todo muchas gracias por la ayuda

Por taratata

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 09 Feb 2015 05:47 pm
Saludos a todos
como bien te lo dijo DriverOp, tienes que hacer referencia al campo que recuperas.
tu enlace tendría que quedar algo asi:

Código PHP :

$res = mysqli_query($con, "SELECT `campo3` FROM tabla WHERE `campo1` = ".$campo1);
if (mysqli_num_rows($res) > 0) { // La consulta devuelve más de un registro?
   while ($fila = mysqli_fetch_assoc($res) { // Mientras haya registros en el resultado...
      echo '<pre>';
       print_r($fila['campo3']);
      echo '</pre>';
   }
}

lo único que coloque fue asignarle el campo a la variable $fila['campo3'], con eso hacer referencia al campo que quieres recuperar

Por mario22121985

88 de clabLevel



 

chrome
Citar            
MensajeEscrito el 09 Feb 2015 09:40 pm
Entendido, no había caído xDD (perdón)
Pues muchas gracias por la ayuda,
Un saludo :D

Por taratata

1 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.