elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  UPDATE mySQL en PHP
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: UPDATE mySQL en PHP  (Leído 29,099 veces)
sexto

Desconectado Desconectado

Mensajes: 200


Ver Perfil
UPDATE mySQL en PHP
« en: 7 Diciembre 2007, 23:40 pm »

Hola, tengo un pequeño problemilla que no se como solucionar,
a ver, tengo una pequeña base de datos (mySQL) con una tabla en la que hay varios articulos y su precio, hasta ahi bien.
Lo que quiero es, que en un "panel de administrador" me salga por ejemplo los articulos y al lado un cuadro de texto o algo, para cambiar el precio.
Lo de sacar todos los articulos es sencillo, ya que con una consula UPDATE se hace ¡¡FACILMENTE!!, el problema esta en el cuadro de texto y luego para ejecutar la consulta y tal.

Muchas gracias


En línea

дٳŦ٭
GNU/Linux Infrastructure Specialist
Ex-Staff
*
Desconectado Desconectado

Mensajes: 5.110


Ver Perfil WWW
Re: UPDATE mySQL en PHP
« Respuesta #1 en: 7 Diciembre 2007, 23:49 pm »

Ps recupera el valor del campo de precio y lo metes como un value del input, cuando ejecutes tu form haces el UPDATE del precio y andando.

Suerte


En línea

sexto

Desconectado Desconectado

Mensajes: 200


Ver Perfil
Re: UPDATE mySQL en PHP
« Respuesta #2 en: 8 Diciembre 2007, 00:02 am »

Pues chico, o soy tonto o es que hoy estoy espesito.
Me puedes por favor (si no te importa) ponerme un ejemplo?
Gracias por responder
En línea

:ohk<any>


Desconectado Desconectado

Mensajes: 1.744


Yo lo que quiero que me salga bien es la vida.


Ver Perfil WWW
Re: UPDATE mySQL en PHP
« Respuesta #3 en: 8 Diciembre 2007, 00:27 am »

Bueno supongo que lo que quieres hacer es listar uno de tus articulos en un campo de texto y quieres que se puedan modificar.

pues si es eso aqui te pego el codigo de como puedes hacerlo.

Código:
<?

        //Inicializamos variables de conexión

        $host="localhost";
$user="tu usuario";
$passwd="tu password";
$db="tu base de datos";

        //Creamos la conexión

        $link = mysql_connect($host, $user, $passwd);
mysql_select_db($db, $link);

        //primero hacemos una consulta para listar uno de tus productos
        //y del resultado los metemos a un campo de texto para poder modificarlos

       $sql = mysql_query("select * from [/tabla] where [/condicion]", $link);
       //Preguntamos si nuestra consulta da algun resultado
        if(mysql_num_rows($sql)>0)
{
             echo "<html><head><title>ejemplo</title></head><body>
             <form action='actualizar.php' method='post'>
             ";
             $row_=mysql_fetch_array($sql);
             echo "
             <input type='hidden' name='h' value='".$row['id_del_campo']."'>
             <input type='text' name='valor1' value='".$row['nombre_del_campo1']."'>
            <input type='text' name='valor2' value='".$row['nombre_del_campo2']."'>
             <input type='submit' name='ir' value='Actualizar'>
             </form>
              </body></html>
             ";
        }

?>

Bueno, este seria el php que muestra tus productos para luego actualizarlos que puedes llamarlo como desees.

aqui esta el otro php q se encargaria de hacer la actualizacion y debes llamarlo actualizar.php.

Código:

<?
        //Para evitar hacer esta invocacion de variables de conexion cada rato necesitas
        //hacerte un php con cualquier nombre donde pongas estas variables y luego lo llamas con un include.
        //Inicializamos variables de conexión

        $host="localhost";
$user="tu usuario";
$passwd="tu password";
$db="tu base de datos";

        //Aqui recibimos las variables a actualizar

       $id=$_POST['h'];
       $valor1=$_POST['valor1'];
       $valor2=$_POST['valor2'];

        //Creamos la conexión

        $link = mysql_connect($host, $user, $passwd);
