Problemino Array

Ragazzi ho una tabella all'interno del db mysql contenente degli id che si estende su più righe:

id: 1 members: 21043|12|125| (ID degli utenti registrati.)

id: 2 members: 213|1|14|

Ogni id registrato viene inserito nel db con un simbolo finale "|" che delimita la fine dello stesso.

Ho bisogno di verificare se l'id dell'utente autenticato, appare nel database. Avevo iniziato così:

while ($fetch = mysql_fetch_array($query)) {
$admin = $fetch['admin'];
$adminarray = explode("|", $admin);
}

E poi tramite la funzione in_array(); verificavo se all'interno del db era presente l'id dell'utente.

Pero mi sono subito accorto che effettuando un operazione del genere viene considerata solo l'ultima riga, come posso ovviare al problema?

inviato 8 anni fa
Pixelate
modificato 8 anni fa
X 0 X

Hai messo la funzione in_array() nel ciclo while?

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

ehm.. no :)

devo?

risposto 8 anni fa
Pixelate
X 0 X

Ciao,

secondo me ti sei complicato un po' la vita seguendo la strada degli id in un campo di testo separati da "|"...

Se avessi racchiuso gli id tra 2 simboli "|" (ad es: |12|, avresti potuto eseguire un LIKE nella query (es: '%|12|%') in questo modo avresti potuto contare il numero di righe... e poi gli avresti fatto fare login.

L'operazione che fai tu è un po' più "costosa". La soluzione potrebbe essere quella di inserire all'interno del ciclo while un if con la condizione in_array e se questa viene verificata esegui:

1) salvi la riga con i dati in cui appare quell'utente;

2) inserisci l'istruzione "break"

Questa soluzione ti restituirà sempre la prima riga in cui si verifica la condizione "in_array"

Buona giornata

 :bye:

Zeta

risposto 8 anni fa
zeta80
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda