Foros del Web » Programando para Internet » PHP »

Modificar datos de bd vía web y ordenar

Estas en el tema de Modificar datos de bd vía web y ordenar en el foro de PHP en Foros del Web. Buenas, Tengo una web en la cual se insertan datos mediante formulario, me gustaría crear otro formulario u otro sistema para poder modificar los datos ...
  #1 (permalink)  
Antiguo 05/03/2008, 12:43
 
Fecha de Ingreso: julio-2007
Mensajes: 120
Antigüedad: 12 años, 6 meses
Puntos: 0
Modificar datos de bd vía web y ordenar

Buenas,
Tengo una web en la cual se insertan datos mediante formulario, me gustaría crear otro formulario u otro sistema para poder modificar los datos de las columnas de cada registro, ya sea por actualización o por error.



Muchas Gracias :D:D:D:D:D

Última edición por davilin; 05/03/2008 a las 12:48
  #2 (permalink)  
Antiguo 05/03/2008, 13:48
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 7 meses
Puntos: 2135
Re: Modificar datos de bd vía web y ordenar

Para actualizar los registros usa una consulta SQL del tipo UPDATE:
Código:
UPDATE `tabla` SET `columna1`='nuevovalor', `columna2`='otrovalor' WHERE `llave`=1
Lo que haces es ya que tienes tu formulario hecho envías tus valores y en lugar de hacer un sql del tipo INSERT, lo haces con un UPDATE y en el formato que te puse mas arriba.

Saludos.
  #3 (permalink)  
Antiguo 05/03/2008, 14:32
 
Fecha de Ingreso: julio-2007
Mensajes: 120
Antigüedad: 12 años, 6 meses
Puntos: 0
Re: Modificar datos de bd vía web y ordenar

Buenas, encontré un ejemplo un poco más apañado en una web, lo que me da varios errores

Código:
Notice: Undefined variable: OK in ...\www\modificar.php on line 14

Notice: Undefined variable: OK in ...\www\modificar.php on line 72
Te pasteo el código entero aquí modificado, no sé si lo modifiqué correctamente, pero cuando lo ejecuto me salen esos dos errores, de que no está definida la variable :\. Necesito una mano!!

Código:
<HTML>

<FORM ACTION=modificar.php METHOD=post>

Pon el nº de Serie para editar:
<INPUT TYPE=text NAME=Serie><BR>

<INPUT TYPE=submit NAME=OK VALUE="BUSCAR"><BR>

</FORM></HTML>

<?php

if ($OK == "BUSCAR") {

// coneccion al servidor de bases de datos

$dbh=mysql_connect ("localhost", "nashua", "nashua")

or die ('problema conectando porque :' . mysql_error());

// seleccionado la base de datos

mysql_select_db ("nashua");

// preparando la instruccion sql

$q = "select * from nashua where id= ".$Serie;

// ejecutando el query select regresa un rowset

$nashua = mysql_query($q) or die ("problema con query") ;

// regresando renglon con registro

$reg = mysql_fetch_row($nashua);

// construyendo forma dinamica

echo "<FORM ACTION=modificar.php METHOD=post>";

// recordar que strings se encadenan con .

echo "Modelo<INPUT TYPE=text NAME=Modelo value= \"".$reg[1]."\"><BR>";
echo "Núm Serie<INPUT TYPE=text NAME=Serie value=$reg[2]><BR>";
echo "Tapa:<INPUT TYPE=text NAME=Tapa value=$reg[3]><BR>";
echo "ADF:<INPUT TYPE=text NAME=ADF value=$reg[4]><BR>";
echo "ARDF:<INPUT TYPE=text NAME=ARDF value=$reg[5]><BR>";
echo "Duplex:<INPUT TYPE=text NAME=Duplex value=$reg[6]><BR>";
echo "By-Pass:<INPUT TYPE=text NAME=ByPass value=$reg[7]><BR>";
echo "Mailbox:<INPUT TYPE=text NAME=Mailbox value=$reg[8]><BR>";
echo "Bridge:<INPUT TYPE=text NAME=Bridge value=$reg[9]><BR>";
echo "Finisher:<INPUT TYPE=text NAME=Finisher value=$reg[10]><BR>";
echo "Mesa:<INPUT TYPE=text NAME=Mesa value=$reg[11]><BR>";
echo "Casset:<INPUT TYPE=text NAME=Casset value=$reg[12]><BR>";
echo "Impresora:<INPUT TYPE=text NAME=Impresora value=$reg[13]><BR>";
echo "Lan:<INPUT TYPE=text NAME=Lan value=$reg[14]><BR>";
echo "HD:<INPUT TYPE=text NAME=HD value=$reg[15]><BR>";
echo "Scanner:<INPUT TYPE=text NAME=Scanner value=$reg[16]><BR>";
echo "Fax:<INPUT TYPE=text NAME=Fax value=$reg[17]><BR>";
echo "Precio:<INPUT TYPE=text NAME=Precio value=$reg[18]><BR>";


echo "<input type=hidden name=Modelo value=$reg[1]>";

echo "<INPUT TYPE=submit NAME=OK VALUE=editar><BR>";

echo "</FORM>";

};

