Foros del Web » Programando para Internet » PHP »

variable con doble valor

Estas en el tema de variable con doble valor en el foro de PHP en Foros del Web. Hola amigos, tengo un campo llamado "radicado23" Lo que hace mi código es que extrae los valores de ese campo fila por fila y los ...
  #1 (permalink)  
Antiguo 30/08/2012, 10:55
 
Fecha de Ingreso: noviembre-2003
Ubicación: Medellín-Colombia
Mensajes: 149
Antigüedad: 21 años
Puntos: 2
variable con doble valor

Hola amigos, tengo un campo llamado "radicado23"

Lo que hace mi código es que extrae los valores de ese campo fila por fila y los imprime mediante la variable $filaid, eso lo hace perfecto y por cada campo imprime los valores tal y como son.

Luego hago un foreach en el cual por cada uno de esos valores creo un archivo html, lo cual tambien se hace bien.

El problema es que a la hora de generar un nombre para ese html le digo que lo llame como $filaid pero en vez de mostrarme el valor que $filaid muestra en el echo (los valores normales del campo) lo que hace es asignar los ids de ese campo por lo que es como si no aceptara el valor normal de $filaid o como si ya tuviera otro valor.

Código PHP:
 $conexion mysql_pconnect('localhost','root','czzz3');
//************************************
$conexion;
//Selecciono mi base de datos en el servidor
 
mysql_select_db('test');
 




$sql="select radicado23 from amigos"
$tama1=1;
$result mysql_query($sql);


function 
toArray($result)
{
        while (
$fila mysql_fetch_array($resultMYSQL_ASSOC))
        {
                
$registros[] = $fila;
        }
        return 
$registros;
}

$vector toArray($result);

 

$images $vector;
 


//$consulta = "SELECT * FROM amigos WHERE num LIKE '%".$numsus."%' ";

    
$resultado=mysql_query($consulta);
    @
$num_resultados=mysql_num_rows($resultado);
    
    for (
$i=0$i<$num_resultados$i++)
    {
    
$fila=mysql_fetch_array($resultado);
    
    
$filaid $fila['radicado23'] ;

    echo 
"<br>$filaid</br>";  

    
$id=$filaid;
    


    
mysql_query($cad);
    echo 
"<br>Ok!</br>";
    }
    
    while(
$row mysql_fetch_assoc($result)){
  
$resultadodel_array[$filaid['radicado23']] = $filaid;
}

 
$tama1 1;

 
 
///////////////////////////
 
 

 
if ($tama1==1)  // .
 
{  
 foreach (
$vector as $filaid => $record) {
 
 
$numsus $filaid;
 
 
 
$archivo "../archivosgenerados/$numsus.html"

header('Content-Disposition: attachment; filename="'.$archivo.'"'); 

$contenido "<table><tr><td>Hola</td></tr></table>"

file_put_contents($archivo$contenido); 
    
    
    }

    

    

Gracias por su colaboración
  #2 (permalink)  
Antiguo 30/08/2012, 13:04
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: variable con doble valor

No sé exactamente qué quieres lograr, creo que tu código podría reducirse mucho.

Pero si tienes $filaid = $fila['radicado23']

cuando haces $resultadodel_array[$filaid['radicado23']] = $filaid;

$filaid['radicado23'] no existiría, pues contiene el valor de $fila['radicado23'] además de que no sé por qué metes en $resultadodel_array en la posición $filaid['radicado23'] todo el contenido de $filaid
  #3 (permalink)  
Antiguo 30/08/2012, 15:10
 
Fecha de Ingreso: noviembre-2003
Ubicación: Medellín-Colombia
Mensajes: 149
Antigüedad: 21 años
Puntos: 2
Respuesta: variable con doble valor

He modificado un poco el código, el problema que observo es que el código se ejecuta pero el foreach por alguna razón solamente obtiene el ultimo valor del ultimo id de dicho campo pero me gustaría que se ejecutara por cada valor y no por el ultimo.

Código PHP:
  $conexion mysql_pconnect('localhost','root','concc');
//************************************
$conexion;
//Selecciono mi base de datos en el servidor
 
mysql_select_db('test');
 



/////
 
$nombre '05001400';
$sql="select radicado23 from amigos"

$result mysql_query($sql);


function 
toArray($result)
{
        while (
$fila mysql_fetch_array($resultMYSQL_ASSOC))
        {
                
$registros[] = $fila;
        }
        return 
$registros;
}

$vector toArray($result);

 
$images $vector;



$consulta "SELECT * FROM amigos WHERE radicado23 LIKE '%".$nombre."%' ";

    
$resultado=mysql_query($consulta);
    @
$num_resultados=mysql_num_rows($resultado);
    
    for (
$i=0$i<$num_resultados$i++)
    {
    
$fila=mysql_fetch_array($resultado);
    
    
$filaid $fila['radicado23'] ;

    echo 
"<br>$filaid</br>";

 
 
    
$id=$filaid;
    


    
mysql_query($cad);
    echo 
"<br>Ok!</br>";
    }
    


 


 
 


 foreach (
$vector as $filaid => $record) {
 
 
 
 
//id genera unico archivo con el nombre correcto pero no logro que genere mas archivos de acuerdo al nombre que esta en en campo para cada fila
 
$archivo "../archivosgenerados/$id.html"

header('Content-Disposition: attachment; filename="'.$archivo.'"'); 

$contenido "<table><tr><td>Hola</td></tr></table>"

file_put_contents($archivo$contenido); 
    
    
    } 
  #4 (permalink)  
Antiguo 30/08/2012, 16:18
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: variable con doble valor

Bueno, es que cuando haces

$archivo = "../archivosgenerados/$id.html";

$id nunca cambia, el foreach recorre $vector, pero no extraes ningún valor de ahí.
  #5 (permalink)  
Antiguo 30/08/2012, 17:13
 
Fecha de Ingreso: noviembre-2003
Ubicación: Medellín-Colombia
Mensajes: 149
Antigüedad: 21 años
Puntos: 2
Respuesta: variable con doble valor

voy a tratar de hacerlo convirtiendo los valores de campo en objetos, creo que así podré dar con la solución.

ocp001a

id si cambia

$id=filaid;

en cuanto al foreach del vector, estoy de acuerdo, es inonuo, podría cambiarlo por $fila para declarar el array del foreach de abajo y quedaría igual pero aún así el resultado que obtengo y el problema persisten.
  #6 (permalink)  
Antiguo 30/08/2012, 17:15
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: variable con doble valor

No, no cambia, al menos no donde lo quieres, cambia en for ($i=0; $i<$num_resultados; $i++) pero no en el foreach, por eso se queda con el último valor.
  #7 (permalink)  
Antiguo 30/08/2012, 23:18
 
Fecha de Ingreso: noviembre-2003
Ubicación: Medellín-Colombia
Mensajes: 149
Antigüedad: 21 años
Puntos: 2
Respuesta: variable con doble valor

Ya lo solucioné, deseché el código anterior y cree otro desde cero utilizando ejemplos que ví por ahí asi:

Código PHP:
<?php

$conexión 
mysql_connect("localhost""root""conaeeee");

if (!
$conexión) {
    echo 
"No pudo conectarse a la BD: " mysql_error();
    exit;
}

if (!
mysql_select_db("test")) {
    echo 
"No ha sido posible seleccionar la BD: " mysql_error();
    exit;
}

$sql "SELECT * FROM amigos WHERE num LIKE '%".$numsus."%' ";

$resultado mysql_query($sql);

if (!
$resultado) {
    echo 
"No se pudo ejecutar con exito la consulta ($sql) en la BD: " mysql_error();
    exit;
}

if (
mysql_num_rows($resultado) == 0) {
    echo 
"No se han encontrado filas, nada a imprimir, asi que voy a detenerme.";
    exit;
}

// Mientras exista una fila de datos, colocar esa fila en $fila como un array asociativo
// Nota: Si solo espera una fila, no hay necesidad de usar un bucle
// Nota: Si coloca extract($fila); dentro del siguiente bucle,


while ($tableRow mysql_fetch_assoc($resultado)) { 

    foreach (
$tableRow as $key => $value) { 
      
//  echo $value;
        //echo $tableRow[$key]; 
    
}
    echo 
$tableRow['radicado23']; 
    
$micro $tableRow['radicado23'];
     
$archivo "../archivosgenerados/$micro.html"

header('Content-Disposition: attachment; filename="'.$archivo.'"'); 

$contenido "<table><tr><td>Hola</td></tr></table>"

file_put_contents($archivo$contenido); 
}



?>
de este modo lo que hace el código es lo siguiente:

1. Se conecta a la base de datos

2. Consulta toda una columna de un campo determinado (radicado23).

3. Imprime cada resultado de cada fila.

4. Por cada resultado de cada fila ejecuta una acción que, en este caso, consiste en generar un html cuyo nombre es del campo de cada fila en la columna consultada.

Gracias ocp001a por tu colaboración :)

Etiquetas: doble, html, mysql, registro, sql, variables
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 16:27.