tecniloco
Usuario Novato
Usuario Novato

Agradecería muchísimo que me ayudasen con este código que estoy intentando hacer funcionar desde hace 3 dias y no hay manera.. expongo el problema. Tengo una bd con 3 campos datos incluidos que son id, producto y pvp , la idea es actualizar el pvp de un producto concreto desde un form donde le pasaría el nuevo pvp por textfield al que he nombrado pvp y al formulario enviar. Hasta ahora lo tengo claro pero despues los datos son recogidos por un script.php que he encontrado por la web y es aqui donde falla ya que no me actualiza el campo "pvp" soy muy cabezota y hasta que no lo consiga no pararé pero esto me sobrepasa ..ya he probado de todo..alguna idea por favor. paso el codigo que tengo ahora mismo...un millon de gracias por adelantado.

<html>
<body>
<?php
if (isset($enviar)){
// process form
$link = mysql_connect("localhost","combusti","combu") ;
mysql_select_db("combustible") or die(mysql_error());
$sql = "UPDATE productos SET pvp='$pvp' WHERE id=pvp";
$result = mysql_query($sql);
}else{
echo "Debe especificar un 'id'.\n";
}
?>
</body>
</html>

Avatar Image
@man / @woman
@man / @woman
Escrito originalmente por tecniloco
$sql = "UPDATE productos SET pvp='$pvp' WHERE id=pvp";
echo $sql

Y dinos que te da.... después mira a ver si es lo que debería darte y nos cuentas que debería darte.
tecniloco
Usuario Novato
Usuario Novato

Gracias por la pronta respuesta,  le he colocado el echo según me has pedido pero no muestra nada en pantalla eso me ha mosqueado y le he colocado un código de depuración para que me el contenido de la matriz global $_POST devolviendo lo siguiente:

Debe especificar un 'id'. DEBUG :
Array
(
[pvp] => 7.258
[enviar] => Cambiar precio
)
el valor del pvp es el enviado en el form osea correcto y veo que también envía el valor del boton aunque no creo que sea un problema. He probado otro ejemplo de update muy parecido al anterior a ver que te parece aunque tampoco funciona..¿donde estará el fallo?

<?php
if (isset($enviar)){
// process form
$link = mysql_connect("localhost","codes15_combusti","combu123") or die(mysql_error());
mysql_select_db("codes15_combustible") or die(mysql_error());
$sql = "SELECT * FROM productos WHERE id = '1'";
$result = mysql_query($sql);
$sql = "UPDATE productos SET pvp='$pvp' WHERE id=pvp";
echo $sql;
$result = mysql_query($sql);
echo "Dato modificado.\n";
}else{
echo "Debe especificar un 'id'.\n";
}
?>
<pre>
DEBUG :
<?php
print_r($_POST);
?>
</pre>
</body>
</html>

tecniloco
Usuario Novato
Usuario Novato

Me estoy volviendo loco , acabo de probar otro script que he modificado para este uso y tampoco realiza el update expongo nuevo código.. esto no puede ser tan complicado.

<HTML>
<HEAD>
<TITLE>Actualizar2.php</TITLE>
</HEAD>
<BODY>
<?
//Conexion con la base
mysql_connect("localhost","codes15_combusti","combu123") or die(mysql_error());
mysql_select_db("codes15_combustible") or die(mysql_error());
//Creamos la sentencia SQL y la ejecutamos
$sSQL= "UPDATE productos SET pvp='$pvp' WHERE producto='$producto'";
mysql_db_query("codes15_combustible",$sSQL);
echo $sSQL;
?>
<h1><div align="center">Registro Actualizado</div></h1>
<div align="center"><a href="lectura.php">Visualizar el contenido de la base</a></div>

</BODY>
</HTML>

----------------------
el echo $sSQL; da este resultado ...... UPDATE productos SET pvp='' WHERE producto=''  con lo cual me hace pensar que no está tomando el valor del post ....AUNQUE QUE DIGA QUE EL REGISTRO  ACTUALIZADO NO LO HACE..

¿DONDE ESTA EL FALLO? ¿DONDE ME ESTOY EQUIVOCANDO?  ME ESTOY QUEDANDO PILLADO...POR FAVOR...