if ($OK == "editar")

{

// coneccion al servidor de bases de datos

$dbh=mysql_connect ("localhost", "nashua", "nashua")

or die ('problema conectando porque :' . mysql_error());

// seleccionado la base de datos

mysql_select_db ("nashua",$dbh);

// preparando la instruccion sql

$q = "UPDATE nashua set Modelo='".$Modelo."', Serie=".$Serie.", Tapa=".$Tapa." ADF=".$ADF.", ARDF=".$ARDF.", Duplex=".$Duplex.", ByPass=".$ByPass.",  Mailbox=".Mailbox.", Bridge=".$Bridge.", Finisher=".$Finisher.", Mesa=".$Mesa.", Casset=".$Casset.", Impresora=".$Impresora.", Lan=".$Lan.", HD=".$HD.", Scanner=".$Scanner.", Fax=".$Fax.", Precio=".$Precio.", where Serie=".$Serie;

// ejecutando el query

mysql_query($q, $dbh) or die ("problema con query");

// avisando

echo "REGISTRO EDITADO";

};

?>
  #4 (permalink)  
Antiguo 05/03/2008, 15:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 7 meses
Puntos: 2135
Re: Modificar datos de bd vía web y ordenar

Lo que pasa es que en lugar de usar $OK debes de usar su superglobal como $_POST['OK'], también en todas las variables que vengan de tu formulario deberás usar $_POST.

Saludos.
  #5 (permalink)  
Antiguo 05/03/2008, 16:46
 
Fecha de Ingreso: julio-2007
Mensajes: 120
Antigüedad: 12 años, 6 meses
Puntos: 0
Re: Modificar datos de bd vía web y ordenar

Me sigue dando el mismo error :\
  #6 (permalink)  
Antiguo 05/03/2008, 17:09
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 7 meses
Puntos: 2135
Re: Modificar datos de bd vía web y ordenar

¿Como esta tu código ahora?

Saludos.
  #7 (permalink)  
Antiguo 06/03/2008, 16:32
 
Fecha de Ingreso: julio-2007
Mensajes: 120
Antigüedad: 12 años, 6 meses
Puntos: 0
Re: Modificar datos de bd vía web y ordenar

Perdona por tardar en contestar, no he podido mirarlo antes
Cambie las líneas y le puse esto:

