Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    genera .xls via sql query - PHP7

    Ciao,

    ho questo script che interroga il DB e genera un .xls funzionante sotto php5 ma che va in loop in ambiente php7 (file generato che continua a aumentare di dimensione senza mai scaricarsi - download infinito)

    Temo sia dovuto a come php7 interpreta l'array.... lo posto per intero:



    Codice PHP:
      function cleanData(&$str)
      {
        
    $str preg_replace("/\t/""\\t"$str);
        
    $str preg_replace("/\r?\n/""\\n"$str);
        if(
    strstr($str'"')) $str '"' str_replace('"''""'$str) . '"';
      }

      
    // filename for download
      
    $filename "foglio_presenze" date('Ymd') . ".xls";


     
    header("Content-Disposition: attachment; filename=\"$filename\"");
     
    header("Content-Type: application/vnd.ms-excel");


    $flag false;

    $seminarioID $_GET['recordID'];

    mysqli_select_db($tao_conn$database_tao_conn);

    $result mysqli_query($tao_conn,"SELECT seminari.titolo, seminari.datainizio, seminari.datafine, iscrizioni.dataritiro, utenti.cognome, utenti.nome, corsi.titoloCorsi, null as mattina1, null as pomeriggio1, null as mattina2, null as pomeriggio2
    FROM iscrizioni
    LEFT JOIN seminari ON 
    $seminarioID = seminari.idseminari
    LEFT JOIN corsi_has_seminari ON iscrizioni.corsi_idcorsi = corsi_has_seminari.corsi_idcorsi 
    LEFT JOIN utenti ON iscrizioni.utenti_idutenti = utenti.idutenti 
    LEFT JOIN corsi ON iscrizioni.corsi_idcorsi = corsi.idcorsi
    WHERE iscrizioni.dataritiro IS NULL AND iscrizioni.seminari_idseminari = 
    $seminarioID OR iscrizioni.dataritiro IS NULL AND corsi_has_seminari.seminari_idseminari = $seminarioID 
    ORDER BY corsi.titoloCorsi, utenti.cognome"
    ) or die('Query failed!');
      while(
    false !== ($row =  mysqli_fetch_assoc($result))) {
        if(!
    $flag) { 
          echo 
    "Titolo seminario: " .$row['titolo']."\r\n""\r\n";
          echo 
    "Data inizio: " .$row['datainizio']."\r\n";
          echo 
    "Data fine: ".$row['datafine']."\r\n""\r\n"
         
    // display field/column names as first row
         
    $keys array_keys($row);
         
    array_shift($keys);
         
    array_shift($keys);
         
    array_shift($keys);
         
    array_shift($keys);
          echo 
    implode("\t"$keys ) . "\r\n";
          
    $flag true;
        }
        unset(
    $row['titolo']);
        unset(
    $row['datainizio']);
        unset(
    $row['datafine']);
        unset(
    $row['dataritiro']);
        
    array_walk($row__NAMESPACE__ '\cleanData');
        echo 
    implode("\t"array_values($row)) . "\r\n";
      }
      exit; 

  2. #2

    Risolto

    era il !== nel ciclo che funziona in php5 ma non in php7 ...

    Spero possa aiutare altri

    Ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    29
    Significa che per php 7 avrà valore null mentre prima false. per la condizione if php comunque significa sempre non eseguire.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2020 vBulletin Solutions, Inc. All rights reserved.