Foros del Web » Programando para Internet » PHP »

No me edita los registros en la BD

Estas en el tema de No me edita los registros en la BD en el foro de PHP en Foros del Web. Buenas, he creado un formulario para meter links y he hecho que me inserte todos los datos de los links en la BD, pero a ...
  #1 (permalink)  
Antiguo 06/07/2009, 04:41
 
Fecha de Ingreso: septiembre-2003
Mensajes: 70
Antigüedad: 20 años, 6 meses
Puntos: 1
No me edita los registros en la BD

Buenas, he creado un formulario para meter links y he hecho que me inserte todos los datos de los links en la BD, pero a la hora de editarlos por si hay algún fallo o algo que cambiar, no lo consigo. Tengo el siguiente código:

Código PHP:
<? if (isset($_REQUEST['enviar'])) { 

require_once(
'../vars.php');
$_REQUEST['descripcion'] = str_replace("\"""&quot;"$_REQUEST['descripcion']);
$_REQUEST['descripcion'] = str_replace('\'''&%2339;'$_REQUEST['descripcion']);

$query "UPDATE links SET nombre = '$_REQUEST[nombre]', descripcion = '$_REQUEST[descripcion]', categoria = '$_REQUEST[categoria]', archivo = '$_REQUEST[archivo]', enlace = '$_REQUEST[enlace]' WHERE links.id='$_REQUEST[id]'";
    
mysql_query ("$query")
    or die(
'Invalid query: ' mysql_error()); ?>

          Link editado
          
              <? 

else
 {
require_once(
'../vars.php');
$datoslinks mysql_query("SELECT * FROM links WHERE links.id='$_REQUEST[id]'"); 
  while (
$link mysql_fetch_array($datoslinks)) {

?>
Y luego está el formulario en sí donde se ven los datos previamente metidos:

Código:
<form id="anuncio" name="anuncio" method="post" action="noticias_edit.php">
              <table width="100%" border="0" cellspacing="0" cellpadding="0">

                <tr>
                  <td width="15%"><div align="right">T&iacute;tulo: </div></td>
                  <td width="2%">&nbsp;</td>
                  <td width="1" bgcolor="#CCCCCC"><img src="dot.png" width="1" height="1" /></td>
                  <td width="2%">&nbsp;</td>
                  <td width="82%"><label>
                    
                      <div align="left">
                        <input name="titulo" type="text" class="input" value="<? echo $rownoticia['titulo'] ?>" size="118" maxlength="100" />
                      </div>
                      </label></td>
                </tr>
                <tr>
                  <td width="15%"><div align="right"></div></td>
                  <td width="2%">&nbsp;</td>
                  <td width="1" bgcolor="#CCCCCC"><img src="dot.png" width="1" height="1" /></td>
                  <td width="2%">&nbsp;</td>
                  <td width="82%">&nbsp;</td>
                </tr>
                <tr>
                  <td width="15%"><div align="right">Texto:</div></td>
                  <td width="2%">&nbsp;</td>
                  <td width="1" bgcolor="#CCCCCC"><img src="dot.png" width="1" height="1" /></td>
                  <td width="2%">&nbsp;</td>
                  <td width="82%"><label>
                    
                      <div align="left">
                        <textarea name="texto" cols="115" rows="20" class="input"><? echo $rownoticia['texto'] ?></textarea>
                      </div>
                      </label></td>
                </tr>
                <tr>
                  <td width="15%"><div align="right"></div></td>
                  <td width="2%">&nbsp;</td>
                  <td width="1" bgcolor="#CCCCCC"><img src="dot.png" width="1" height="1" /></td>
                  <td width="2%">&nbsp;</td>
                  <td width="82%">&nbsp;</td>
                </tr>
                <tr>
                  <td><div align="right">Foto: </div></td>
                  <td>&nbsp;</td>
                  <td bgcolor="#CCCCCC"><img src="dot.png" width="1" height="1" /></td>
                  <td>&nbsp;</td>
                  <td><label>
                      <div align="left">
                        <input name="foto" type="text" class="input" id="foto" value="<? echo $rownoticia['foto'] ?>" size="118" maxlength="75" />
                      </div>
                    </label></td>
                </tr>
                <tr>
                  <td width="15%"><div align="right"></div></td>
                  <td width="2%">&nbsp;</td>
                  <td width="1" bgcolor="#CCCCCC"><img src="dot.png" width="1" height="1" /></td>
                  <td width="2%">&nbsp;</td>
                  <td width="82%">&nbsp;</td>
                </tr>
                <tr>
                  <td width="15%"><div align="right"></div></td>
                  <td width="2%">&nbsp;</td>
                  <td width="1" bgcolor="#CCCCCC"><img src="dot.png" width="1" height="1" /></td>
                  <td width="2%">&nbsp;</td>
                  <td width="82%"><div align="center"><a href="pupload.php" target="_blank">Gestor de Subidas </a></div></td>
                </tr>
                <tr>
                  <td width="15%"><div align="right"></div></td>
                  <td width="2%">&nbsp;</td>
                  <td width="1" bgcolor="#CCCCCC"><img src="dot.png" width="1" height="1" /></td>
                  <td width="2%">&nbsp;</td>
                  <td width="82%">&nbsp;</td>
                </tr>
                <tr>
                  <td><div align="right">Fuente: </div></td>
                  <td>&nbsp;</td>
                  <td bgcolor="#CCCCCC"><img src="dot.png" width="1" height="1" /></td>
                  <td>&nbsp;</td>
                  <td><label>
                      <div align="left">
                        <input name="fuentenombre" type="text" class="input" id="fuentenombre" value="<? echo $rownoticia['fuentenombre'] ?>" size="118" maxlength="100" />
                      </div>
                    </label></td>
                </tr>
                <tr>
             <td width="15%"><div align="right"></div></td>
                  <td width="2%">&nbsp;</td>
                  <td width="1" bgcolor="#CCCCCC"><img src="dot.png" width="1" height="1" /></td>
                  <td width="2%">&nbsp;</td>
                  <td width="82%">&nbsp;</td>
                </tr>
                <tr>
                  <td><div align="right">URL Fuente : </div></td>
                  <td>&nbsp;</td>
                  <td bgcolor="#CCCCCC"><img src="dot.png" width="1" height="1" /></td>
                  <td>&nbsp;</td>
                  <td><label>
                      <div align="left">
                        <input name="fuenteurl" type="text" class="input" id="fuenteurl" value="<? echo $rownoticia['fuenteurl'] ?>" size="118" maxlength="100" />
                      </div>
                    </label></td>
                </tr>
                <tr>
             <td width="15%"><div align="right"></div></td>
                  <td width="2%">&nbsp;</td>
                  <td width="1" bgcolor="#CCCCCC"><img src="dot.png" width="1" height="1" /></td>
                  <td width="2%">&nbsp;</td>
                  <td width="82%">&nbsp;</td>
                </tr>
                <tr>
                  <td><div align="right">Autor : </div></td>
                  <td>&nbsp;</td>
                  <td bgcolor="#CCCCCC"><img src="dot.png" width="1" height="1" /></td>
                  <td>&nbsp;</td>
                  <td><label>
                      <div align="left">
                        <input name="autor" type="text" class="input" id="autor" value="<? echo $rownoticia['autor'] ?>" size="118" maxlength="100" />
                      </div>
                    </label></td>
                </tr>
                <tr>
                <td width="15%"><div align="right"></div></td>
                  <td width="2%">&nbsp;</td>
                  <td width="1" bgcolor="#CCCCCC"><img src="dot.png" width="1" height="1" /></td>
                  <td width="2%">&nbsp;</td>
                  <td width="82%">&nbsp;</td>
                </tr>
                <tr>
                  <td width="15%"><div align="right"></div></td>
                  <td width="2%">&nbsp;</td>
                  <td width="1" bgcolor="#CCCCCC"><img src="dot.png" width="1" height="1" /></td>
                  <td width="2%">&nbsp;</td>
                  <td width="82%"><input name="id" type="hidden" id="id" value="<? echo $rownoticia['id'] ?>" /></td>
                </tr>
                <tr>
                  <td width="15%"><div align="right"></div></td>
                  <td width="2%">&nbsp;</td>
                  <td width="1" bgcolor="#CCCCCC"><img src="dot.png" width="1" height="1" /></td>
                  <td width="2%">&nbsp;</td>
                  <td width="82%"><label>
                    <div align="center">
                      <input name="enviar" type="submit" class="input" value="Enviar" />
                      </div>
                  </label></td>
                </tr>
              </table>
                </form>
				           <? } } ?>
No me da ningún error y parece que lo ha editado bien, pero cuando lo miro el registro es el antiguo. ¿Alguna idea de pq no me edita bien?
__________________
Salu2
  #2 (permalink)  
Antiguo 06/07/2009, 05:58
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: No me edita los registros en la BD

Te recomiendo que uses $_POST pot $_REQUEST

Y verifica las variables antes de operar con ellas

echo $_REQUEST["Nombre"]

Perdona que edite el mensage esto medio

Última edición por gjx2; 06/07/2009 a las 06:11
  #3 (permalink)  
Antiguo 06/07/2009, 06:23
 
Fecha de Ingreso: septiembre-2003
Mensajes: 70
Antigüedad: 20 años, 6 meses
Puntos: 1
Respuesta: No me edita los registros en la BD

Si cambio los $_REQUEST por $_POST no me muestra nada de nada, ni siquera los formularios vacios.

Pero la cuestión es que todo funciona, me muestra todo bien excepto que al darle al botón editar, me dice que lo ha editado, pero en realidad no ha hecho nada.
__________________
Salu2
  #4 (permalink)  
Antiguo 06/07/2009, 06:38
Avatar de martin0341  
Fecha de Ingreso: septiembre-2006
Ubicación: Rosario - Santa Fe
Mensajes: 296
Antigüedad: 17 años, 7 meses
Puntos: 8
Respuesta: No me edita los registros en la BD

podes hacer un echo $query para ver que problema hay en la consulta.
  #5 (permalink)  
Antiguo 06/07/2009, 07:26
 
Fecha de Ingreso: septiembre-2003
Mensajes: 70
Antigüedad: 20 años, 6 meses
Puntos: 1
Respuesta: No me edita los registros en la BD

En la consulta parece que no hay ningún fallo, todos se muestran bien. Es al editar los datos que me muestras y enviar los datos cuando al volver a ellos no se ha editado nada, y por más que miro no hay nada que me indique que hay algo mal... no me da ningún fallo...
__________________
Salu2
  #6 (permalink)  
Antiguo 06/07/2009, 07:32
Avatar de martin0341  
Fecha de Ingreso: septiembre-2006
Ubicación: Rosario - Santa Fe
Mensajes: 296
Antigüedad: 17 años, 7 meses
Puntos: 8
Respuesta: No me edita los registros en la BD

Código PHP:
<? if (isset($_REQUEST['enviar'])) { 

require_once(
'../vars.php');
$_REQUEST['descripcion'] = str_replace("\"""&quot;"$_REQUEST['descripcion']);
$_REQUEST['descripcion'] = str_replace('\'''&%2339;'$_REQUEST['descripcion']);

$query "UPDATE links SET nombre = '$_REQUEST[nombre]', descripcion = '$_REQUEST[descripcion]', categoria = '$_REQUEST[categoria]', archivo = '$_REQUEST[archivo]', enlace = '$_REQUEST[enlace]' WHERE links.id='$_REQUEST[id]'";
    
mysql_query ("$query")
    or die(
'Invalid query: ' mysql_error()); ?>

          Link editado
          
              <? 

else
 {
require_once(
'../vars.php');
$datoslinks mysql_query("SELECT * FROM links WHERE links.id='$_REQUEST[id]'"); 
  while (
$link mysql_fetch_array($datoslinks)) {

?>
quiero ver que sale en
$query = "UPDATE links SET nombre = '$_REQUEST[nombre]', descripcion = '$_REQUEST[descripcion]', categoria = '$_REQUEST[categoria]', archivo = '$_REQUEST[archivo]', enlace = '$_REQUEST[enlace]' WHERE links.id='$_REQUEST[id]'";
por eso si podes hace un echo de esa variable para ver si no hay un error de sintaxis, ya que no te esta haciendo el update lo mas seguro que haya algun error que se nos esta escapando.
  #7 (permalink)  
Antiguo 06/07/2009, 07:46
 
Fecha de Ingreso: septiembre-2003
Mensajes: 70
Antigüedad: 20 años, 6 meses
Puntos: 1
Respuesta: No me edita los registros en la BD

Pues acabo de hacerlo y no muestra nada.... supongo que te referías a esto:

$query = "UPDATE links SET nombre = '$_REQUEST[nombre]', descripcion = '$_REQUEST[descripcion]', categoria = '$_REQUEST[categoria]', archivo = '$_REQUEST[archivo]', enlace = '$_REQUEST[enlace]' WHERE links.id='$_REQUEST[id]'";
echo $query;
__________________
Salu2

Última edición por Freeddie; 06/07/2009 a las 07:51
  #8 (permalink)  
Antiguo 06/07/2009, 08:02
 
Fecha de Ingreso: junio-2009
Mensajes: 128
Antigüedad: 14 años, 10 meses
Puntos: 5
De acuerdo Respuesta: No me edita los registros en la BD

quieres decir que al poner

echo $query;

no te muestra nada?, entonces ni siquiera está entrando a esa parte del código, por lo que la consulta no se está ejecutando y no está modificandose nada en la BD, te recomiendo cambies los request, por POST para empezar.

verificaste la conexión a la BD??? Me imagino que la tienes en

require_once('../vars.php');

otra cosa también:
Código PHP:
$query "UPDATE links SET nombre = '$_REQUEST[nombre]', descripcion = '$_REQUEST[descripcion]', categoria = '$_REQUEST[categoria]', archivo = '$_REQUEST[archivo]', enlace = '$_REQUEST[enlace]' WHERE links.id='$_REQUEST[id]'";
    
mysql_query ("$query") ---- quitale las comillas
    or die(
'Invalid query: ' mysql_error()); ?> 
Saludos
  #9 (permalink)  
Antiguo 06/07/2009, 08:08
 
Fecha de Ingreso: septiembre-2003
Mensajes: 70
Antigüedad: 20 años, 6 meses
Puntos: 1
Respuesta: No me edita los registros en la BD

Sip, la conexion está verificada porque los demás echos del html sí me muestran lo datos que están en la BD.

He cambiado los Request del $query por POST y por ahora sigue igual todo, también he kitado las comillas. Gracias por el tip. ;)

Ahora está así:

Código PHP:
$query "UPDATE links SET nombre = '$_POST[nombre]', descripcion = '$_POST[descripcion]', categoria = '$_POST[categoria]', archivo = '$_POST[archivo]', enlace = '$_POST[enlace]' WHERE links.id='$_POST[id]'";
mysql_query ($query)
    or die(
'Invalid query: ' mysql_error()); ?> 
__________________
Salu2
  #10 (permalink)  
Antiguo 06/07/2009, 08:28
Avatar de martin0341  
Fecha de Ingreso: septiembre-2006
Ubicación: Rosario - Santa Fe
Mensajes: 296
Antigüedad: 17 años, 7 meses
Puntos: 8
Respuesta: No me edita los registros en la BD

rarisimo, por lo menos al hacer el echo $query tendria que salir UPDATE links SET nombre = .... algo tendria que salir.
a ver:
ejecuta esto:

Código PHP:

<? if (isset($_REQUEST['enviar'])) { 

var_dump($_POST);
require_once(
'../vars.php');
$_REQUEST['descripcion'] = str_replace("\"""&quot;"$_REQUEST['descripcion']);
$_REQUEST['descripcion'] = str_replace('\'''&%2339;'$_REQUEST['descripcion']);

$query "UPDATE links SET nombre = '$_POST[nombre]', descripcion = '$_POST[descripcion]', categoria = '$_POST[categoria]', archivo = '$_POST[archivo]', enlace = '$_POST[enlace]' WHERE links.id='$_POST[id]'";
echo 
$query;
/*
mysql_query ($query)
    or die('Invalid query: ' . mysql_error());
    mysql_query ("$query")
    or die('Invalid query: ' . mysql_error()); ?>

          Link editado
*/          
              
<? 

else
 {
require_once(
'../vars.php');
$datoslinks mysql_query("SELECT * FROM links WHERE links.id='$_REQUEST[id]'"); 
  while (
$link mysql_fetch_array($datoslinks)) {

?>
con eso conseguimos ver que trae la variable $_POST y que sale en el echo $query.

Mostra la salida del navedor por favor.

Edito porque no lei antes lo q puso KrowMx, es cierto quizas no esta entrando al if, proba sacar el $_REQUEST por $_POST o hace un var_dump($_POST) antes del if para que datos esta trayendo.

Nos contas que paso.

Última edición por martin0341; 06/07/2009 a las 08:31 Razón: no lei lo de KrowMx
  #11 (permalink)  
Antiguo 06/07/2009, 08:41
 
Fecha de Ingreso: septiembre-2003
Mensajes: 70
Antigüedad: 20 años, 6 meses
Puntos: 1
Respuesta: No me edita los registros en la BD

Vale, esto es lo que me sale:

__________________
Salu2

Última edición por Freeddie; 06/07/2009 a las 08:55
  #12 (permalink)  
Antiguo 06/07/2009, 08:48
Avatar de martin0341  
Fecha de Ingreso: septiembre-2006
Ubicación: Rosario - Santa Fe
Mensajes: 296
Antigüedad: 17 años, 7 meses
Puntos: 8
Respuesta: No me edita los registros en la BD

a ver si entiendo, cuando le doy editar me manda a una pagina que se llama noticias_edit.php donde supuestamente esta el codigo que esta trayendo problemas, o no??
Por que de ser asi la salida que pusiste es de la pagina links_edit_pruebas.php y esa no nos va a dar demasiada informacion.
  #13 (permalink)  
Antiguo 06/07/2009, 08:53
 
Fecha de Ingreso: septiembre-2003
Mensajes: 70
Antigüedad: 20 años, 6 meses
Puntos: 1
Respuesta: No me edita los registros en la BD

Cita:
Iniciado por martin0341 Ver Mensaje
a ver si entiendo, cuando le doy editar me manda a una pagina que se llama noticias_edit.php donde supuestamente esta el codigo que esta trayendo problemas, o no??
Por que de ser asi la salida que pusiste es de la pagina links_edit_pruebas.php y esa no nos va a dar demasiada informacion.
Lo siento, se me ha ido la pinza. Estoy haciendo veinte cosas a la vez, me dice lo siguiente:

array(6) { ["nombre"]=> string(7) "Prueba1" ["descripcion"]=> string(57) "Esto es una prueba para la sección links la mar de chachi" ["categoria"]=> string(0) "" ["archivo"]=> string(14) "BNTV600x90.jpg" ["enlace"]=> string(23) "http://www.metalcry.com" ["enviar"]=> string(6) "Enviar" }

Ahora pongo la imagen correcta arriba.

Por cierto, he cambiado el REQUEST del if por un POST.
__________________
Salu2
  #14 (permalink)  
Antiguo 06/07/2009, 09:00
Avatar de martin0341  
Fecha de Ingreso: septiembre-2006
Ubicación: Rosario - Santa Fe
Mensajes: 296
Antigüedad: 17 años, 7 meses
Puntos: 8
Respuesta: No me edita los registros en la BD

en categoria no sale nada pq viene vacia esa variable...
ahora deberia entrar al if si lo cambiaste por $_POST pq la variable $_POST[enviar] existe.

Esperamos el echo $query;
  #15 (permalink)  
Antiguo 06/07/2009, 09:09
 
Fecha de Ingreso: septiembre-2003
Mensajes: 70
Antigüedad: 20 años, 6 meses
Puntos: 1
Respuesta: No me edita los registros en la BD

Ok. El echo $query suelta esto ahora:

UPDATE links SET nombre = 'Prueba1', descripcion = 'Esto es una prueba para la sección links la mar de chachi', categoria = '', archivo = 'BNTV600x90.jpg', enlace = 'http://www.metalcry.com' WHERE links.id=''
__________________
Salu2
  #16 (permalink)  
Antiguo 06/07/2009, 09:39
Avatar de martin0341  
Fecha de Ingreso: septiembre-2006
Ubicación: Rosario - Santa Fe
Mensajes: 296
Antigüedad: 17 años, 7 meses
Puntos: 8
Respuesta: No me edita los registros en la BD

el problema esta en el where id= <b>NADA!!!!!</b>
no estas enviando el id de la noticia por post, mandalo por post como un campo hidden y ya se soluciona.

Nos contas q paso
  #17 (permalink)  
Antiguo 06/07/2009, 09:51
 
Fecha de Ingreso: septiembre-2003
Mensajes: 70
Antigüedad: 20 años, 6 meses
Puntos: 1
Respuesta: No me edita los registros en la BD

Ajam, o sea que no me coge la id para que edite los campos que están guardados. Pero no entiendo exactamente que me quieres decir con lo del campo hidden. ¿Algo así?:

<input type=hidden id='$_POST[id]'>

Y x cierto, ¿da igual donde lo coloque?
__________________
Salu2
  #18 (permalink)  
Antiguo 06/07/2009, 10:16
Avatar de martin0341  
Fecha de Ingreso: septiembre-2006
Ubicación: Rosario - Santa Fe
Mensajes: 296
Antigüedad: 17 años, 7 meses
Puntos: 8
Respuesta: No me edita los registros en la BD

tendrias que pasarle el id a la pagina <b>noticias_edit.php</b> para que sepa cual id debe modificar.
Por lo tanto tendrias que mandarle a esa pagina el id de la noticia que estas queriendo modificar, eso lo podrias hacer creando un campo typo hidden dentro del form donde el action llama a la pagina <b>noticias_edit.php</b> y seria algo asi
Código PHP:
<input type="hidden" name="id" value="<?php echo  $rownoticia['id']  ?>" >
Espero se entienda.
A ver como te va.
  #19 (permalink)  
Antiguo 06/07/2009, 10:24
 
Fecha de Ingreso: septiembre-2003
Mensajes: 70
Antigüedad: 20 años, 6 meses
Puntos: 1
Respuesta: No me edita los registros en la BD

Ahhhh, ok. Pues acabo de hacerlo y ya funciona. ¡Muchas gracias!
__________________
Salu2
  #20 (permalink)  
Antiguo 06/07/2009, 10:29
Avatar de martin0341  
Fecha de Ingreso: septiembre-2006
Ubicación: Rosario - Santa Fe
Mensajes: 296
Antigüedad: 17 años, 7 meses
Puntos: 8
Respuesta: No me edita los registros en la BD

de nada, saludos!
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 03:43.