mysql_select_db($db, $link);

        //aqui preguntamos si hicieron click en el boton actualizar
        if($_POST['ir']=="Actualizar")
       {
              $sql=mysql_query("update [/tabla] set valor1='$valor1', valor2='$valor2' where [/id_de_tabla]='$id'",$link);
              echo "Actualizado correctamente";
        }
       else
       {
            header("Location: nombre_php_anterior.php");
        }
?>

Espero que te haya ayudado
si es que hay algun bug solo repostealo para que te oriente mas.
si no he contestado a tu pregunta, pues es porque no entendi muy bien lo que posteaste.
« Última modificación: 8 Diciembre 2007, 01:04 am por ohk » En línea

Y es que a veces pienso que si no estuviera loco no podría salir adelante.
Lo que no se es capaz de dar, en realidad no se posee, uno es poseído por ello.
sexto

Desconectado Desconectado

Mensajes: 200


Ver Perfil
Re: UPDATE mySQL en PHP
« Respuesta #4 en: 8 Diciembre 2007, 00:48 am »

Supuestamente me tendria que sacar todos los registros de la tabla no?
porque es que me salen dos cuadros de texto pero me salen vacios...

EDITO: vale, al crear la variable row, has puesto $row_, he quitado el _ y ahora si que salen los valores, pero no los cambia...
« Última modificación: 8 Diciembre 2007, 01:01 am por sexto » En línea

:ohk<any>


Desconectado Desconectado

Mensajes: 1.744


Yo lo que quiero que me salga bien es la vida.


Ver Perfil WWW
Re: UPDATE mySQL en PHP
« Respuesta #5 en: 8 Diciembre 2007, 01:00 am »

...
Supuestamente me tendria que sacar todos los registros de la tabla no?
porque es que me salen dos cuadros de texto pero me salen vacios...

una pregunta, cambiaste en el codigo esta parte?

Cita de: ohk
             <input type='hidden' name='h' value='".$row['id_del_campo']."'>
             <input type='text' name='valor1' value='".$row['nombre_del_campo1']."'>
            <input type='text' name='valor1' value='".$row['nombre_del_campo2']."'>

osea que en el primero deberias poner el id de tu tabla
en el segundo tu el nombre de la columna articulo
y en el tercero el nombre de la columna del precio

...y no esta demas decirte que debes cambiar los datos en las condiciones de la consulta.
En línea

Y es que a veces pienso que si no estuviera loco no podría salir adelante.
Lo que no se es capaz de dar, en realidad no se posee, uno es poseído por ello.
sexto

Desconectado Desconectado

Mensajes: 200


Ver Perfil
Re: UPDATE mySQL en PHP
« Respuesta #6 en: 8 Diciembre 2007, 01:08 am »

lo que te digo arriba,
todo eso claro que lo he cambiado, sino no me sacaria ni los cuadros de texto,
pero ya te digo, ahora si que me lo saca todo, pero lo cambio y tal pero no se cambia en la tabla...
sigo investigando el problema...

EDITO: vale, ya esta, muchas gracias por vuestra ayuda
« Última modificación: 8 Diciembre 2007, 01:13 am por sexto » En línea

:ohk<any>


Desconectado Desconectado

Mensajes: 1.744


Yo lo que quiero que me salga bien es la vida.


Ver Perfil WWW
Re: UPDATE mySQL en PHP
« Respuesta #7 en: 8 Diciembre 2007, 01:19 am »


Tienes razon, en la variable $row se me fue un _
pero bueno...

--
W.M. Ohk
En línea

Y es que a veces pienso que si no estuviera loco no podría salir adelante.
Lo que no se es capaz de dar, en realidad no se posee, uno es poseído por ello.
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.605


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: UPDATE mySQL en PHP
« Respuesta #8 en: 8 Diciembre 2007, 03:57 am »

Código
  1. <?
  2.        //Para evitar hacer esta invocacion de variables de conexion cada rato necesitas
  3.        //hacerte un php con cualquier nombre donde pongas estas variables y luego lo llamas con un include.
  4.        //Inicializamos variables de conexión
  5.  
  6.        $host="localhost";
  7. $user="tu usuario";
  8. $passwd="tu password";
  9. $db="tu base de datos";
  10.  
  11.        //Aqui recibimos las variables a actualizar
  12.  
  13.       $id=$_POST['h'];
  14.       $valor1=$_POST['valor1'];
  15.       $valor2=$_POST['valor2'];
  16.  
  17.        //Creamos la conexión
  18.  
  19.        $link = mysql_connect($host, $user, $passwd);
  20. mysql_select_db($db, $link);
  21.  
  22.        //aqui preguntamos si hicieron click en el boton actualizar
  23.        if($_POST['ir']=="Actualizar")
  24.       {
  25.              $sql=mysql_query("update [/tabla] set valor1='$valor1', valor2='$valor2' where [/id_de_tabla]='$id'",$link);
  26.              echo "Actualizado correctamente";
  27.        }
  28.       else
  29.       {
  30.            header("Location: nombre_php_anterior.php");
  31.        }
  32. ?>

