Foros del Web » Programando para Internet » PHP »

es posible este while ?

Estas en el tema de es posible este while ? en el foro de PHP en Foros del Web. $contador = 1; $datos = 'id,'; $datos = "'".$id."',"; While ($contador <= 8) { $las_claves = 'claves'.$contador; if (isset($_GET['$las_claves'])){ $datos = $datos.$las_claves; $dato = $dato."'".$_GET['$las_claves']."'"; ...
  #1 (permalink)  
Antiguo 12/05/2008, 19:09
 
Fecha de Ingreso: noviembre-2002
Mensajes: 746
Antigüedad: 21 años, 5 meses
Puntos: 6
es posible este while ?

$contador = 1;
$datos = 'id,';
$datos = "'".$id."',";
While ($contador <= 8) {
$las_claves = 'claves'.$contador;
if (isset($_GET['$las_claves'])){
$datos = $datos.$las_claves;
$dato = $dato."'".$_GET['$las_claves']."'";
$contador++;
}
}

$consulta = "INSERT INTO inmuebles_claves ($datos) VALUES ($dato)";


intento recuperar todas las variables "claves" pueden haber hasta 8, "clave1", "clave2" etc. etc.. pero no tiene por que correlativo, puede no existir la clave2 y si la clave 6, por eso hago el while.

el caso es que me da error de servidor y lo que es seguro es que el fallo esta en el while

Ven algo mal?

Gracias a todos.
  #2 (permalink)  
Antiguo 12/05/2008, 19:25
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Re: es posible este while ?

asi seria...

Código PHP:
$contador 1;
    
$datos 'id,';
    
$datos "'" $id"'," // $id, de donde lo tomas???
    
    
while ($contador <= 8) {
        
$las_claves 'claves'.$contador;
        
        
        
// aqui... si estas evaluando $las_claves
        // deberias quitarle las comillas al
        // indice que usas para _GET
        // ....  $_GET[$las_claves]
        # con '$comillas' no evaluaria na'
        
if (isset($_GET['$las_claves'])){
            
$datos $datos.$las_claves;
            
$dato $dato "'".$_GET['$las_claves']."'";
            
            
$contador++; // esta linea va mal...
        
}
        
        
// aki debe ir el $contador++
        // sino, nunca saldrias del ciclo...
    

ten mucha atencion con los ciclos, son delicados...
tambien con tu manera de evaluar $variables


si solo usas una $variable NO concatenada usala a pelo... sin comillas, algunos hacen esto...

echo "$variable"; // y NO esta mal, pero no tiene sentido

ya que SI se evalua, porke son comillas dobles... pero al ser una variable individual no tienen caso, las comillas... solo son 2 caracteres mas a lo wey...

cuando usas comillas sencillas, no evalua... NADA, de las '$variables' contenidas


mucho ojo con los ciclos, si no haces bien la accion del contador nunca acabaria en realidad...
imaginate si no hay alguna de las variables que intentas buscar en _GET ¿que pasaria??

al tener $contador++; dentro de ese IF que cumple la funcion de verificar tal variable se incrementa.... solo si existe.... ¿y sino??? cuando piensas terminar el bucle... ya que nunca incrementaras el $contador

PDTA: no modifike el codigo, pero comente como deberias hacerlo correctamente... animo!
  #3 (permalink)  
Antiguo 13/05/2008, 06:39
 
Fecha de Ingreso: noviembre-2002
Mensajes: 746
Antigüedad: 21 años, 5 meses
Puntos: 6
Re: es posible este while ?

muchas gracias, voy a probarlo y te cuento

sobre $id, ya viene ya esta definida mas arriba de esta parte, no hay problema con el.


en un rato os digo como me fue
  #4 (permalink)  
Antiguo 13/05/2008, 08:12
 
Fecha de Ingreso: noviembre-2002
Mensajes: 746
Antigüedad: 21 años, 5 meses
Puntos: 6
Re: es posible este while ?

aqui otra vez..

me funciono a la perfeccion,
en el codigo q te pase cometi un error en el segundo $datos debia ser $dato

perfectoooo! con esto me ahorro unas varias decenas de lineas

$contador = 1;
$datos = 'id,';
$dato = "'" . $id. "',";

while ($contador <= 8) {
$las_claves = 'claves'.$contador;
if (isset($_POST[$las_claves])){
$datos = $datos.$las_claves.',';
$dato = $dato . "'".$_POST[$las_claves]."'".',';
}
$contador++;
}

añadi tambien una coma ',' en las variables dato y datos
claro que al final del script el resultado es que sobra una coma, pero esa la elimino facilmente, a no ser que se puede arreglar desde el while.

Gracias, un saludo.
  #5 (permalink)  
Antiguo 13/05/2008, 09:05
 
Fecha de Ingreso: noviembre-2002
Mensajes: 746
Antigüedad: 21 años, 5 meses
Puntos: 6
Re: es posible este while ?

con esta linea queda todo perfecto
$datos = substr ($datos, 0, -1);
$dato = substr ($dato, 0, -1);
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 22:36.