Formattazione output txt dopo lettura contenuti

  • Creatore Discussione Creatore Discussione Emix
  • Data di inizio Data di inizio
ma li hai già quei dati nel var_Dump() che hai fatto
hai stampato la $_SESSION ?
PHP:
echo $_SESSION['sconto'];
per esempio
certo che hai fatto un bel casotto con quell'array di sessione
 
ma li hai già quei dati nel var_Dump() che hai fatto
hai stampato la $_SESSION ?
PHP:
echo $_SESSION['sconto'];
per esempio
certo che hai fatto un bel casotto con quell'array di sessione

se metto l'echo non vede nulla... infatti se vedi nel var_dump che ho postato, descrizione e prezzo risultano NULL, ma se io invece di fare emetti scontrino, faccio salva, nel db delle transazioni lo salva correttamente :

Codice:
 ["prezzo848010"]=> NULL ["Descrizione848010"]=> NULL
 
se metto l'echo non vede nulla... infatti se vedi nel var_dump che ho postato, descrizione e prezzo risultano NULL, ma se io invece di fare emetti scontrino, faccio salva, nel db delle transazioni lo salva correttamente :

Codice:
 ["prezzo848010"]=> NULL ["Descrizione848010"]=> NULL

up... non riesco a risolvere....
 
la butto li Ciric non volermi male...
E se per comporre il file txt, leggessimo dal database la transazione usata , passando in sessione il numero della transazione? è fattibile?
se non l'hai ancora provata ... provala
di sicuro è piu semplice che reinterpretare l'array
 
se non l'hai ancora provata ... provala
di sicuro è piu semplice che reinterpretare l'array

c'è solo un problema fondamentalmente... che nel DB ci vanno a finire appena chiudo la transazione... Quindi credo che dovrei fare la stampa in txt non appena "salvo" giusto?
Inoltre per far si che prenda tutto, come posso ciclare il tutto?

La query è facile :

Codice:
SELECT Prezzo,Descrizione FROM Transazioni WHERE Transazioni=$_SESSION['transazione']

Solo che una volta selezionati tutti, come faccio a fargli fare un output per ogni riga che trova?
 
PHP:
<?php

$testo = "
; Esempio di scontrino di vendita 
; -----------------------------------------------------------------

CLEAR                        ;preme il tasto C

CHIAVE REG                   ;conferma che la cassa si trovi in assetto REGistrazione
";
$connect = new mysqli("localhost", "root", "", "database");
$query = "SELECT Prezzo,Descrizione FROM Transazioni WHERE Transazioni=" . $_SESSION['transazione'];
$result = mysqli_query($connect, $query);
if (!$result) {
    die("errore : " . $connect->error);
}
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
    $testo .="
VEND REP=3,PRE={$row['Prezzo']},DES='{$row['Descrizione']}'     ;vendita su reparto con descrizione\n
";
}
?>
 
ciao
piccolo dubbio: dici che non trovi le sessioni, stai usando lo script che ti avevo postato chiamato riassunto.php?
se si devi stampare lo scontrino prima che le sessioni vengano distrutte
PHP:
<?php
//...
if(mysql_query($query)){
				echo "<h3>transazioni salvate</h3>";
				/*QUI stampare*/
				if(isset($_SESSION{session_destroy();}
				$_SESSION['user']=$_POST['operatore'];
				$ok="";
			}else{
				echo "<h3>errore nel db riprova più tardi</h3>";
				$ok="ok";
			}
//...
?>
 
ciao
piccolo dubbio: dici che non trovi le sessioni, stai usando lo script che ti avevo postato chiamato riassunto.php?
se si devi stampare lo scontrino prima che le sessioni vengano distrutte
PHP:
<?php
//...
if(mysql_query($query)){
				echo "<h3>transazioni salvate</h3>";
				/*QUI stampare*/
				if(isset($_SESSION{session_destroy();}
				$_SESSION['user']=$_POST['operatore'];
				$ok="";
			}else{
				echo "<h3>errore nel db riprova più tardi</h3>";
				$ok="ok";
			}
//...
?>

no il fatto è che io ho aggiunto un tasto "emetti scontrino", ma non prende i valori nelle sessioni... Se leggi qualche post più su c'è scritto il codice e le prove che facevamo con Ciric... Ecco perchè io volevo fare che dopo salvate le transazioni, leggevo la transazione passandola in sessione e recuperavo tutte le righe... Chiaramente il sistema del tasto emetti scontrino è più pratico e veloce... ma non si valorizzano le variabili...
 
Allora... ho avuto modo di fare molti test... Innanzitutto ho sistemato il file per emettere lo scontrino, in modo che leggesse dal DB come avevamo pensato noi...
In ogni caso... Ho provato prima inserendolo nello script pre esistente, ma non ottenendo risultati, mi sono passato in sessione la transazione ed ho provato col file singolo..
Stessa medesima cosa... non crea il file e non ci scrive nulla dentro... Ho anche provato a crearlo io, ma non scrive ugualmente... Ho anche provato la query su phpmyadmin ed esce perfetta, per cui c'è qualche errore nel codice... Il codice corretto è questo :

PHP:
<?php
session_start();
?>
<?php 
echo 'La transazione è :' .$_SESSION['transazione'];
$testo = " 
; Esempio di scontrino di vendita  
; ----------------------------------------------------------------- 

CLEAR                        ;preme il tasto C 

CHIAVE REG                   ;conferma che la cassa si trovi in assetto REGistrazione 
"; 
$connect = new mysqli("server", "username", "password", "database"); 
$queryscontrino = "SELECT prezzo,descrizione FROM Transazioni WHERE transazione=" . $_SESSION['transazione']; 
$result = mysqli_query($connect, $queryscontrino); 
if (!$result) { 
    die("errore : " . $connect->error); 
} 
while ($row = $result->fetch_array(MYSQLI_ASSOC)) { 
    $testo .=" 
VEND REP=3,PRE={$row['prezzo']},DES='{$row['descrizione']}'     ;vendita su reparto con descrizione\n 
"; 
} 
echo 'Il prezzo è ' .$row['prezzo'];
echo 'La descrizione è: ' .$row['descrizione'];
$f = fopen("file.txt", "w");
fwrite($f, $testo);
fclose($f);
?>

Come si vede dal testo, mi sono anche stampato a video la sessione per vedere se effettivamente la passasse in sessione ed è corretto... Non crea ne scrive il file... Non è un discorso di permessi perche abbiamo fatto gia altre prove prima di questa ed e sempre funzionato (prima di inserire il ciclo sui prodotti...

EDIT: aggiungo che anche mettendo un echo per stampare le variabili del ciclo dei prodotti, non si vede nulla a video.. Neanche la scritta.. Per cui è come se si intoppa durante il ciclo...
Non appare neanche la scritta echo 'La descrizione è: o l'altra... appare una pagina completamente bianca con scritto il numero della transazione...
 
ciao
non si riesce ad accedere a php.net (vedi anche varie news su google) quindi non posso verificare mysqli che conosco poco.
ma ho un piccolo dubbio (tutto da verificare)
1) parti con lo stile a oggetti $connect = new mysqli("server", "username", "password", "database");
2) passi allo stile procedurale $result = mysqli_query($connect, $queryscontrino);
3) per tornare allo stile a oggetti while ($row = $result->fetch_array(MYSQLI_ASSOC))

non vorrei dire una ca...ta ma non so se si possano mescolare i due stili
 

Discussioni simili