Puedes modificarlo por lo siguiente:

Código
  1. <?
  2. //Para evitar hacer esta invocacion de variables de conexion cada rato necesitas
  3. //hacerte un php con cualquier nombre donde pongas estas variables y luego lo llamas con un include si es que existe con if exist para evitar errores.
  4.  
  5.        $referer = htmlspecialchars($_SERVER['HTTP_REFERER']);
  6.        //Inicializamos variables de conexión
  7.        $host="localhost";
  8. $user="tu usuario";
  9. $passwd="tu password";
  10. $db="tu base de datos";
  11.  
  12.        //Aqui recibimos las variables a actualizar
  13.  
  14.       $id = filtro($_POST['h']);
  15.       $valor1 = filtro($_POST['valor1']);
  16.       $valor2 = filtro($_POST['valor2']);
  17.  
  18.  
  19. function filtro($input){
  20. $referer = htmlspecialchars($_SERVER['HTTP_REFERER']);
  21. $filtro = array("`", "´", '"', "<", ">", ";", "'", "%60", "%C2%B4", "%22", "%3E", "%3C","%27", "%25", "%");
  22. for ($i=0; $i < count($filtro) ; $i++) {
  23.  if(eregi($filtro[$i],$input)) {
  24. echo "<center>Error.<br /><br />
  25. <a href=\"$referer\">Buelva a intentarlo por favor</a>.</center>\n";
  26.   exit(1);
  27.  }
  28. }
  29. return mysql_escape_string(htmlspecialchars($input, ENT_QUOTES));
  30. }
  31.  
  32. //Creamos la conexión
  33.  
  34. $link = mysql_connect($host, $user, $passwd);
  35. mysql_select_db($db, $link);
  36.  
  37. //aqui preguntamos si hicieron click en el boton actualizar
  38. if($_POST['ir']=="Actualizar")
  39. {
  40. $sql=mysql_query("update [/tabla] set valor1='$valor1', valor2='$valor2' where [/id_de_tabla]='$id'",$link);
  41. echo "Actualizado correctamente";
  42. } else { header("Location: nombre_php_anterior.php"); }
  43.  
  44. ?>

Solo le añadí un pequeño filtro para que no le hechen por la borda el trabajo con una inyección sql.
En línea

:ohk<any>


Desconectado Desconectado

Mensajes: 1.744


Yo lo que quiero que me salga bien es la vida.


Ver Perfil WWW
Re: UPDATE mySQL en PHP
« Respuesta #9 en: 8 Diciembre 2007, 13:25 pm »

Muchas gracias, muy bueno tu aporte  :D
En línea

Y es que a veces pienso que si no estuviera loco no podría salir adelante.
Lo que no se es capaz de dar, en realidad no se posee, uno es poseído por ello.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Insertar datos con un update, dentro de otro update con SQLi(Mysql)
Nivel Web
WarGhost 3 5,969 Último mensaje 23 Agosto 2011, 03:37 am
por WarGhost
duda con update mysql
Desarrollo Web
xemnas 1 2,177 Último mensaje 23 Abril 2012, 13:21 pm
por HdM
Highscore Online con PHP MySQL Update solo puntuacion
PHP
matusalem666 0 1,921 Último mensaje 22 Septiembre 2012, 17:07 pm
por matusalem666
vb6 y mysql ayuda con update porfa
Programación Visual Basic
elmatador2 6 2,712 Último mensaje 7 Abril 2015, 01:07 am
por elmatador2
MySQL - Problemas con ON UPDATE CASCADE
Bases de Datos
Anteros 4 3,234 Último mensaje 25 Noviembre 2015, 19:08 pm
por ivancea96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines