Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione MSI RTX 3060 Ti Gaming X Trio, stile e prestazioni al servizio del gaming
Recensione MSI RTX 3060 Ti Gaming X Trio, stile e prestazioni al servizio del gaming
Abbiamo provato la MSI RTX 3060 Ti Gaming X Trio, scheda video custom al vertice dell'offerta dell'azienda taiwanese. Si tratta di una soluzione leggermente più veloce della Founders Edition, e al tempo stesso scalda meno e produce una minore rumorosità. In bundle c'è una staffa per alleviare il peso sullo slot PCIe.
FRITZ!Box 6580 LTE, il router per chi non è ancora raggiunto dalla fibra
FRITZ!Box 6580 LTE, il router per chi non è ancora raggiunto dalla fibra
Chi non si accontenta delle "saponette" può contare sul router LTE di AVM che non si limita a fornire un semplice hot spot Wi-Fi, ma offre le funzione avanzate tipiche dei prodotti AVM, inclusi il centralino telefonico e il supporto al protocollo DECT
Hasselblad 907X 50C, fascino infinito
Hasselblad 907X 50C, fascino infinito
Hasselblad da nuova vita al Sistema V con un prodotto intelligente, votato al futuro e assolutamente affascinante. Forti limiti in contesti dinamici, ma buona usabilità per still-life, paesaggio e ritratto posato. Qualità fotografica sempre al top.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-11-2020, 22:38   #1
andrea46r
Junior Member
 
Iscritto dal: Nov 2020
Messaggi: 1
[PHP] Problema salvare in sessione contenuto array

Buona sera, premetto che sono alle prime armi e potrebbe anche essere uno "stupido" errore ma non riesco a venirne a capo. Questo è il codice che ho scritto fino ad ora:

-- file ricercacalorie.php --

Codice PHP:
<?php include 'rdatabase.php' ?>
<?php session_start
(); ?>

<?php
.........
..........

if(isset(
$_POST['cerca'])){

    
//     echo "tutto ok!";

    // }else{

    //     echo "qualcosa non va!";
    // }

    
$calorieMin $_POST['calorie_min'];
    
$calorieMax $_POST['calorie_max'];
    
    
    
$calorieMin mysqli_real_escape_string($connessione $calorieMin);
    
$calorieMax mysqli_real_escape_string($connessione $calorieMax);

    
    
$query "SELECT * FROM ricetta WHERE calorie BETWEEN $calorieMin AND $calorieMax";

    
$result mysqli_query($connessione $query);
    
$array_titolo = array();
    
$array_calorie = array();
    if(
$result)
    {
      if(
mysqli_num_rows($result)>0){
        echo 
"<table class='table table-stripped table-hover table-condensed table-bordered'>
                <tr>
                <th>Numero</th>
                <th>Titolo</th>
                <th>Tempo di cottura</th>
                <th>Preparazione</th>
                <th>Numero Proz.</th>
                <th>Tipologia</th>
                <th>Difficoltà</th>
                <th>Ingredienti</th>
                <th>Calorie</th>
                </tr>
        "
;
        while(
$row mysqli_fetch_assoc($result)){
                echo 
"<tr>";
                    echo 
"<td>" $row["id_ricetta"] . "</td>";
                    echo 
"<td>" $row["titolo"] . "</td>";
                    echo 
"<td>" $row["tempo_cottura"] . "</td>";
                    echo 
"<td>" $row["modalita_prep"] . "</td>";
                    echo 
"<td>" $row["n_porzioni"] . "</td>";
                    echo 
"<td>" $row["tipologia"] . "</td>";
                    echo 
"<td>" $row["difficolta"] . "</td>";
                    echo 
"<td>" $row["ingredienti"] . "</td>";
                    echo 
"<td>" $row["calorie"] . "</td>";
                echo 
"</tr>";
                
$ricettaTitolo $row['titolo'];
                
array_push($array_titolo,$ricettaTitolo);
                
$_SESSION['array_titoli'] = $array_titolo;
                
$ricettaCalorie $row['calorie'];
                
array_push($array_calorie,$ricettaCalorie);
                
$_SESSION['array_calorie'] = $array_calorie;
        }
        echo 
"</table>";
    }
    }else{
        
//echo '<script type="text/javascript"> alert("Invio ricetta fallito!") </script>'; //NON FUNGE
        //header('Location: rarea_autore.php');
        
echo "La ricerca non ha avuto successo";
    }

    
print_r($_SESSION['array_titoli']);
    echo 
"<br><br>";
    
print_r($_SESSION['array_calorie']);

    
//$_SESSION['array_titoli'] = $array_titolo;
    //$_SESSION['array_calorie'] = $array_calorie;

    /*echo "<br><br>Ti interessa qualche ricetta?<br>";
    $temp = count($array_titolo);*/
}
?>
.......
.......
-- file home.php --
Codice PHP:
.....
.....

 <?php 
      $prova1