Avatar Image
@man / @woman
@man / @woman
Escrito originalmente por tecniloco
Gracias por la pronta respuesta,  le he colocado el echo según me has pedido pero no muestra nada en pantalla eso me ha mosqueado y le he colocado un código de depuración para que me el contenido de la matriz global $_POST devolviendo lo siguiente:

Debe especificar un 'id'. DEBUG :
Array
(
[pvp] => 7.258
[enviar] => Cambiar precio
)


A mi echo le faltaba un ; por lo que debería darte error... pero me vale lo que has puesto...

Si te fijas pasas el nuevo precio pero ¿de quien?
tecniloco
Usuario Novato
Usuario Novato

Ya me di cuenta que faltaba el ;  no te entiendo con lo ¿de quien? Te paso los dos ficheros para que veas como tengo tambien el form.. se que me falta algo pero no caigo, es la primera vez que hago esto y la verdad es que no pensaba que costara tanto.

-------> actualizar1.php

<HTML>
<HEAD>
<TITLE>Actualizar1.php</TITLE>
</HEAD>
<BODY>
<div align="center">
<h1>Actualizar un registro</h1>
<br>
<?
//Conexion con la base
mysql_connect("localhost","codes15_combusti","combu123") or die(mysql_error());
// mysql_select_db("codes15_combustible") or die(mysql_error());

echo '<FORM METHOD="POST" ACTION="actualizar2.php">producto<br>';

//Creamos la sentencia SQL y la ejecutamos
$sSQL="Select producto From productos Order By producto";
$result=mysql_db_query("codes15_combustible",$sSQL);

echo '<select name="producto" id="producto">';

//Generamos el menu desplegable
while ($row=mysql_fetch_array($result))
{echo '<option>'.$row["producto"];}
?>
</select>
<br>
pvp:
<br>
<INPUT NAME="pvp" TYPE="TEXT" id="pvp" size="5" maxlength="6">
<br>
<INPUT TYPE="SUBMIT" value="Actualizar">
</FORM>
</div>

</BODY>
</HTML>

------> actulizar2.php

<HTML>
<HEAD>
<TITLE>Actualizar2.php</TITLE>
</HEAD>
<BODY>
<?
//Conexion con la base
mysql_connect("localhost","codes15_combusti","combu123") or die(mysql_error());
mysql_select_db("codes15_combustible") or die(mysql_error());
//Creamos la sentencia SQL y la ejecutamos
$sSQL= "UPDATE productos SET pvp='$pvp' WHERE producto='$producto'";
mysql_db_query("codes15_combustible",$sSQL);
echo $sSQL;
?>
<h1><div align="center">Registro Actualizado</div></h1>
<div align="center"><a href="lectura.php">Visualizar el contenido de la base</a></div>
<pre>
DEBUG :
<?php
print_r($_POST);
?>
</pre>
</BODY>
</HTML>

A ver si le ves que falte algo.. Gracias NoSetup por tus indicaciones.

Avatar Image
@man / @woman
@man / @woman

Estas usando el métdo inadecuado... estas cogiendo scripts por ahi a ver si hay suerte y suena la flauta... así no se hacen las cosas.

Solo si tu haces el formulario sabras solucionar este problema y los siguientes... si eres novato, más motivo para no copiar nada....

Empieza por lo básico... nociones de html para el formulario... empieza en una hoja de papel pensando que datos tienes que pasar al formulario, que datos tienes que pedir en el formulario y que datos tienes que procesar.

tecniloco
Usuario Novato
Usuario Novato

POR FIN...YA LO HE SOLUCIONADO..Joder que complicado me faltaba poner la regida de las variables y he encontrado esto:

------------------------------------------------------------------------------------

if (isset($HTTP_POST_VARS))
{
while(list($name,$value) = each($HTTP_POST_VARS))
{
$$name = $value;
}
}

------------------------------------------------------------------------------------
Ahora el código de actualizar2.php ha quedado de la siguiente forma aunque creo que se puede ordenar mejor ¿alguna sugerencia?

<HTML>
<HEAD>
<TITLE>Actualizar2.php</TITLE>
</HEAD>
<BODY>
<?
//Conexion con la base
mysql_connect("localhost","codes15_combusti","combu123") or die(mysql_error());
mysql_select_db("codes15_combustible") or die(mysql_error());
//Creamos la sentencia SQL y la ejecutamos
if (isset($HTTP_POST_VARS))
{
while(list($name,$value) = each($HTTP_POST_VARS))
{
$$name = $value; }}
$sSQL= "UPDATE productos SET pvp='$pvp' WHERE producto='$producto'";
mysql_db_query("codes15_combustible",$sSQL);
echo $sSQL;
?>
<h1><div align="center">Registro Actualizado</div></h1>
<div align="center"><a href="lectura.php">Visualizar el contenido de la base</a></div>
<pre>
DEBUG :
<?php
print_r($_POST);
?>
</pre>
</BODY>
</HTML>

Que pesadilla pero al final lo he conseguido aunque se que me tedré que encontrar con muchos problemas ya que estoy decidido a aprendrer PHP a tope ya que lo necesito como diseñador Web..muchas gracias NoSetup...¿alguna sugerencia con el orden del código?


Avatar Image
@man / @woman
@man / @woman

Ese código hara lo que quieras... pero de poco te sirve sino sabes que dice o como lo hace.

Me alegro que solucionaras eso... pero seguiras teniendo problemas...

Te recomiendo lo de antes... empezar por plantear las cosas en una hoja de papel... cuando tengas claro que vas a hacer, puedes empezar a hacerlo... mientras es tonteria.

tecniloco
Usuario Novato
Usuario Novato

Gracias por tu orientación y consejos..seguramente no debería como bien dices apoyarme sobre códigos que no termino bien de entender pero me urge terminar esta web y necesito nuevamente tu ayuda si no te importa.. ahora tengo un problema más complicado y no me sale el update que propongo a continuación:
He creado un form para update de productos el cual me recoge de un select los campos id, nombre de la tabla comidas, despues genero un menú desplegable que muestra la consulta donde seguidamente tengo un campo input donde introduzco el nuevo nombre a modificar..hasta aqui bien pero despues al pasar los datos del form compruebo que la id no la recoge, he probado con campo oculto pero no me recoge el valor $id. paso el código del form..

<?
echo '<FORM METHOD="POST" ACTION="actubd/modplato.php">Productos<br>';
//Creamos la sentencia SQL y la ejecutamos
$sSQL="Select id , nombre From comidas ";
$result=mysql_db_query("codes15_login",$sSQL);
echo '<select name="nombre" id="nombre">';
//Generamos el menu desplegable
while ($row=mysql_fetch_array($result))
{echo '<option>'.$row["nombre"];}
?>


y este el código de recogida.. modplato.php


if (isset($HTTP_POST_VARS))
{
while(list($name,$value) = each($HTTP_POST_VARS))
{
$$name = $value; }}
$sSQL= "UPDATE comidas SET nombre='$nombre'  WHERE id=$id";
mysql_db_query("codes15_login",$sSQL);
?>
<pre>
DEBUG :
<?php
print_r($_POST);
?>
</pre>

¿alguna idea?... Gracias

Avatar Image
@man / @woman
@man / @woman
Escrito originalmente por tecniloco

$sql = "UPDATE productos SET pvp='$pvp' WHERE id=pvp";
echo $sql;

Mete estas línea y mira si la sentencia que haces, es la que quieres hacer.
ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Opciones:
Ir al subforo:
Permisos:
TU NO PUEDES Escribir nuevos temas
TU NO PUEDES Responder a los temas
TU NO PUEDES Editar tus propios mensajes
TU NO PUEDES Borrar tus propios mensajes
Temas similares
TemaUsuariosRespuestasVisitasActividad
Por: , el 03/Dic/2014, 06:13
noesuxx NoSetup.org13kDec/14
Por: , el 27/Oct/2009, 22:31
Godzellgirl NoSetup.org2849Nov/09
Por: , el 04/Sep/2009, 03:59
ritaskiu GestionXls5754Sep/09
Por: , el 31/May/2009, 14:38
Hicham12 GestionXls1711May/09
Por: , el 23/Nov/2008, 01:44
osrkeen GestionXls93kNov/08