Foros del Web » Programando para Internet » PHP »

Enviar Recorset

Estas en el tema de Enviar Recorset en el foro de PHP en Foros del Web. Hola, En un formulario hago una consulta a una base de datos y obtengo la información, pero ahora esa información no soy capaz de pasarla ...
  #1 (permalink)  
Antiguo 21/07/2003, 13:10
 
Fecha de Ingreso: julio-2003
Mensajes: 463
Antigüedad: 14 años, 5 meses
Puntos: 0
Enviar Recorset

Hola, En un formulario hago una consulta a una base de datos y obtengo la información, pero ahora esa información no soy capaz de pasarla a otro formulario.

Supongamos q hago esto:

mysql_select_db($database_connProyecto, $connProyecto);
$query_Recordset1 ="SELECT * FROM Tabla";
$Recordset1 = mysql_query($query_Recordset1, $connProyecto) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);

Ahora tengo la información en $row_Recordset1 y no consigo enviarla a otro formulario, si alguién tiene alguna idea le agradecería q la comentara.


Un saludo y gracias.
  #2 (permalink)  
Antiguo 21/07/2003, 13:59
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

En $row_Recordset1 solo tienes el array con los campos de un registro. Para pasar el array puedes seguir los pasos del FAQ http://www.forosdelweb.com/showthrea...072#post262072 . Tambien podrias guardar el array en una sesion.

Por cierto, ¿como quieres cargar el otro formualrio? ¿Con una redireccion? ¿Con otro formulario?

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 21/07/2003, 14:53
 
Fecha de Ingreso: julio-2003
Mensajes: 463
Antigüedad: 14 años, 5 meses
Puntos: 0
Voy a intentarlo como me dices, gracias.

Pretendo hacerlo enviandole los datos al otro formulario por el método get.


Un saludo y gracias por tu interés.
  #4 (permalink)  
Antiguo 22/07/2003, 13:23
 
Fecha de Ingreso: julio-2003
Mensajes: 463
Antigüedad: 14 años, 5 meses
Puntos: 0
Hola, lo he hecho como aparece ahi, pero solo consigo acceder al primer valor,¿Cómo accedo a los demás valores del vector?

En el formulario que envia(no me deja ponerlo de otra forma):
function array_envia($array) {

$tmp = serialize($array);
$tmp = urlencode($tmp);

return $tmp;
}



<input type="hidden" name="array" value="<?php echo array_envia($row_Recordset2)?>">

En el formulario que recibe:

function array_recibe($url_array) {
$tmp = stripslashes($url_array);
$tmp = urldecode($tmp);
$tmp = unserialize($tmp);

return $tmp;
}



$array=$_GET ['array' ];
$array=array_recibe($array);

foreach($array as $indice => $valor)
{
echo $array[$indice]."<br>";
}

En ese vector todos los elementos tienen el mismo indice no??
Me explico, si he hecho una consulta a una tabla :

$query_Recordset2 = sprintf("SELECT CODARTICULO FROM articulo_pedidosp WHERE CODPEDIDO_P ='%s'", $colname_Recordset1);
$Recordset2 = mysql_query($query_Recordset2, $connProyecto) or die(mysql_error());
$row_Recordset2 = mysql_fetch_assoc($Recordset2);

Los muestro en ese formulario asi:


do {
?>
<option value="<?php echo $row_Recordset2['CODARTICULO']?> "> <?php echo $row_Recordset2['CODARTICULO']?> </option>
<?php
} while ($row_Recordset2 = mysql_fetch_assoc ($Recordset2));
$rows = mysql_num_rows ($Recordset2);
if($rows > 0) {
mysql_data_seek ($Recordset2, 0);
$row_Recordset2 = mysql_fetch_assoc ($Recordset2);
}
?>

Me muevo al siguiente valor del vector mediante mysql_data_seek($Recordset2, 0);


Pero en el formulario que recibo no sé como, "moverme al siguiente"

Gracias y un saludo

Última edición por dominguez; 22/07/2003 a las 13:26
  #5 (permalink)  
Antiguo 22/07/2003, 14:40
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Es que en $row_Recordset2 solo tienes un registro en cada momento, por eso solo puedes acceder a el. Tendrias que crear un array donde vas guardando todos los registros. Lo puedes hacer con un bucle:
Código PHP:
<?php
$query_Recordset2 
sprintf("SELECT CODARTICULO FROM articulo_pedidosp WHERE CODPEDIDO_P ='%s'"$colname_Recordset1);
$Recordset2 mysql_query($query_Recordset2$connProyecto) or die(mysql_error());
$recordset=array();  //inicializamos el array
while ($row_Recordset2 mysql_fetch_assoc($Recordset2)) {
  
$recordset[]=$row_Recordset2;
}
?>
<input type="hidden" name="array" value="<?php echo array_envia($recordset)?>">
Y luego recibes en $array un array bidimensional, donde $array[0] seria el primer registro, $array[1] el segundo ... y accedes alos campo $array[0]['nombre_campo'].

Por cierto, con mysql_data_seek() no avanzas en el recordset, sino con mysql_fetch_assoc(). Es mas, tal como usas mysql_data_seek(), te vuelves a posicionar en el primer registro del recordset.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 22/07/2003, 14:54
 
Fecha de Ingreso: julio-2003
Mensajes: 463
Antigüedad: 14 años, 5 meses
Puntos: 0
Gracias ya lo he resuelto, he puesto:


<?php
$i=0;
do {
?>
<option value="<?php echo $row_Recordset2['CODARTICULO']; $tabla[$i]=$row_Recordset2['CODARTICULO']?>"><?php echo $row_Recordset2['CODARTICULO']?></option>
<?php
$i++;
} while ($row_Recordset2 = mysql_fetch_assoc($Recordset2));
$rows = mysql_num_rows($Recordset2);
if($rows > 0) {
mysql_data_seek($Recordset2, 0);
$row_Recordset2 = mysql_fetch_assoc($Recordset2);
}
?>



A la vez q los muestro, los voy almacenando y listo

Y luego:

<input type="hidden" name="array" value="<?php echo array_envia($tabla)?>">

Gracias por la idea.

Un saludo
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 00:22.