Visualizzazione risultati 1 fino 6 di 6

Discussione: MySQL e array

  1. #1
    Ufobm non è connesso Utente attivo
    Data registrazione
    06-12-2004
    Messaggi
    432

    Predefinito MySQL e array

    Ciao!
    Avrei una domanda piuttosto stupida ma non so trovare risposta! Su internet ci sono solo cose più difficili ma non questa così facile...
    Come salvo un'array in un campo di MySQL e, viceversa, come faccio a caricare tutta l'array sapendo anche quanti campi contiene? Non so se sono stato chiaro!

    Mi spiego nel concreto! Vorrei fare uno script in cui un utente può inserire fino a 10 foto. In UN solo campo "foto_utente" vorrei mettere tutti i percorsi delle immagini che possono essere da 1 a 10... in pratica pensavo di salvarli in un array e mettere dentro il campo quella! Funzionerebbe? In quel caso dovrei comunque settare tutti i 10 campi dell'array per sapere fin dove arriva (mettendo un campo vuoto dove non c'è niente...)...
    Illuminatemi vi prego!

    Grazie in anticipo!

  2. #2
    Guest

    Predefinito

    A parte tutto, ti consiglio, viste le premesse, di dedicare 10 campi per le foto.

    Per rispondere alla tua domanda, ti basta salvare i percorsi divisi da un carattere a tua scelta, ad esempio la virgola.
    Al momento di estrarre l'intera stringa, per ottenere nuovamente l'array contenente tutte le foto, ti basterà esplodere la stringa: $array=explode(",",$stringa);


    Ciaooooooo!!!!!!!

  3. #3
    Ufobm non è connesso Utente attivo
    Data registrazione
    06-12-2004
    Messaggi
    432

    Predefinito

    Citazione Originalmente inviato da debug
    A parte tutto, ti consiglio, viste le premesse, di dedicare 10 campi per le foto.

    Per rispondere alla tua domanda, ti basta salvare i percorsi divisi da un carattere a tua scelta, ad esempio la virgola.
    Al momento di estrarre l'intera stringa, per ottenere nuovamente l'array contenente tutte le foto, ti basterà esplodere la stringa: $array=explode(",",$stringa);


    Ciaooooooo!!!!!!!

    Ciao! Questa soluzione l'avevo già utilizzata altre volte! Soprattutto per delle date... cmq io volevo diciamo "evolvermi" e quindi usare vere e proprie array salvate nei db... ma forse allora un modo non esiste... ho intuito bene??? Che s**** però... sarebbe molto più comodo (o forse no, ma più corretto sicuramente )!
    In ogni caso perché mi consigli di usare 10 campi?!? Verrebbe un disastro... già usando l'idea delle array per alcuni campi ero arrivato a 16... arrivo a più di 30 facendo campi separati... un disastro...

  4. #4
    Guest

    Predefinito

    che ne dici di un bel serialize ?
    oppure puoi salvare l'array come testo (tipo con var_dump) e usare eval

    insomma di possibilità ce ne sono... personalmente ti consiglierei la prima

  5. #5
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Provo a suggerirti una cosa un pochino più intelligente, che ti consente di risolvere parecchi problemi:
    - crea una tabella con questa struttura:
    FOTO_UTENTE (IdUtente:intero, File:testo)
    - il codice del modulo di inserimento sarà questo:
    Codice PHP:
    <form action="invia.php" method="post">
    <?php
    for ($i = 1; $i <= 10; $i++)
    echo
    '<p>Foto #' . $i . ': <input name="foto' . $i . '" type="file" /></p>';
    ?>
    <input type="hidden" name="user" value="<?php = $id_utente; ?>" />
    <input type="submit" value="Invia!" />
    </form>
    - la pagina invia.php si caricherà i file sul tuo spazio web e poi eseguira l'aggiornamento del database in questo modo (i file con lo stesso nome saranno automaticamente sovrascritti):
    Codice PHP:
    <?php
    $query
    = "REPLACE FOTO_UTENTE (IdUtente, File) VALUES";
    for (
    $i = 1; $i <= 10; $i++)
    {
    if (isset (
    $_POST['foto' . $i]))
    $query .= " ({$_POST['user']}, '" . $_POST['foto' . $i] . "'),"
    }
    $query = substr ($query, 0, strlen ($query) - 1);
    if (!
    mysql_query ($query, $db))
    echo
    'Errore nell\'inserimento!<br />' . mysql_error ();
    ?>
    Con un sistema del genere, risolvi parecchi problemi:
    - anche se l'utente potrà inserire al massimo 10 foto alla volta, ne potrà avere anche più a disposizione
    - eviti di riempire la tabella di campi vuoti se l'utente carica meno di 10 foto
    - esegui un inserimento di 10 foto con una sola query del database (e non è poco...!)

    Come al solito, questa soluzione è facilmente estendibile e andrebbe resa un pochino più "a prova di bomba"...

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  6. #6
    L'avatar di nasosan
    nasosan non è connesso Utente giovane
    Data registrazione
    24-10-2004
    Residenza
    Altare (sv)
    Messaggi
    43

    Predefinito

    e se volessi inserire tutti i valori dentro il form e poi memorizzarli dopo? come faccio a dire al form (mettendo che non sappia a priori quanti capi ci possono essere) che il primo valore messo nel primo campo del form deve avere un nome x e via via x tutti gli altri valori?
    io ho provato a fare cosi
    Codice:
    for ( $i = 0; $i < $numeropostazioni; $i++) 
    	 {?>
    		Nome Postazione <?echo $i+1;?>: 
    		<input size="15" name=<?echo $nomepostazione[$i];?> type="text" value=<?echo $nomepostazione[$i];?>><br>
    	 <?}?>
    ma non me li salva....
    Lunga Vita e Prosperita!
    Naso San.
    www.nasosan.it

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •