Nueva pregunta

Pregunta:

Fecha: 26-12-2018 02:30:12 (En Español)

Pasar variable array de un PHP a otro PHP[Resuelta]

Hola tengo una pequeña dificulta con un archivo, estoy creando un archivo de impresion pdf y los valores que van dentro del PDF estan en un archivo php llamado informe.php yo quiero sacar el valor array de ese archivo y llevarlo a otro php este es el codigo

<form>
  <h1>Búsqueda por Fecha</h1>


    <b>Fecha comienzo: </b><br/>
    <input type="text" id="start_date" name="start_date" value="" placeholder="mm/dd/yyyy"><br> 
    <b>Fecha final:</b> <br/>
    <input type="text" id="end_date" name="end_date" value="" placeholder="mm/dd/yyyy"><br/>
    <b>Fecha:</b><br/>
    
    <input type="hidden" id="form_sent" name="form_sent" value="true">
    <input type="submit" id="btn_submit" value="Enviar"><br/>
    
</form>


<hr>

<?php if (isset($_GET['form_sent']) && $_GET['form_sent'] == "true") {?>

<?php include('conexion.php');?>
<?php
    $SDATE = $_GET['start_date'];
    $SSDATE = explode('/', $SDATE);
    $START_DATE = $SSDATE[2]."-".$SSDATE[0]."-".$SSDATE[1];
   // echo('<h3>'.$START_DATE.'</h3>');
    
    $EDATE = $_GET['end_date'];
    $EEDATE = explode('/', $EDATE);
    $END_DATE = $EEDATE[2]."-".$EEDATE[0]."-".$EEDATE[1];
    //echo('<h3>'.$END_DATE.'</h3>');
    
    
    //SELECT * FROM test WHERE course_date BETWEEN '2015-01-09' AND '2015-10-01'
    
  $strsql = "SELECT * FROM servicios WHERE fecha BETWEEN '$START_DATE' AND '$END_DATE'";
  $rs = mysqli_query($conexion,$strsql) or die(mysql_error());
  $row = mysqli_fetch_assoc($rs);
  $total_rows = mysqli_num_rows($rs);
 
?>


<a href="pdf.php?variable.=<?php echo($row['origen']); ?>"><img src="img/print.jpg" style="width: 5%; height: 5%; float: right; border: 1px solid; border-radius: 5px; margin: 0px 40px 30px"></a>



<table width="800" border="0" cellspacing="0" cellpadding="2">
    <tr>
        <td><b>Origen</b></td>
        <td><b>Componente</b></td>
        <td><b>Componente</b></td>
        <td><b>Componente</b></td>
        <td><b>Componente</b></td>
        <td><b>destino</b></td> 
        <td><b>Hora</b></td>
        <td><b>Fecha</b></td>
    </tr>

<?php if ($total_rows > 0) {
        do {
?>
    <tr>
        <td><?php echo($row['origen']); ?></td>
        <td><?php echo($row['globulos']); ?></td>
        <td><?php echo($row['plaquetas']); ?></td>
        <td><?php echo($row['plasma']); ?></td>
        <td><?php echo($row['materiales']); ?></td>
        <td><?php echo($row['destino']); ?></td>
        <td><?php echo($row['hora']); ?></td>
        <td><?php echo($row['fecha']); ?></td>
    </tr>
<?php
        } while ( $row = mysqli_fetch_assoc($rs) );
        mysqli_free_result($rs);
    } else {
?>
    <tr>
        <td colspan="3">No data found.</td>
    </tr>

<?php } ?>
</table>
<?php } ?>




Como pueden ver en el codigo yo hago una consulta a la base de datos segun cierta fecha y esa consulta la guardo en la variable
$row = mysqli_fetch_assoc($rs);
ahora lo que yo quiero es poder pasar los valores de la variable $row al archivo PDF.php para asi poder crear in reporte de impresion actualmente lo estoy haciendo de esta manera
<a href="pdf.php?variable.=<?php echo($row['origen']); ?>"><img src="img/print.jpg" style="width: 5%; height: 5%; float: right; border: 1px solid; border-radius: 5px; margin: 0px 40px 30px"></a>


en PDF.PHP lo llamo de esta manera

<?php
	
	echo "el mensaje es ".$_GET['variable'];

?>

pero de esta manera solo voy a llevar solo 1 valor y yo queiro pasar todos los valores almacenados puesto que es un array y hay mas de un valor en esa consulta

mi Pregunta seria como puedo pasar la varibale Array de informe.php a PDF.php con todos los datos almacenados de la consulta

gracias quedo atento a sus respuestas.
Etiquetas: MySQL - PHP - PHP Avanzado Votos: 0 - Respuestas: 9 - Vistas: 13 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  •  
      1  
     
    Fecha: 26-12-2018 03:06:59 Buen Dia.
    Encontre esto que te puede servir Pasar array por GET

    Con que generas el PDF. porque podrias hacer la misma consulta en antes de generar el pdf y ya tendrias los datos ahi.
    espero te sirva algo de esto.
    saludos.
      Votos: 1 - Link respuesta
     
  • Fecha: 26-12-2018 03:26:12 podrías almacenar temporalmente el array en una variable de sesión y recuperarla en el otro archivo:

    
    $_SESSION['datos'] = $array;//Array que swe utilizará para el informe pdf
    
    


    luego en el otro archivo php:

    
    if(isset($_SESSION['datos']) && is_array($_SESSION['datos'])){
    
    //Ejecutor las acciones si todo esta correcto
    
    }else{
    
    //retorno a la pagina anterior si la variable no existe o no tiene almacenado un array
    
    }
    


    puedes hacer otras validaciones como si el array no esta vacio, entre otras.

    Saludos
      Votos: 1 - Link respuesta
     
  • Fecha: 26-12-2018 04:58:55 Hola carlos estoy haciendo el paso como dices y funciona el envio de la variable pero solo esta pasando un dato deberia ser una serie d datos esta es la consulta y la creacion de la variable de session

      $strsql = "SELECT * FROM servicios WHERE fecha BETWEEN '$START_DATE' AND '$END_DATE'";
      $rs = mysqli_query($conexion,$strsql) or die(mysql_error());
      $row = mysqli_fetch_assoc($rs);
      $total_rows = mysqli_num_rows($rs);
    
      $_SESSION['data']=$row;
    
    


    de este modo genero la variable de session

    y este es el codigo de pdf.php

      <?php 
    session_start();
    $pdf=$_SESSION['data'];
    
    if(isset($_SESSION['data']) && is_array($_SESSION['data'])){
    	print($pdf['origen']);
    }else{
    //retorno a la pagina anterior si la variable no existe o no tiene almacenado un array
    }
    
    ?>
    


    osea funciona el envio de la variable por SESSION si me da el valor que pido pero solo 1 se supone que esa variable tiene una serie de valores pero solo me da 1 cual podria ser el problema no se si es porque estoy imprimiendo la variable mal?
      Votos: 0 - Link respuesta
     
  • Fecha: 26-12-2018 05:17:21 prueba con mysqli_fetch_array y nos cuentas   Votos: 1 - Link respuesta
     
  • Fecha: 26-12-2018 08:39:44 momento porq no se donde meter el mysqli_fetch_array los estoy colocando en el archivo que recibe y no funciona en que parte dices tu que lo haga?   Votos: 0 - Link respuesta
     
  • Fecha: 26-12-2018 09:01:29 Esi va en el result6ado de tu query:

    $row = mysqli_fetch_array($rs);
      Votos: 1 - Link respuesta
     
  • Fecha: 26-12-2018 09:31:35 listo lo hice y el resultado es el mismo que con mysqli_fetch_assoc sigue enviando solo un valor por la variable   Votos: 0 - Link respuesta
     
  • Fecha: 26-12-2018 11:36:50 Hola Raul gracias por el dato estuvo bueno primera ves que trabajo con serialize use una funcion pero de al serializar y des-serializar en el otro archivo lleva varios datos no todos pero los lleva en un orden que no puedo hacer nada para cambiar ese orden me da unos valores en corchetes y en vertical

    repito primera vez que uso serialize no se si lo estoy haciendo bien
      Votos: 0 - Link respuesta
     
  • Fecha: 28-12-2018 08:36:04 gracias a todos por sus aporte ya logre realizar la impresion de los datos a la final cambie el codigo y me fui por un script y una boton de impresion y lo que es mejor todo desde el mismo Archivo

    este es el codigo

       <form>
      <h1>Búsqueda por Fecha</h1>
    
    
        <b>Fecha comienzo: </b><br/>
        <input type="text" id="start_date" name="start_date" value="" placeholder="mm/dd/yyyy"><br> 
        <b>Fecha final:</b> <br/>
        <input type="text" id="end_date" name="end_date" value="" placeholder="mm/dd/yyyy"><br/>
        <b>Fecha:</b><br/>
        
        <input type="hidden" id="form_sent" name="form_sent" value="true">
        <input type="submit" id="btn_submit" value="Enviar"><br/>
        
    </form>
    
    
    <hr>
    
    <?php if (isset($_GET['form_sent']) && $_GET['form_sent'] == "true") {?>
    
    <?php include('conexion.php');?>
    <?php
        $SDATE = $_GET['start_date'];
        $SSDATE = explode('/', $SDATE);
        $START_DATE = $SSDATE[2]."-".$SSDATE[0]."-".$SSDATE[1];
       // echo('<h3>'.$START_DATE.'</h3>');
        
        $EDATE = $_GET['end_date'];
        $EEDATE = explode('/', $EDATE);
        $END_DATE = $EEDATE[2]."-".$EEDATE[0]."-".$EEDATE[1];
        //echo('<h3>'.$END_DATE.'</h3>');
        
        
      $strsql = "SELECT * FROM servicios WHERE fecha BETWEEN '$START_DATE' AND '$END_DATE'";
      $rs = mysqli_query($conexion,$strsql) or die(mysql_error());
      $row = mysqli_fetch_array($rs);
      $total_rows = mysqli_num_rows($rs);
      
    ?>
    
    
    <div id="areaImprimir">
    <table width="800" border="0" cellspacing="0" cellpadding="2">
        <tr>
            <td><b>Origen</b></td>
            <td><b>Componente</b></td>
            <td><b>Componente</b></td>
            <td><b>Componente</b></td>
            <td><b>Componente</b></td>
            <td><b>destino</b></td> 
            <td><b>Hora</b></td>
            <td><b>Fecha</b></td>
        </tr>
    
    <?php if ($total_rows > 0) {
            do {
    ?>
        <tr>
            <td><?php echo($row['origen']); ?></td>
            <td><?php echo($row['globulos']); ?></td>
            <td><?php echo($row['plaquetas']); ?></td>
            <td><?php echo($row['plasma']); ?></td>
            <td><?php echo($row['materiales']); ?></td>
            <td><?php echo($row['destino']); ?></td>
            <td><?php echo($row['hora']); ?></td>
            <td><?php echo($row['fecha']); ?></td>
        </tr>
    <?php
            } while ( $row = mysqli_fetch_assoc($rs) );
            mysqli_free_result($rs);
        } else {
    ?>
        <tr>
            <td colspan="3">No data found.</td>
        </tr>
    
    <?php } ?>
    </table>
    <?php } ?>
    </div>
        
    <div>
            
    
            <script type="text/javascript">
      
      function printDiv(areaImprimir) {
         var contenido= document.getElementById(areaImprimir).innerHTML;
         var contenidoOriginal= document.body.innerHTML;
    
         document.body.innerHTML = contenido;
    
         window.print();
    
         document.body.innerHTML = contenidoOriginal;
    }
    
    </script>
    
    <input type="button" onclick="printDiv('areaImprimir')" value="imprimir div" />
    
    



    es el mismo archivo que el anterior solo agregue este nuevo codigo

    script:

       <script type="text/javascript">
      
      function printDiv(areaImprimir) {
         var contenido= document.getElementById(areaImprimir).innerHTML;
         var contenidoOriginal= document.body.innerHTML;
    
         document.body.innerHTML = contenido;
    
         window.print();
    
         document.body.innerHTML = contenidoOriginal;
    }
    
    </script>
    
    aqui le digo que voy a imprimir lo que este dentro de un DIV pero no culaquier DIV si no un DIV en especifico que en este ejemplo fue <div id="areaImprimir">
    
    y luego el codigo del boton de impresion que imprime solo el div "areaImprimir" por la funcion onclick="printDiv('areaImprimir')" y listo
    
    
    


         <input type="button" onclick="printDiv('areaImprimir')" value="imprimir div" />
    



    gracias a todos por sus aportes
      Votos: 1 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com