Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] se puede hacer esto

Estas en el tema de se puede hacer esto en el foro de PHP en Foros del Web. Hola amigos estoy tratando de actualizar un conjunto de datos de la base datos me no me hace nada no me arroga error pero tampoco ...
  #1 (permalink)  
Antiguo 09/06/2015, 18:46
Avatar de luissquadrito  
Fecha de Ingreso: agosto-2012
Ubicación: en algun lugar de chile
Mensajes: 119
Antigüedad: 11 años, 7 meses
Puntos: 0
se puede hacer esto

Hola amigos estoy tratando de actualizar un conjunto de datos de la base datos me no me hace nada no me arroga error pero tampoco me actualiza los registros envio el codigo, de ante mano muchas gracias

Código PHP:
<?php
include("conexion.php");
$carpetas=$_POST["txtdes"];
    
$numero=$_POST["numero"];
    
$count count($numero);
    for (
$i 0$i<$count$i++) {
       
mysql_select_db("archivos");
$sSQL6="Update archivos Set carpeta='".$carpetas."' where id='".$numero[$i]."' ";
mysql_query($sSQL6);     
    }
 
    
?>
  #2 (permalink)  
Antiguo 09/06/2015, 19:23
 
Fecha de Ingreso: mayo-2013
Mensajes: 191
Antigüedad: 10 años, 11 meses
Puntos: 10
Respuesta: se puede hacer esto

Hola,
A la primera vista parece todo escrito correcto, entonces me suena que el id al que buscas hacer UPDATE no existe por esto no arroja errores porque la consulta es correcta pero las filas afectadas = 0

Hay una cosa que no entiendo bien ¿el $_POST["numero"] es un array? (porque creo que si, o al menos deberia, dado que basas tu bucle for en el numero de elementos del dicho array)

y me huele que si esto devuelve 0, la consulta ni siquiera se hace porque no empieza la bucle for o si lo hace, no encuentra dicho id

O si esto es un array ¿respecta esto los id-s de la base de datos ?

Puedes intentar poner manualmente el "id" para poder probar ej:

Código PHP:
Ver original
  1. $numero=[1];
  2. //suponiendo que es el 1 el "id" donde quieres probar
  3. //si no cambia el 1 por un id existente

Edito otra vez:
Pensandolo mas, no puedes recibir un array enviado desde javascript por el POST, solo lo recibes como un string
ejemplo:
Cita:
1,2,3,4,5
entonces si este es el caso puedes probar con:
Código PHP:
Ver original
  1. $numero=explode(",",$_POST["numero"]);
De todos modos verifica si recibes bien los id-s a los que quieres hacer UPDATE

Aun asi algo no esta bien porque entonces $carpetas tambien tiene que ser un array

Si lo que quieres es hacer update a una sola fila con el id en el $_POST["numero"] entonces no tiene sentido la bucle for , simplemente haces:

Código PHP:
Ver original
  1. $sSQL6="Update archivos Set carpeta='".$_POST["txtdes"]."' where id='".$_POST["numero"]."';";

Pero aunque esto seria lo correcto tienes otro problema con no securizar las entradas y puedes recibir un ataque de inyección SQL por esto te sugiero emplear PDO (ver PDO en el manual php).

saludos

Última edición por matake; 09/06/2015 a las 20:17
  #3 (permalink)  
Antiguo 10/06/2015, 05:46
Avatar de luissquadrito  
Fecha de Ingreso: agosto-2012
Ubicación: en algun lugar de chile
Mensajes: 119
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: se puede hacer esto

La verdad lo que tengo es esto:

- Hoja1: tengo una lista con cosas de la Bd en cual le agregue un checkbox para hacer el update en la base de datos con el nombre de la una x carpeta a ese grupo de filas que antes el usuario marco los check, entonces lo que hago marco y envio.

- Hoja 2: tengo para recibir los datos con el codigo enviado se le hago un echo me muestra los id´s de los checkbox marcados, entonces al hacer el update no me hace ninguna actualizacion debe ser por que me sale al momento de hacer el echo ej: 123 entonces ese id no existe.

por eso mi pregunta era si eso se podía hacer, por que invente eso o talvez tengo que hacer otra cosa para realizar lo que quiero hacer, la verdad es que estoy atrapado en esto.
  #4 (permalink)  
Antiguo 10/06/2015, 06:03
 
Fecha de Ingreso: mayo-2013
Mensajes: 191
Antigüedad: 10 años, 11 meses
Puntos: 10
Respuesta: se puede hacer esto

¿Pero al final $_POST["numero"] que te devuelve ?
¿ 123... o 1,2,3... ?
Porque si es 123 solo tienes que añadir una coma entre los numeros ( id-s) antes de enviar el post
entonces te servira

Código PHP:
Ver original
  1. $numero=explode(",",$_POST["numero"]);

Última edición por matake; 10/06/2015 a las 06:08
  #5 (permalink)  
Antiguo 10/06/2015, 06:34
Avatar de luissquadrito  
Fecha de Ingreso: agosto-2012
Ubicación: en algun lugar de chile
Mensajes: 119
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: se puede hacer esto

me devulve 123 voy a probar con la coma y te cuento como me va
  #6 (permalink)  
Antiguo 10/06/2015, 06:48
Avatar de luissquadrito  
Fecha de Ingreso: agosto-2012
Ubicación: en algun lugar de chile
Mensajes: 119
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: se puede hacer esto

ahora me sale este error

Código HTML:
Warning: explode() expects parameter 2 to be string, array given in C:\xampp\htdocs\MrknGonzalo\ver2.php on line 4
  #7 (permalink)  
Antiguo 10/06/2015, 07:01
 
Fecha de Ingreso: mayo-2013
Mensajes: 191
Antigüedad: 10 años, 11 meses
Puntos: 10
Respuesta: se puede hacer esto

Entonces tu codigo que enviaste al principio es 100% correcto solo que los id-s que mandas por post no son correctos ... revisa como recoges estos id-s

Aun asi ... no entiendo como recibes un array por post. si me dices que lo que recibes es 123...

Última edición por matake; 10/06/2015 a las 07:24
  #8 (permalink)  
Antiguo 11/06/2015, 05:30
Avatar de luissquadrito  
Fecha de Ingreso: agosto-2012
Ubicación: en algun lugar de chile
Mensajes: 119
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: se puede hacer esto

me resulto adjunto la respuesta para que alguien que este buscando como actualizar un grupo de datos en la base datos mediante checkbox

Código PHP:
<?php
include("conexion.php");
$carpetas=$_POST["txtdes"];
$carpetas1=$_POST["txtdes1"];
$colores=$_POST['colores'];

 
$cantidad count($colores) ; 
    for (
$i=0$i<$cantidad$i++){   

                 
$del_id $colores[$i];  
               
                  
                 
                 
        
$query=mysql_query("update archivos SET carpeta='$carpetas' WHERE  id='$del_id '");   
        
$query=mysql_query("update archivos SET subcarpeta='$carpetas1' WHERE  id='$del_id '");   
    }
 

?>

Etiquetas: mysql, registro, select, sql
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 11:41.