=array();
      
$prova2=array();
      
$prova1 array_push($prova1$_SESSION['array_titoli']);
      
$prova2 array_push($prova2$_SESSION['array_calorie']);
      echo 
"<br>";
      
print_r($prova1);
      echo 
"<br>";
      
print_r($prova2);
    
?>

.....
.....
(il secondo pezzo di codice l'ho scritto ora velocemente e sono fuso non so se sia paragonabile ad una "bestemmia" o meno

vorrei riuscire a salvare in SESSIONE sia $array_titolo che $array_calorie solo che se stampo direttamente così il contenuto funziona. Se invece torno alla home e faccio una seconda ricerca nel momento del secondo salvataggio mi sovrascrive il contenuto dei 2 array invece che aggiungere. Mi sapreste aiutare?
Grazie
andrea46r è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2020, 21:35   #2
zabnicola
Junior Member
 
Iscritto dal: Nov 2020
Messaggi: 20
[#1 soluzione]
Codice:
 
array_push($array_titolo, $_SESSION['array_titoli'] );
array_push($array_titolo,$ricettaTitolo);
$_SESSION['array_titoli']=$array_titolo;
Il codice è corretto a mio avviso. Soltanto che le volte successive alla prima session_start andrebbe copiato il contenuto di $_SESSION, aggiunto cio che si voleva e quindi ricopiato nella $_SESSION per averli tutti nella successiva apertura della pagina nella stessa sessione.
Fammi sapere se è errato.
zabnicola è offline   Rispondi citando il messaggio o parte di esso
Old 22-11-2020, 22:34   #3
antonio338
Senior Member
 
L'Avatar di antonio338
 
Iscritto dal: Aug 2003
Messaggi: 1156
Premetto che sono arrugginito in php, ma tenterò lo stesso di aiutarti.
Il problema del tuo codice risiede qui
Codice:
$array_titolo = array();
$array_calorie = array();
dove sostanzialmente ogni volta crei un array nuovo e lo sovrascrivi in $_SESSION['il_tuo_array'], piuttosto che aggiungere valori a quello esistente.

Io avrei affrontato il problema cosi:
1) controllo se $_SESSION['nome_array'] esiste, con qualcosa del genere:
Codice:
if (!isset($_SESSION['nome_array'])
{
$_SESSION['nome_array'] = [];
}
Se non esiste, creo il mio array.
2) una volta instanziato l'array aggiungo i miei dati
Codice:
array_push($_SESSION['nome_array'], $dati_da_aggiungere);
o in alternativa $_SESSION['nome_array'][] = $dati_da_aggiungere
__________________
VENDITORI ONESTI: krieger, Corrente Elettrica, Cina.Z, Poliacido, Fedemike82, Lucas01, rikop, SystemR89
VENDITORI DA EVITARE: Ancora nessuno

Ultima modifica di antonio338 : 22-11-2020 alle 22:48.
antonio338 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione MSI RTX 3060 Ti Gaming X Trio, stile e prestazioni al servizio del gaming Recensione MSI RTX 3060 Ti Gaming X Trio, stile ...
FRITZ!Box 6580 LTE, il router per chi non è ancora raggiunto dalla fibra FRITZ!Box 6580 LTE, il router per chi non &egrav...
Hasselblad 907X 50C, fascino infinito Hasselblad 907X 50C, fascino infinito
BenQ Mobiuz EX2710: quando audio e HDR contano BenQ Mobiuz EX2710: quando audio e HDR contano
Processori AMD Ryzen: dalla serie 1000 a quella 5000, 38 CPU a confronto Processori AMD Ryzen: dalla serie 1000 a quella ...
Uncharted, incubo senza fine per il film...
Borderlands 3 adesso senza l'invadente s...
TikTok: dal Garante privacy disposto il ...
Chiude Loon, addio ai palloni di Google ...
Anche SAP aderisce all'Operazione Rinasc...
ESA: i test per i serbatoi dei razzi in ...
Capgemini: sempre più enterprise ...
Visa aggiunge nuove componenti al progra...
Ransomware, il backup non basta pi&ugrav...
Synology presenta i NAS da rack RackStat...
Bici elettriche, probabile sorpasso alle...
Canon EOS R5: la società voleva battere ...
Linux e Apple M1 si strizzano l'occhio, ...
Ford condivide i propri dati sugli incid...
Amazon pronta a distribuire i vaccini CO...
Firefox Portable
Thunderbird Portable
Skype
Radeon Software Adrenalin 21.1.1 beta
Advanced SystemCare Ultimate
Google Chrome Portable
Dropbox
7-Zip
VirtualBox
Cpu-Z
SmartFTP
Sandboxie
HDClone Free Edition
Filezilla
VLC Media Player
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 08:43.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
Served by www1v