if ($_POST['OK'] == "BUSCAR") {

Según leí ese código te busca el campo que le digas en la bd, en este caso me buscaria el campo serie que es unico y diferente en cada registro, y me mostraría los datos de todas las columnas de ese registro y poder modificarlos y actualizarlos.
Me equivoco ? :S
  #8 (permalink)  
Antiguo 06/03/2008, 16:54
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 12 años, 7 meses
Puntos: 49
Re: Modificar datos de bd vía web y ordenar

Parece que eso es lo que deberia hacer pero debes fijarte bien pues tiene muchos errores de sintaxis. te pregunto corregiste el error que mencionabas anteriormente?


Saludos.
  #9 (permalink)  
Antiguo 07/03/2008, 08:08
 
Fecha de Ingreso: julio-2007
Mensajes: 120
Antigüedad: 12 años, 6 meses
Puntos: 0
Re: Modificar datos de bd vía web y ordenar

Si, los errores que me daba era de esta línea:

if ($OK == "BUSCAR") {

que hay dos en todo el documento, y la cambié por esta y me sigue dando el mismo error


if ($_POST['OK'] == "BUSCAR") {

Perdonad mi ignorancia... :(

Lo tengo echo que me actualize los registros de otra forma (cutre), pero me interesa que se haga de esta forma y me interesa solucionarlo.
Graciass
  #10 (permalink)  
Antiguo 07/03/2008, 09:03
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 12 años, 7 meses
Puntos: 49
Re: Modificar datos de bd vía web y ordenar

Código HTML:
<form action= "modificar.php" method = "post">
Pon el nº de Serie para editar:
<input type = "text" name = "Serie"><br>
<input type = "submit" name = "OK" value = "BUSCAR"><br>
</form> 
Código PHP:
<?php

if ($_POST['OK'] == "BUSCAR") {

// coneccion al servidor de bases de datos

$dbh mysql_connect ("localhost""nashua""nashua") or die (mysql_error());

// seleccionado la base de datos

mysql_select_db ("nashua");

// Realizas los demas procedimientos.

}
Es siempre recomendable hacer tu formulario de diseño y tu script para procesar los datos ena rchivos diferentes.

Saludos.

Última edición por Carlojas; 07/03/2008 a las 09:11
  #11 (permalink)  
Antiguo 08/03/2008, 07:32
 
Fecha de Ingreso: julio-2007
Mensajes: 120
Antigüedad: 12 años, 6 meses
Puntos: 0
Re: Modificar datos de bd vía web y ordenar

Vale, vamos avanzando, corregí los errores de sintaxis, puse el formulario por una parte y la "acción" por otra me da un error de variable.
Notice: Undefined variable: Serie in C:\Archivos de programa\EasyPHP 2.0b1\www\modificado.php on line 17
problema con query
  #12 (permalink)  
Antiguo 08/03/2008, 07:37
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 12 años, 7 meses
Puntos: 49
Re: Modificar datos de bd vía web y ordenar

Publica el código que estas utilizando, el error es claro hay una variable que no esta definida mira en el query puede ser que la variable de conexion no este definida como la estas utilizando.



Saludos.

Última edición por Carlojas; 08/03/2008 a las 08:06
  #13 (permalink)  
Antiguo 08/03/2008, 08:39
 
Fecha de Ingreso: julio-2007
Mensajes: 120
Antigüedad: 12 años, 6 meses
Puntos: 0
Re: Modificar datos de bd vía web y ordenar

Código:
<?php

if ($_POST['OK'] == "BUSCAR") {

// coneccion al servidor de bases de datos

$dbh=mysql_connect ("localhost", "nashua", "nashua")

or die ('problema conectando porque :' . mysql_error());

// seleccionado la base de datos

mysql_select_db ("nashua");

// preparando la instruccion sql

línea 17:   $q = "select * from nashua where id= ".$Serie;

// ejecutando el query select regresa un rowset

$nashua = mysql_query($q) or die ("problema con query") ;

// regresando renglon con registro

$reg = mysql_fetch_row($nashua);
Da error en la 17
  #14 (permalink)  
Antiguo 08/03/2008, 08:43
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 12 años, 7 meses
Puntos: 49
Re: Modificar datos de bd vía web y ordenar

Prueba asi el código

Código PHP:
<?php

if ($_POST['OK'] == "BUSCAR") {

// coneccion al servidor de bases de datos

$dbh mysql_connect ("localhost""nashua""nashua") or die ('problema conectando porque ' );

// seleccionado la base de datos

mysql_select_db ("nashua");

// preparando la instruccion sql
$Serie $_POST['Serie'];  // Linea agregada
$q "select * from nashua where id = '$Serie';
Saludos.
  #15 (permalink)  
Antiguo 08/03/2008, 08:44
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 12 años, 7 meses
Puntos: 49
Re: Modificar datos de bd vía web y ordenar

Si estas enviando las variables por $_POST o por $_GET


Saludos
  #16 (permalink)  
Antiguo 10/03/2008, 17:06
 
Fecha de Ingreso: julio-2007
Mensajes: 120
Antigüedad: 12 años, 6 meses
Puntos: 0
Re: Modificar datos de bd vía web y ordenar

Gracias por contestar, me da error en la siguiente línea:
Parse error: parse error, unexpected T_STRING in C:\Archivos de programa\EasyPHP 2.0b1\www\modificado.php on line 19

En la cual hay lo siguiente:


Código PHP:
mysql_select_db ("nashua");

// preparando la instruccion sql
$Serie $_GET['Serie'];  // Linea agregada
$q "select * from nashua where id = '$Serie'; 

// ejecutando el query select regresa un rowset

línea 19: $nashua = mysql_query($q) or die ("
problema con query") ; 
me estoy volviendo loocooo con esto

EDITO: Suelo usar GET
  #17 (permalink)  
Antiguo 11/03/2008, 06:45
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 11 años, 10 meses
Puntos: 52
Re: Modificar datos de bd vía web y ordenar

Cambia esto

Cita:
$nashua = mysql_query($q) or die ("problema con query") ;
por esto:

Cita:
$nashua = mysql_query($q , $dbh) or die ( mysql_error() );
creo que el problema es que al mysql_query no le estas pasando la variable de la conexion que es $dbh y tambien las comillas dobles qie tienes aqui:

Código PHP:
("problema con query"
creo que deberian ser comillas simples

Código PHP:
('problema con query'
Un saludo.
  #18 (permalink)  
Antiguo 11/03/2008, 08:32
 
Fecha de Ingreso: julio-2007
Mensajes: 120
Antigüedad: 12 años, 6 meses
Puntos: 0
Re: Modificar datos de bd vía web y ordenar

Hola jaronu, gracias por contestar, ahora me dió error en otro línea:

Parse error: parse error, unexpected T_STRING in C:\Archivos de programa\EasyPHP 2.0b1\www\modificado.php on line 27

En la cual tengo:

echo "<FORM ACTION=modificado.php METHOD=post>";

Te explico yo tengo 2 páginas una un formulario y en la otra lo demás, te adjunto el código por si es un tema de que algo está mal distribuido.

Código PHP:

<HTML>

<
form action"modificado.php" method "post">
Pon el nº de Serie para editar:
<
input type "text" name "Serie"><br>
<
input type "submit" name "OK" value "BUSCAR"><br>
</
form></HTML
Código PHP:
<?php

if ($_GET['OK'] == "BUSCAR") {

// coneccion al servidor de bases de datos

$dbh mysql_connect ("localhost""nashua""nashua") or die ('problema conectando porque ' );

// seleccionado la base de datos

mysql_select_db ("nashua");

// preparando la instruccion sql
$Serie $_GET['Serie'];  // Linea agregada
$q "select * from nashua where id = '$Serie'; 

// ejecutando el query select regresa un rowset

$nashua = mysql_query($q , $dbh) or die ( mysql_error() );

// regresando renglon con registro

$reg = mysql_fetch_row($nashua);

// construyendo forma dinamica

echo "
<FORM ACTION=modificado.php METHOD=GET>";

// recordar que strings se encadenan con .

echo "
Modelo<INPUT TYPE=text NAME=Modelo value"".$reg[1]."\"><BR>";
echo 
"Núm Serie<INPUT TYPE=text NAME=Serie value=$reg[2]><BR>";
echo 
"Tapa:<INPUT TYPE=text NAME=Tapa value=$reg[3]><BR>";
echo 
"ADF:<INPUT TYPE=text NAME=ADF value=$reg[4]><BR>";
echo 
"ARDF:<INPUT TYPE=text NAME=ARDF value=$reg[5]><BR>";
echo 
"Duplex:<INPUT TYPE=text NAME=Duplex value=$reg[6]><BR>";
echo 
"By-Pass:<INPUT TYPE=text NAME=ByPass value=$reg[7]><BR>";
echo 
"Mailbox:<INPUT TYPE=text NAME=Mailbox value=$reg[8]><BR>";
echo 
"Bridge:<INPUT TYPE=text NAME=Bridge value=$reg[9]><BR>";
echo 
"Finisher:<INPUT TYPE=text NAME=Finisher value=$reg[10]><BR>";
echo 
"Mesa:<INPUT TYPE=text NAME=Mesa value=$reg[11]><BR>";
echo 
"Casset:<INPUT TYPE=text NAME=Casset value=$reg[12]><BR>";
echo 
"Impresora:<INPUT TYPE=text NAME=Impresora value=$reg[13]><BR>";
echo 
"Lan:<INPUT TYPE=text NAME=Lan value=$reg[14]><BR>";
echo 
"HD:<INPUT TYPE=text NAME=HD value=$reg[15]><BR>";
echo 
"Scanner:<INPUT TYPE=text NAME=Scanner value=$reg[16]><BR>";
echo 
"Fax:<INPUT TYPE=text NAME=Fax value=$reg[17]><BR>";
echo 
"Precio:<INPUT TYPE=text NAME=Precio value=$reg[18]><BR>";


echo 
"<input type=hidden name=Modelo value=$reg[1]>";

echo 
"<INPUT TYPE=submit NAME=OK VALUE=editar><BR>";

echo 
"</FORM>";

};

if (
$_GET['OK'] == "editar")

{

// coneccion al servidor de bases de datos

$dbh=mysql_connect ("localhost""nashua""nashua")

or die (
'problema conectando porque :' mysql_error());

// seleccionado la base de datos

mysql_select_db ("nashua",$dbh);

// preparando la instruccion sql

$q "UPDATE nashua set Modelo='".$Modelo."', Serie=".$Serie.", Tapa=".$Tapa." ADF=".$ADF.", ARDF=".$ARDF.", Duplex=".$Duplex.", ByPass=".$ByPass.",  Mailbox=".Mailbox.", Bridge=".$Bridge.", Finisher=".$Finisher.", Mesa=".$Mesa.", Casset=".$Casset.", Impresora=".$Impresora.", Lan=".$Lan.", HD=".$HD.", Scanner=".$Scanner.", Fax=".$Fax.", Precio=".$Precio.", where Serie=".$Serie;

// ejecutando el query

mysql_query($q$dbh) or die ("problema con query");

// avisando

echo "REGISTRO EDITADO";

};

?>
Me debería mostrar el formulario, de ese registro con los datos que tiene y darme opción a poder modificarlos no ? Y si lo pongo todo en una página?
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 20:45.