Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    105

    Selezionare voce da array dentro tabella

    Spero di aver scritto correttamente il titolo...
    Dopo lunghe ricerche e interessanti letture di pillole varie non ho trovato la soluzione al mio problema che non mi sembra pero' cosi difficile da risolvere... sono ancora un pivello in php!

    Ho un form di ricerca dal quale attraverso 3 select seleziono i criteri di ricerca: categoria target e regione.
    In un'altra pagina recupero le variabili del form ($cercacat $cercatar $cercareg) e ho la mia query:
    select * FROM user WHERE categoria='$cercacat' AND target='$cercatar' AND regione='$cercareg' ... bla bla bla

    Il punto è che il campo della tabella chiamato 'target' contine un array quindi la mia query non va bene, dovrei fare in modo di leggere dalla tabella il contenuto del campo 'target' (quindi dell'array) e di selezionarlo solo se al suo interno è presente una voce uguale a $cercatar. Ma come posso fare questo DENTRO una query e insieme agli altri comandi AND?????

  2. #2
    Un campo di una tabella contenente un "array" viola la prima forma normale. Ti suggerisco di ristrutturare la tabella in modo da suddividere il contenuto del campo target in più campi.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    105
    Grazie per la risp. e Buona Pasqua!

    Non ero al corrente della "prima forma normale" e dopo aver fatto una ricerca per chiarirmi le idee ho pensato di ristrutturare un po le cose a cominciare dall'inserimento dei dati nella tabella (quindi per il momento accantono il quesito sulla ricerca) e procedere cosi:

    Nel mio form iniziale ho un checkbox dove scegliere fra 6 campi, dove ad ogni valore abbino un indice:
    <input type="checkbox" name="target[0]" value="calcio"/>calcio</td>
    <input type="checkbox" name="target[1]" value="tennis"/>tennis</td>
    <input type="checkbox" name="target[2]" value="basket"/>basket</td>
    <input type="checkbox" name="target[3]" value="golf"/>golf</td>
    <input type="checkbox" name="target[4]" value="sci"/>sci</td>
    <input type="checkbox" name="target[5]" value="volley"/>volley</td>

    I campi selezionati passano come array al file inserisci.php che ha il compito di inserire il tutto nella tabella, quindi prima recupero l'array, poi con un explode divido tutti gli indici e associo ad ogni indice una variabile che andro' ad inserire nel relativo campo della tabella.

    Ovviamente nella mia tab ho 6 capi: primotarget secondotarget terzotarget ecc ecc...

    il campo primotarget conterra' la variabile $primotarget ottenuta dall'explode dell'array con indice [0], il capo secondotarget conterra' la variabile $secondotarget ottenuta dall'explode dell'array con indice [1] ecc..ecc..

    Funzionare funziona, pero' c'e' un problemino. Praticamente ho tanti "Undefined offset" per quanti indici non esistono nell'array. Giustamente se seleziono solo "calcio" ho 5 indici inesistenti che non potranno mai essere associati a variabile.

    La mia domanda ora è: Ho scelto la strada sbagliata o posso risolvere il problema? Grazie ancora

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.