Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19

Discussione: [php] array

  1. #1
    Utente di HTML.it L'avatar di Mike
    Registrato dal
    May 2002
    Messaggi
    423

    [php] array

    Salve, spero che qualcuno mi da una mano su un progetto che sto elaborando.
    Sto cercando di memorizzare in sessione valori in un array associativo:

    session_start();

    $cod=$_GET[codice];
    $nome_prod=$_GET[prod];
    $qta=$_GET[qta];

    if(!(isset($profilo_utente[acquisti]))){
    $profilo_utente[acquisti]=array();
    session_register('profilo_utente');
    }
    //qui dovrei inserire volta per volta $cod, $nome_prod e $qta!
    //ho pensato a qualcosa del genere ma non ci riesco!!!
    array_push($profilo_utente[acquisti],$cod,$nome_prod,$qta);
    Mike

  2. #2
    Utente di HTML.it L'avatar di Mike
    Registrato dal
    May 2002
    Messaggi
    423
    up!
    Mike

  3. #3
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    La tua push potrebbe essere qualcosa del genere

    $_SESSION['profilo_utente']['acquisti'][]=array('cod'=>$cod,'nprod'=>$nprod,'qta'=>$qta);

    per accedere alla $k registrazione fai

    $cod=$_SESSION['profilo_utente']['acquisti'][$k]['cod'];
    $nprod=$_SESSION['profilo_utente']['acquisti'][$k]['nprod'];
    $qta$_SESSION['profilo_utente']['acquisti'][$k]['qta'];

    Fai attenzione a non dimenticare gli apici per le chiavi altrimenti fai riferimento ad una costante non dfinita con valore 0 ovvero

    $_GET[prod] <=> $_GET[0] ed è molto diverso da $_GET['prod']

    Ciao

  4. #4
    Ho dato una sistemata al tuo codice e l'ho messo dentro a una semplice paginetta HTML per provarlo:
    codice:
    <?
    session_start(); 
    
    $cod=$_GET["codice"]; 
    $nome_prod=$_GET["prod"]; 
    $qta=$_GET["qta"]; 
    
    if (!session_is_registered('profilo_utente'))
    	session_register('profilo_utente'); 
    
    if (!isset($profilo_utente["acquisti"]))
    	$profilo_utente["acquisti"]=array(); 
    
    //qui dovrei inserire volta per volta $cod, $nome_prod e $qta! 
    //ho pensato a qualcosa del genere ma non ci riesco!!!
    array_push($profilo_utente[acquisti], $cod, $nome_prod, $qta); 
    ?>
    <html>
    <head>
    	<title>prova</title>
    </head>
    
    <body>
    
    
    
    <?="<a href=\"$PHP_SELF?codice=5&prod=10\">LINK</a>"?></p>
    
    
    
    <?=session_encode()?></p>
    
    </body>
    </html>
    In questo modo sembra che funzioni: se provi a cliccare sul link LINK continua ad aggiungere nella sessione i valori codice e prod che ho messo nell'URL...

  5. #5
    Utente di HTML.it L'avatar di Mike
    Registrato dal
    May 2002
    Messaggi
    423
    non so forse sbaglio io a capire! A me serve che l'arrai accoda qualcsa del genere

    cod_prod | nome prod | qta | prezzo |
    cod_prod | nome prod | qta | prezzo |
    cod_prod | nome prod | qta | prezzo |
    ecc..

    chiaramente se il cod_prod è già nella lista array devo aggiornare soltanto la qta ed il prezzo!
    Mike

  6. #6
    Uhm... in effetti è meglio fare come dice Grino:
    codice:
    $_SESSION['profilo_utente']['acquisti'][]=array('cod'=>$cod,'nprod'=>$nprod,'qta'=>$qta);
    In questo modo i dati vengono memorizzati nell'array di sessione in modo più ordinato: un array associativo per ogni acquisto.

  7. #7
    Originariamente inviato da Mike
    chiaramente se il cod_prod è già nella lista array devo aggiornare soltanto la qta ed il prezzo!
    Allora credo che ti serva una chiave non enumerata che distingua un array da un altro, qualcosa del tipo
    codice:
    "mario"=> cod_prod | nome prod | qta | prezzo |
    "luca"=> cod_prod | nome prod | qta | prezzo |
    "giovanni"=> cod_prod | nome prod | qta | prezzo |
    Dove "mario" "luca" e "giovanni" è lo username dell'utente che ha fatto l'acquisto. E' solo un esempio, naturalmente; invece dello username potresti usare qualsiasi altra cosa per distinguere un utente dall'altro.

  8. #8
    Utente di HTML.it L'avatar di Mike
    Registrato dal
    May 2002
    Messaggi
    423
    per scorrere successivamente l'array?

    io ho pensato qualcosa del genere:

    $arrayacquisti=array_count_values($profilo_utente[acquisti]);

    for($i=0;$i<=count($arrayacquisti)-1;$i++){
    list($codice,$nome,$qta,$prezzo)=each($arrayacquis ti);
    }

    che ne dite?
    Mike

  9. #9
    Attento che $arrayacquisti è un array bidimensionale: ogni elemento infatti è a sua volta un array.

    Meglio che fai così:
    codice:
    foreach ($arrayacquisti as $riga)
    {
       foreach ($riga as $numero_colonna=>$colonna)
       {
          //se $numero_colonna vale 0 avrai il codice
          //se $numero_colonna vale 1 avrai il nome
          //ecc
       }
    }

  10. #10
    Utente di HTML.it L'avatar di Mike
    Registrato dal
    May 2002
    Messaggi
    423
    Ok ci sono quasi arrivato ma mi sfugge qualcosa!

    Qui creo accodo i dati nell'array:

    $_SESSION['profilo_utente']['acquisti'][]=array('cod'=>$cod,'nprod'=>$nprod,'qta'=>$qta);

    Per scorrere l'array faccio così:

    foreach ($profilo_utente[acquisti] as $riga){
    foreach ($riga as $numero_colonna=>$colonna){

    $acquisti.="<tr>\n
    <td align=center>$numero_colonna[0]</td>\n
    <td align=center>$numero_colonna[1]</td>\n
    <td align=center>$numero_colonna[2]</td>\n
    <td align=center>$numero_colonna[3]</td>\n
    </tr>";
    }
    }
    ma non funce come dovrebbe!!
    Mike

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 © 2025 vBulletin Solutions, Inc. All rights reserved.