Foros del Web » Programando para Internet » PHP »

almacenar resultado de consulta en variable

Estas en el tema de almacenar resultado de consulta en variable en el foro de PHP en Foros del Web. miren mi problema es el siguiente quiero almacenar el resultado de una consulta en variables lo hago de la siguiente manera $seleccionar=mysql_query("SELECT * FROM tbl_documentos ...
  #1 (permalink)  
Antiguo 16/05/2012, 13:52
 
Fecha de Ingreso: mayo-2012
Mensajes: 30
Antigüedad: 12 años, 6 meses
Puntos: 0
Pregunta almacenar resultado de consulta en variable

miren mi problema es el siguiente quiero almacenar el resultado de una consulta en variables lo hago de la siguiente manera

$seleccionar=mysql_query("SELECT * FROM tbl_documentos WHERE id_documento='$id_documento'");

$fila=mysql_fetch_array($seleccionar);
$id_documento=$fila['id_documento'];
$titulo=$fila['titulo'];
$descripcion=$fila['descripcion'];
$contenido=$fila['contenido'];
$tamanio=$fila['tamanio'];
$nombre_archivo=$fila['nombre_archivo'];

DESPUES en otro formulario intento mandar llamar esas variables de la siguiente manera

$id_documento=$_POST['$id_documento'];
$titulo=$_POST['$titulo'];
$descipicion=$_POST['$descripcion'];
$contenido=$_POST['$contenido'];
$tamanio=$_POST['$tamanio[0]'];
$tipo=$_POST['$tipo'];
$nombre_archivo=$_POST['$nombre_archivo'];
$tamanio_unidad=$_POST['$tamanio[1]'];

Y en esta consulta es donde trato de hacer la actualizacion de los valores pero el problema es que imprime el mensaje de que los datos han sido actualizados pero al ir a la tabla los datos siguen igual.


$qry = "UPDATE tbl_documentos SET titulo='$titulo', descripcion='$descripcion', contenido='$contenido', tamanio='{$tamanio[0]}', tipo='$tipo',nombre_archivo='$nombre_archivo',tama nio_unidad='{$tamanio[1]}' where id_documento='$id_documento'";

Por favor necesito su ayuda que estoy haciendo mal estoy muy confundida no se si sea por el metodo post o get o si estoy haciendo mal las consultas.
  #2 (permalink)  
Antiguo 16/05/2012, 13:57
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 13 años
Puntos: 160
Respuesta: almacenar resultado de consulta en variable

pero estas haciendo el mysql_query($qry); ??? porque hasta donde posteaste solo generas el string de la consulta
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #3 (permalink)  
Antiguo 16/05/2012, 14:00
 
Fecha de Ingreso: mayo-2012
Mensajes: 30
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: almacenar resultado de consulta en variable

disculpa la pregunta pero no te entiendo lo que tengo es todo lo que estoy haciendo sabes que soy nueva en esto de php y mysql asi que me estoy basando en ejemplos, tal vez si me falta eso que mencionas podrias ayudarme te lo agradeceria mucho.
  #4 (permalink)  
Antiguo 16/05/2012, 14:06
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 13 años
Puntos: 160
Respuesta: almacenar resultado de consulta en variable

A lo que me referia es que te falta hacer exactamente lo mismo que haces cuando haces el select de los datos para guardarlos en variables; bueno eso mismo falta hacer para el update, es decir, vos para guardar los datos de la tabla en las variables haces esto:

Código PHP:
Ver original
  1. $seleccionar=mysql_query("SELECT * FROM tbl_documentos WHERE id_documento='$id_documento'");

cuando haces el mysql_query() es cuando envias la consulta a la base de datos para que te retorne algo, bueno eso mismo te falta hacer con la consulta del update, por eso mismo no te esta enviando la consulta del update a la base puesto que te falta escribir ese metodo, por lo que deberias agregar a tu codigo lo siguiente:

Código PHP:
Ver original
  1. // esta es tu consulta normal
  2. $qry = "UPDATE tbl_documentos SET titulo='$titulo', descripcion='$descripcion', contenido='$contenido', tamanio='{$tamanio[0]}', tipo='$tipo',nombre_archivo='$nombre_archivo',tama nio_unidad='{$tamanio[1]}' where id_documento='$id_documento'";
  3.  
  4. // tenes que agregar esto para hacer efectivo el update
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #5 (permalink)  
Antiguo 16/05/2012, 14:17
 
Fecha de Ingreso: mayo-2012
Mensajes: 30
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: almacenar resultado de consulta en variable

disculpa de nuevo lo que pasa es que ya agregue eso pero sigue igual me aparece el mensaje de actualizado pero los valores de la tabla siguen igual crees que se deba a algun error ortografico o por que ? la verdad lo e intentado de todas las formas posibles que se pero sigo sin saber cual es mi error
  #6 (permalink)  
Antiguo 16/05/2012, 14:19
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 13 años
Puntos: 160
Respuesta: almacenar resultado de consulta en variable

postea el codigo entero, asi vemos el condicional y demas.. .
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #7 (permalink)  
Antiguo 16/05/2012, 14:20
 
Fecha de Ingreso: mayo-2012
Mensajes: 30
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: almacenar resultado de consulta en variable

sera acaso que no esta jalando los valores de la variables ? lo que se me hace raro es que las mando llamar por el metodo get y en la barra del explorador puedo ver que se modificaron los datos pero no se por que no se actualizan en la tabla
  #8 (permalink)  
Antiguo 16/05/2012, 14:25
 
Fecha de Ingreso: mayo-2012
Mensajes: 30
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: almacenar resultado de consulta en variable

gracias mira este es el del primer formulario <?php
session_start();//**Se pone para saber que usuario esta en esta pagina, siempre va arriba de cualquier otro codigo
//**Se llama a la conexion de la base de datos**//
if(!$_SESSION["usuario"])//si el usuario no se ha ingresado en el sistema desde login.php lo manda a la pagina de login.php
{
echo "<script>alert('Para acceder al contenido de esta pagina necesitas loguearte');
window.location='../login.php';
</script>";
}
//**Se realiza la conexion a la base de datos**//

mysql_connect("","","") or die("No se pudo conectar a la base de datos");
//SELECCIONAMOS LA BASE DE DATOS CON LA CUAL VAMOS A TRABAJAR CAMBIEN EL VALOR POR LA SUYA
mysql_select_db("a6309601_biblio");
$id_documento=$_GET[id_documento];
$seleccionar=mysql_query("SELECT * FROM tbl_documentos WHERE id_documento='$id_documento'");
$fila=mysql_fetch_array($seleccionar);
$id_documento=$fila['id_documento'];
$titulo=$fila['titulo'];
$descripcion=$fila['descripcion'];
$contenido=$fila['contenido'];
$tamanio=$fila['tamanio'];
$nombre_archivo=$fila['nombre_archivo'];
$tamanio_unidad=$fila['tamanio_unidad'];
?>
<form id="test_upload" enctype="multipart/form-data" method="GET" action="modificar.php" name="test_upload">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>Titulo </td>
<td><input id="titulo" name="titulo" type="text" value="<?php echo $titulo?>"/> </td>
</tr>
<tr>
<td colspan="2">Descripcion </td>
</tr>
<tr>
<td colspan="2"><textarea id="descripcion" rows="5" cols="50" name="descripcion"></textarea> </td>
</tr>
<tr>
<td colspan="2">Archivo <input id="archivo" type="file" name="archivo" /> </td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Registrar Documento" /> </td>
</tr>
</tbody>
</table>
</form>
y este es del segundo formulario donde los mando llamar :

<?php
session_start();//**Se pone para saber que usuario esta en esta pagina, siempre va arriba de cualquier otro codigo
//**Se llama a la conexion de la base de datos**//
if(!$_SESSION["usuario"])//si el usuario no se ha ingresado en el sistema desde login.php lo manda a la pagina de login.php
{
echo "<script>alert('Para acceder al contenido de esta pagina necesitas loguearte');
window.location='../login.php';
</script>";
}
mysql_connect("mysql14.000webhost.com","a6309601_a na","2489sep") or die("No se pudo conectar a la base de datos");
//SELECCIONAMOS LA BASE DE DATOS CON LA CUAL VAMOS A TRABAJAR CAMBIEN EL VALOR POR LA SUYA
mysql_select_db("a6309601_biblio");


$id_documento=$_GET['$id_documento'];
$titulo=$_GET['$titulo'];
$descipicion=$_GET['$descripcion'];
$contenido=$_GET['$contenido'];
$tamanio=$_GET['$tamanio[0]'];
$tipo=$_GET['$tipo'];
$nombre_archivo=$_GET['$nombre_archivo'];
$tamanio_unidad=$_GET['$tamanio[1]'];

$qry = "UPDATE tbl_documentos SET titulo='$titulo', descripcion='$descripcion', contenido='$contenido', tamanio='{$tamanio[0]}', tipo='$tipo',nombre_archivo='$nombre_archivo',tama nio_unidad='{$tamanio[1]}' where id_documento='$id_documento'";
mysql_query($qry);

//NOS CONECAMOS A LA BASE DE DATOS
//REMPLAZEN SUS VALOS POR LOS MIOS
mysql_connect("","","") or die("No se pudo conectar a la base de datos");
//SELECCIONAMOS LA BASE DE DATOS CON LA CUAL VAMOS A TRABAJAR CAMBIEN EL VALOR POR LA SUYA
mysql_select_db("a6309601_biblio");
//EJECUTAMOS LA CONSULTA
mysql_query($qry) or die("Query: $qry <br />Error: ".mysql_error());
//CERRAMOS LA CONEXION
mysql_close();
//NOTIFICAMOS AL USUARIO QUE EL ARCHVO SE HA ENVIADO O REDIRIGIMOS A OTRO LADO ETC.
echo "Libro Modificado Correctamente<br />";
echo 'Subir Otro Archivo<br /> ';

?>

el error no es en la conexion solo borre los valores para postearlo aqui te agradezco demasiado tu tiempo ojala pudieras ayudarme :(
  #9 (permalink)  
Antiguo 16/05/2012, 14:26
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 13 años
Puntos: 160
Respuesta: almacenar resultado de consulta en variable

cual es el method del form? si pusiste GET no te va a funcionar puesto que dentro del php usas $_POST, por eso te pido si por favor podes postear el codigo completo, el del html para verificar el formulario y el php donde haces el update, asi le encontramos la solucion ;)
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #10 (permalink)  
Antiguo 16/05/2012, 14:39
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 13 años
Puntos: 160
Respuesta: almacenar resultado de consulta en variable

Tenes muchos errores de concepto, vamos a ver como te puedo ayudar....

primero, deberias guardar la conexion a la base de datos, el cual es el resource_id que te devuelve cuando haces el mysql_connect(); para luego pasarselo al metodo mysql_select_db y cuando realizas las querys, porque dependiendo de la configuracion del servidor te va a mostrar un warning o no, pero es buena practica hacerlo.

segundo, no es para nada recomendable pasar los datos que se envian en un formulario por GET, sino que siempre es mas seguro mandarlos por POST y capturarlos en el php con $_POST

tercero, los indices de $_GET son indices que existan, y como los utilizaste vos son variables, los cuales estan bien cuando esas variables existen, te digo esto por que en los casos $_GET['$tamanio[0]'], $_GET['$contenido'] entre otros, no existen esas variables $tamanio y $contenido por ejemplo, por lo que no va a tomar nada de la URL. La unica forma de que existiesen es que todo lo que posteaste recien este todo en un mismo archivo, por lo que si existirian, pero tomaria los valores de la consulta del select que tenias anteriormente y en ese caso esas variables poseen en contenido que tomaste el select y no nombres de indices de la URL,

cuarto, en el segundo archivo que es donde haces el update, haces la conexion a la base 2 veces y ejecutando el mysql_query($qry) 2 veces y ademas mostras que se actualizo correctamente sin importar si realizo la actualizacion o no, puesto que haces el echo al final de todo sin preguntar nada.
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #11 (permalink)  
Antiguo 16/05/2012, 14:39
 
Fecha de Ingreso: mayo-2012
Mensajes: 30
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: almacenar resultado de consulta en variable

mira este es el menu donde el usuario puede ver los libros al dar clic en modificar los manda a este otro formulario

cuyo codigo es el siguiente:
<?php
session_start();//**Se pone para saber que usuario esta en esta pagina, siempre va arriba de cualquier otro codigo
//**Se llama a la conexion de la base de datos**//
if(!$_SESSION["usuario"])//si el usuario no se ha ingresado en el sistema desde login.php lo manda a la pagina de login.php
{
echo "<script>alert('Para acceder al contenido de esta pagina necesitas loguearte');
window.location='../login.php';
</script>";
}
//**Se realiza la conexion a la base de datos**//

mysql_connect("","","") or die("No se pudo conectar a la base de datos");
//SELECCIONAMOS LA BASE DE DATOS CON LA CUAL VAMOS A TRABAJAR CAMBIEN EL VALOR POR LA SUYA
mysql_select_db("a6309601_biblio");
$id_documento=$_GET[id_documento];
$seleccionar=mysql_query("SELECT * FROM tbl_documentos WHERE id_documento='$id_documento'");
$fila=mysql_fetch_array($seleccionar);
$id_documento=$fila['id_documento'];
$titulo=$fila['titulo'];
$descripcion=$fila['descripcion'];
$contenido=$fila['contenido'];
$tamanio=$fila['tamanio'];
$nombre_archivo=$fila['nombre_archivo'];
$tamanio_unidad=$fila['tamanio_unidad'];
?>
<form id="test_upload" enctype="multipart/form-data" method="GET" action="modificar.php" name="test_upload">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>Titulo </td>
<td><input id="titulo" name="titulo" type="text" value="<?php echo $titulo?>"/> </td>
</tr>
<tr>
<td colspan="2">Descripcion </td>
</tr>
<tr>
<td colspan="2"><textarea id="descripcion" rows="5" cols="50" name="descripcion"></textarea> </td>
</tr>
<tr>
<td colspan="2">Archivo <input id="archivo" type="file" name="archivo" /> </td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Registrar Documento" /> </td>
</tr>
</tbody>
</table>
</form>


se supone que modificas el libro ya existente con el siguiente codigo:
<?php
session_start();//**Se pone para saber que usuario esta en esta pagina, siempre va arriba de cualquier otro codigo
//**Se llama a la conexion de la base de datos**//
if(!$_SESSION["usuario"])//si el usuario no se ha ingresado en el sistema desde login.php lo manda a la pagina de login.php
{
echo "<script>alert('Para acceder al contenido de esta pagina necesitas loguearte');
window.location='../login.php';
</script>";
}
mysql_connect("mysql14.000webhost.com","a6309601_a na","2489sep") or die("No se pudo conectar a la base de datos");
//SELECCIONAMOS LA BASE DE DATOS CON LA CUAL VAMOS A TRABAJAR CAMBIEN EL VALOR POR LA SUYA
mysql_select_db("a6309601_biblio");


$id_documento=$_POST['$id_documento'];
$titulo=$_POST['$titulo'];
$descipicion=$_POST['$descripcion'];
$contenido=$_POST['$contenido'];
$tamanio=$_POST['$tamanio[0]'];
$tipo=$_POST['$tipo'];
$nombre_archivo=$_POST['$nombre_archivo'];
$tamanio_unidad=$_POST['$tamanio[1]'];

$qry = "UPDATE tbl_documentos SET titulo='$titulo', descripcion='$descripcion', contenido='$contenido', tamanio='{$tamanio[0]}', tipo='$tipo',nombre_archivo='$nombre_archivo',tama nio_unidad='{$tamanio[1]}' where id_documento='$id_documento'";
mysql_query($qry);

//NOS CONECAMOS A LA BASE DE DATOS
//REMPLAZEN SUS VALOS POR LOS MIOS
mysql_connect("","","") or die("No se pudo conectar a la base de datos");
//SELECCIONAMOS LA BASE DE DATOS CON LA CUAL VAMOS A TRABAJAR CAMBIEN EL VALOR POR LA SUYA
mysql_select_db("a6309601_biblio");
//EJECUTAMOS LA CONSULTA
mysql_query($qry) or die("Query: $qry <br />Error: ".mysql_error());
//CERRAMOS LA CONEXION
mysql_close();
//NOTIFICAMOS AL USUARIO QUE EL ARCHVO SE HA ENVIADO O REDIRIGIMOS A OTRO LADO ETC.
echo "Libro Modificado Correctamente<br />";
echo 'Subir Otro Archivo<br /> ';

?>

PERO NO MODIFICA NADA SOLO SE QUEDAN LOS DATOS IGUAL EN VERDAD MUCHISISISISMAS GRACIAS POR TU TIEMPO Y TU AYUDA
  #12 (permalink)  
Antiguo 16/05/2012, 15:05
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 13 años
Puntos: 160
Respuesta: almacenar resultado de consulta en variable

yo probaria hacer algo mas sencillo porque para lo que queres vos tenes que usar el tratamiento de archivos y con lo que hiciste ni siquiera empezaste.

yo empezaria por hacer algo sencillo asi:

Código PHP:
Ver original
  1. <?php
  2. session_start();//**Se pone para saber que usuario esta en esta pagina, siempre va arriba de cualquier otro codigo
  3. //**Se llama a la conexion de la base de datos**//
  4. if(!$_SESSION["usuario"])//si el usuario no se ha ingresado en el sistema desde login.php lo manda a la pagina de login.php
  5. {
  6. echo "<script>alert('Para acceder al contenido de esta pagina necesitas loguearte');
  7. window.location='../login.php';
  8. </script>";
  9. }
  10. //**Se realiza la conexion a la base de datos**//
  11.  
  12. $cnx = mysql_connect("","","") or die("No se pudo conectar a la base de datos");
  13. //SELECCIONAMOS LA BASE DE DATOS CON LA CUAL VAMOS A TRABAJAR CAMBIEN EL VALOR POR LA SUYA
  14. mysql_select_db("a6309601_biblio", $cnx);
  15. $id_documento=$_GET[id_documento];
  16. ?>
  17.  
  18. <form id="test_upload" enctype="multipart/form-data" method="GET" action="modificar.php" name="test_upload">
  19. <table border="0" cellspacing="0" cellpadding="0">
  20. <tbody>
  21. <tr>
  22. <td>Titulo </td>
  23. <td><input id="titulo" name="titulo" type="text" value="<?php echo $titulo?>"/> </td>
  24. </tr>
  25. <tr>
  26. <td colspan="2">Descripcion </td>
  27. </tr>
  28. <tr>
  29. <td colspan="2"><textarea id="descripcion" rows="5" cols="50" name="descripcion"></textarea> </td>
  30. </tr>
  31. <tr>
  32. <td colspan="2">Archivo <input id="archivo" type="file" name="archivo" /> </td>
  33. </tr>
  34. <tr>
  35. <td colspan="2"><input type="submit" value="Registrar Documento" /> </td>
  36. </tr>
  37. </tbody>
  38. </table>
  39. </form>
  40.  
  41. <?php
  42.  
  43. if ($_POST) {
  44. // Podes validarlo mejor, ami me dio fiaca :D asique solo me basta conque envie el form
  45. $titulo=$_POST['$titulo'];
  46. $descipicion=$_POST['$descripcion'];
  47.  
  48. $qry = "UPDATE tbl_documentos SET titulo='" . $titulo . "', descripcion='" . $descripcion . "' where id_documento='" . $id_documento . "'";
  49.  
  50. if (mysql_affected_rows() > 0) {
  51.      echo "Se actualizo";
  52.      header("index.php"); // Aca redireccionas al listado de libros
  53. }
  54. ?>

Proba si algo asi te resulta mas facil para empezar, una vez que logres actualizar el titulo y la descripcion ahi recien te pones a ver como actualizas los blob de la base (archivos)
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #13 (permalink)  
Antiguo 16/05/2012, 15:15
 
Fecha de Ingreso: mayo-2012
Mensajes: 30
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: almacenar resultado de consulta en variable

gracias lo intentare :) espero que me funcione gracias por tu ayuda

Etiquetas: almacenar, formulario, sql, tabla, resultados, variables
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 13:03.