Autor
|
Tema: UPDATE mySQL en PHP (Leído 29,099 veces)
|
sexto
Desconectado
Mensajes: 200
|
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
Mensajes: 5.110
|
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
Mensajes: 200
|
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
Mensajes: 1.744
Yo lo que quiero que me salga bien es la vida.
|
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. <?
//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. <? //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
Mensajes: 200
|
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
Mensajes: 1.744
Yo lo que quiero que me salga bien es la vida.
|
... 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? <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
Mensajes: 200
|
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
Mensajes: 1.744
Yo lo que quiero que me salga bien es la vida.
|
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
|
<? //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 //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"); } ?>
Puedes modificarlo por lo siguiente: <? //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 si es que existe con if exist para evitar errores. //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 = filtro($_POST['h']); $valor1 = filtro($_POST['valor1']); $valor2 = filtro($_POST['valor2']); function filtro($input){ $filtro = array("`", "´", '"', "<", ">", ";", "'", "%60", "%C2%B4", "%22", "%3E", "%3C","%27", "%25", "%"); for ($i=0; $i < count($filtro) ; $i++) { if(eregi($filtro[$i],$input)) { echo "<center>Error.<br /><br /> <a href=\"$referer\">Buelva a intentarlo por favor</a>.</center>\n"; } } } //Creamos la conexión //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"); } ?>
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
Mensajes: 1.744
Yo lo que quiero que me salga bien es la vida.
|
Muchas gracias, muy bueno tu aporte
|
|
|
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.
|
|
|
|
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
|
23 Agosto 2011, 03:37 am
por WarGhost
|
|
|
duda con update mysql
Desarrollo Web
|
xemnas
|
1
|
2,177
|
23 Abril 2012, 13:21 pm
por HdM
|
|
|
Highscore Online con PHP MySQL Update solo puntuacion
PHP
|
matusalem666
|
0
|
1,921
|
22 Septiembre 2012, 17:07 pm
por matusalem666
|
|
|
vb6 y mysql ayuda con update porfa
Programación Visual Basic
|
elmatador2
|
6
|
2,712
|
7 Abril 2015, 01:07 am
por elmatador2
|
|
|
MySQL - Problemas con ON UPDATE CASCADE
Bases de Datos
|
Anteros
|
4
|
3,234
|
25 Noviembre 2015, 19:08 pm
por ivancea96
|
|