Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 25

Discussione: array

  1. #11
    se vuoi salvare una variabile in un campo stringa (qualunque tipo sia), usa var_export().

    Codice PHP:
    $ar var_export($_SESSION['articoli'], true); // il true serve a ritornare il valore e a non stamparlo
    $ar mysql_real_escape_string($ar);

    $sql="insert into vendite values (null,'$ar')" 
    poi per prelevarla fai il select della stringa dentro una variabile (in questo caso $val)
    Codice PHP:
    $ar = eval("return $val;"); 
    La verita' è che... tu sei il debole, e io sono la tirannia degli uomini malvagi, ma ci sto provando ringo, ci sto provando con grandissima fatica a diventare il pastore..

  2. #12
    in inserimento: serialize($var);
    in recupero:
    codice:
    $var = str_replace("\r\n", " ", $record["input"]);
    $var = str_replace("\n", " ", $var);
    $var = str_replace((chr(13)), " ", $var);
    $var = unserialize($var);
    dove, per la ricezione dal db, $record["input"] è il campo dal dataset estratto.
    I tre str_replace servono perchè (almeno a me) crea problemi con i ritorni a capo durante la fase di de conversione.


  3. #13
    Utente bannato L'avatar di Fronte
    Registrato dal
    Dec 2010
    Messaggi
    358
    é fuori dubbio la mia non preparazione allo studio dei vettori e matrici di array ,
    però mi sto confondendo sempre di più ,
    nella put contente :
    $ar= $_SESSION['articoli'] ; rinomino la 'array
    file_put_contents("rec1.txt",$ar, FILE_APPEND);scrivo sul file.txt
    dove il registro era confuso ma popolato .
    con :
    $ar = var_export($_SESSION['articoli'], true); s
    $ar = mysql_real_escape_string($ar);

    $query = "INSERT INTO vendite VALUES (null, '$ar')"; la query non funziona ,
    ho fatto varie prove e il risultato è deludente ,,,

    ho fatto $var = serialize($ar); e poi print_r di $fvar
    con relativa prova di registrazione sul file .txt tutto ok ,
    ma la query non va ..
    $query = "INSERT INTO vendite VALUES (null, '$var')";
    Ringrazio Dascos per la procedura di richiamo della serialize ,

    ma forse dovrò ancora aspettare per poterla usare ,,,

    Per la cronaca, ho provato a cambiare il tipo del campo per la tabella , da text , varchar
    longtext-- con relative prove di memorizzazione , credendo di riuscirci,
    invece . .....
    non mollo

  4. #14
    Nella query di insert, invece di affidarti all'ordine dei campi, chiama i campi per nome:
    "INSERT INTO vendite (nomeCampo) VALUES ('$ar')"
    è più difficile sbagliarsi... poi magari non centra niente, ma togliamoci tutti i dubbi... per il tipo di campo direi che TEXT va più che bene.

    Comunque in effetti è meglio usare serialize() piuttosto che var_export(), che è fatta apposta per questo scopo.

    E non aspettare ad usarla... la sintassi è corretta e il procedimento sembra giusto, riguardati attentamente il codice e abusa pure del manuale php... a breve ti si accenderà una lampadina e capirai tutto.

    Ma all'interno del txt cosa vuoi salvare? Una versione leggibile dell'array o una versione dell'array da poter recuperare in seguito?
    Per la prima opzione print_r è ok, ma devi usarlo con print_r($ar, true), altrimenti ti stampa a video l'array, ma nel file ti salva TRUE.
    Per la seconda opzione usa anche nel file serialize().
    La verita' è che... tu sei il debole, e io sono la tirannia degli uomini malvagi, ma ci sto provando ringo, ci sto provando con grandissima fatica a diventare il pastore..

  5. #15
    Utente bannato L'avatar di Fronte
    Registrato dal
    Dec 2010
    Messaggi
    358
    Ti ringrazio per la risposta ,
    solo adesso lo' ho letta , dentro il .txt volevo solo fare una prova
    l intento è quello di registrare per ogni vendita, un record ,
    non so ancora come approcciare la soluzione visto che sto ancora cercando di fare
    il primo record .
    , salvo tutto o solo le chiavi primarie con il valore del prezzo e del pezzo ,,?
    visto che dovrei anche riuscire a fare un update sulle quantità ..
    non so se sono stato chiaro ,
    Ap resto

  6. #16
    Utente bannato L'avatar di Fronte
    Registrato dal
    Dec 2010
    Messaggi
    358
    Finalmente , il record viene popolato ,
    solo unpò di pazienza ,
    il risultato della insert , non so spiegarmi il perché ma ho provato con il post in modo
    multimodale e non andava , ho cambiato con un post verso una pagina insert.php e
    tutto gira , adesso mi piace
    Un saluto a tutti ,
    Io amo i risultati , anche se molto modesti.
    ORa avrei una altra domanda , adesso mi serve la funzione di moltiplicazione ed eliminazione
    su array

  7. #17
    Moltiplicazione in che senso?
    Eliminazione in che senso?

    $prodotto = $array["costo"] * $array["quantita"]
    $prodotto = $array["costo"]["netto"] * $array["quantita"]["in_ordine"]

    unset($array["dati_extra"])
    unset($array["dati_extra"]["email"])

  8. #18
    Originariamente inviato da 8matt5
    se vuoi salvare una variabile in un campo stringa (qualunque tipo sia), usa var_export().
    per fare questo con gli array io uso serialize()

    Per quel che concerne più in generale il problema esposto dall'utente "manipolare" array di cui non si conosce la struttura (monodimensionale o pluridimensionale) effettivamente è difficile...
    per farlo in maniera corretta occorre utilizzare funzioni recursive (che sono un pò complicatuccie).

    Vi è anche un esempio tratto da php.net (la bibbia) che mi sono permesso di commentare:
    Codice PHP:
    // la funzione accetta due parametri:
    // 1) carattere separatore
    // 2) array da trasformare in stringa
    function r_implode($glue,$pieces
        {
        
    // l'array messo come secondo parametro viene ciclato
        
    foreach( $pieces as $r_pieces )
            { 
            
    // se uno dei suoi elementi è un array
            
    if( is_array$r_pieces ) ) 
                {
                
    // ecco la "recursive" della funzione
                // cioè si auto-applica al suo interno
                
    $retVal[] = r_implode$glue$r_pieces );
                }
            else
                {
                
    // altrimenti aggiunge semplicemente il relativo valore 
                // ad un nuovo monodimensionale
                
    $retVal[] = $r_pieces
                } 
            } 
        
    // esegue l'implode di un array monodimensionale
        // e quindi darà una stringa
        
    return implode$glue$retVal ); 
        } 

    $test_arr = array( 01, array( 'a''b' ), array( array( 'x''y'), 'z' ) ); 
    echo 
    r_implode','$test_arr ) . "\n"

  9. #19
    Originariamente inviato da oly1982
    per fare questo con gli array io uso serialize()
    Si hai ragione. Mi sembra di averlo anche detto qualche post fa.

    Comunque Fronte per il tuo problema specifico dovresti pensare ad una soluzione strutturata in modo diverso.
    Visto che il problema relativo a questo thread è stato risolto, ti proporrei una soluzione più consona al modello E/R.
    Immagino che tu abbia, oltre alla tabella vendite, la tabella prodotti, in cui hai tutti i dati.
    Invece di salvare per ogni vendita un array con i dati degli articoli acquistati (come potresti fare in un modello ad oggetti, in cui hai il controllo sul tipo di dati da salvare), in un db relazionale è meglio avere un'altra tabella, chiamata ad esempio "articoli", in cui ogni riga corrisponde ad un articolo venduto. In questa tabella salvi tutti i dati che salveresti sull'array (quindi l'ID del prodotto, il prezzo, la quantità e tutti i dati che potrebbero esserti utili) più l'ID della vendita. A quel punto le operazioni di moltiplicazione ed eliminazione risultano più semplici.

    Ad esempio per sapere il totale della vendita $x ti basta fare
    SELECT Sum(prezzo * quantita) AS totale FROM articoli WHERE id_vendita = $x

    O per eliminare un articolo
    DELETE FROM articoli WHERE id_articolo = $y
    La verita' è che... tu sei il debole, e io sono la tirannia degli uomini malvagi, ma ci sto provando ringo, ci sto provando con grandissima fatica a diventare il pastore..

  10. #20
    Utente bannato L'avatar di Fronte
    Registrato dal
    Dec 2010
    Messaggi
    358

    Fine

    8matt5
    ,Ti ringrazio per la specifica , in tal caso vedrò il da farsi con più attenzione ,

    Anche se non ho capito bene come impostare la tabella ,
    anziché salvare la matrice intera dell array in un campo della tabella articoli
    dovreì cambiare salvando ogni valore singolo del mio array in un campo alla volta conseguenzialmente ,, però ,
    Nella tabella ci sarebbe una ID_vendita , ID_articolo , Data , ID_Uente

    La id sarebbe primaria quindi cambierebbe valore per ogni articolo venduto anche , se nella
    stessa vendita !,
    Non dovrei fare altre modifiche ...
    Credo di riuscire a capire il concetto .
    Grazie

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