inserire più frasi in un record

nim

Utente Attivo
11 Ott 2011
96
0
0
salve a tutti...
premetto che so da poco usare e lavorare con i database e mi è venuto un dubbio..
se volessi dare agli utenti la possibilità di creare una playlist potrei far scegliere da un elenco di canzoni alcune preferite e cliccando su un pulsante di fianco al nome della canzone quest'ultimo verrebbe salvato in una tabella dove stanno i campi "utente" e "canzoni_scelte"..però le canzoni saranno certamente più di una quindi come faccio a fare in modo che ad un utente nel campo "canzoni_scelte" vengano associate più canzoni?
cioè è possibile che in un record stiano più di un titolo di canzone?non credo...e allora come farei se volessi fare ciò che ho indicato sopra?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ti conviene creare una tabella "canzoni_scelte".
immagino che ogni utente abbia il suo id (id_u), così pure la canzone (id_c).
come minimo tale tabella dovrà avere
id int(xy) autoincrement primary key
id_u int(xy)
id_c int(xy)
quando l'utente sceglie la canzone/i inserisci nella tabella, l'unica cosa è verificare se esiste o no un record con l'id_u e l'id_c scelto (cioè l'utente pinco ha gia scelto in precedenza la canzone pallo)
 

nim

Utente Attivo
11 Ott 2011
96
0
0
un secondo .. cosa significano quegli (x,y)? cioè non ho capito come risolvere..
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
quegli xy indicano un numero, cioè quanto deve essere grande l'intero
es. se
int(3) al massimo puoi mettere da 0 a 999,
poi "come risolvere" intendi come fare lo script?
 

nim

Utente Attivo
11 Ott 2011
96
0
0
no no per lo script mi arrangio...almeno provo..è che non riesco a capire come faccio a mettere nello stesso record il nome di più canzoni..
poi anche se in futuro le dovessi estrarre come bisognerebbe fare per farlo magari con un criterio (per es. l'ultima canzone inserita nella playlist)?Perchè ripeto che il campo per un utente è sempre lo stesso..cioè canzoni_scelte nell'esempio
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
no non devi mettere più canzoni in un record, come fai a definire quanti campi ci vogliono se l'utente pinco sceglie 2 canzoni mentre l'utente pallo ne sceglie 27?

secondo me dovresti organizzarti (schematicamente) in questo modo
tabella utenti
id_u int(6) autoincrement prymarikey
username varchar(25) notnul
password varchar(25) notnul
#e eventuali altri campi che ti possono servire (tel, email....)

tabella canzoni
id_c int(9) autoincrement primarykey
titolo varchar(50) notnull
#e altri campi se ti servono (autore, data uscita,casa discografica...)

tabella canzoni_scelte
id int(12) autoincrement primarykey
id_u int(6) notnull
id_c int(9) notnull

oppure potrebbe essere canzoni_scelte
id int(12) autoincrement primarykey
username varchar(25) notnul
titolo varchar(50) notnull

non so come pensi di fare il form in cui l'utente sceglie ma potrebbe essere così (a parte ai tag form e pulsante di submit)

PHP:
<?php
//dati di connessione
//ecc.....
$q=mysql_query("SELECT * FROM canzoni ORDER BY titolo");
while ($riga=mysql_fetch_array($q)){
echo $row['titolo']."<input type=\"checkbox\" name=\"canzone[]\" value=\"".$row['id_c']."\"><br>";//oppure due volte $row['titolo']
}
?>
poi nella pag in cui inserirai nel db

PHP:
<?php
//....
$id_utente=$_SESSION['id_utente'];//dal log per accedere al form di scelta
$scelte=$_POST['canzone'];
//avendo messo il nome nel checkbox canzone[] $scelte diventa un array col numero di canzoni scelte
//verifichi che sia stata fatta almeno una scelta
//se si
foreach($scelte as $valore){
	$q_verifica=mysql_query("SELECT * FROM canzoni_scelte WHERE id_u='$id_utente' AND id_c='$valore'");
	$esiste=mysql_num_rows($q_verifica);
	if($esiste == 0){// se zero l'utente non aveva mai fatto quella scelta
		$ins=mysql_query("INSERT INTO canzoni_scelte(id_u, id_c) VALUES('$id_utente', '$valore')");
	}
}
//...
?>
evidente che puoi usare, se preferisci, al posto dell'id_u o dell'id_c l'username e il titolo

spero di essermi spiegato bene, altrimenti sono qui
 

nim

Utente Attivo
11 Ott 2011
96
0
0
sì ho capito...a quanto pare serviva proprio l'esempio...
GRAZIE
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
mi è venuto in mente che se l'utente pinco sceglie piu volte la canzone pallo potresti aggiungere un campo alla tabella canzoni scelte

tabella canzoni_scelte
id int(12) autoincrement primarykey
id_u int(6) notnull
id_c int(9) notnull
volte int(6) default 0

e modificare la parte di insert in quasto modo

PHP:
<?php 
//.... 
$id_utente=$_SESSION['id_utente'];//dal log per accedere al form di scelta 
$scelte=$_POST['canzone']; 
//avendo messo il nome nel checkbox canzone[] $scelte diventa un array col numero di canzoni scelte 
//verifichi che sia stata fatta almeno una scelta 
//se si 
foreach($scelte as $valore){ 
    $q_verifica=mysql_query("SELECT * FROM canzoni_scelte WHERE id_u='$id_utente' AND id_c='$valore'"); 
    $esiste=mysql_num_rows($q_verifica); 
    if($esiste == 0){// se zero l'utente non aveva mai fatto quella scelta 
        $ins=mysql_query("INSERT INTO canzoni_scelte(id_u, id_c, volte) VALUES('$id_utente', '$valore', 1)"); 
    }else{//l'utente pinco haveva gia scelto pallo
		$upp=mysql_query("UPDATE canzoni_scelte SET volte=volte+1 WHERE id_u='$id_utente' AND id_c='$valore'"); 
	}
} 
//... 
?>
così puoi sapere quante volte pinco ha scelto pallo
 

nim

Utente Attivo
11 Ott 2011
96
0
0
sì è vero , grazie mille...con tutti questi esempi sto sul serio imparando e capendo bene! Grazie!
 
Discussioni simili
Autore Titolo Forum Risposte Data
M PHP/SQL Inserire più valori in una colonna di tipo integer - Checkbox - PHP 3
filippino Inserire un articolo in più categorie è penalizzante lato seo? SEO e Posizionamento 0
JackIlPazzo Inserire array in più righe PHP 9
W Inserire più input dinamicamente Javascript 6
B inserire più musiche di sfondo HTML e CSS 9
L Inserire più record in una sola volta PHP 1
I Inserire più dati in database PHP 43
D inserire più Include PHP 0
D inserire più valori in una POST PHP 4
B inserire link a più pagine HTML e CSS 2
L inserire menu su più pagine HTML e CSS 6
Elisacau [Contact form 7] Inserire Numero auto incrementante WordPress 1
gara1 inserire immagine di sfondo in canvas Javascript 0
FDF182 Inserire pdf in db PHP 3
otto9due Inserire o aggiornare tabella my sql controllando una coppia di valori PHP 7
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
D Inserire link PHP 0
L PHPSpreadsheet inserire dati da file .xlsx/.xls su database PHP 2
P inserire due voci in un titolo post wp WordPress 1
R inserire video nel sito HTML e CSS 15
J Inserire blog wordpress in angular CMS (Content Management System) 0
A inserire variabile php colore in div html PHP 2
L inserire dati multi livello PHP 8
G Inserire una scritta Java 1
M Inserire variabile nella value di una hidden PHP 3
S Inserire foto in ogni cella di una tabella Javascript 0
G inserire dati automaticamente in mysql PHP 0
B Vorrei inserire una finestra con messaggio ad un history.back PHP 16
Shyson Inserire placeholder nel campo cerca PHP 5
M Lanciare alert se il codice fiscale è già presente nel db e lasciare la scelta di inserire all'utente PHP 42
atipika INSERIRE ICONE DOWNLOAD E STAMPA WORDPRESS WordPress 10
F Creare un set di date a seconda del frazionamento scelto da inserire in MySQL PHP 6
B inserire valori da una tabella a un altra mysql PHP 34
D [Javascript] inserire uno script in un file php Javascript 6
napuleone [HTML] type="file" inserire path di partenza HTML e CSS 4
Monital [Javascript] inserire dati estratti dal db in html fisso Javascript 1
R [WordPress] Inserire campi aggiuntivi ad un Submit Form già dato dal template (front-end) WordPress 0
M inserire i dati ottenuti da una jquery in una tabella già esistente jQuery 1
G Inserire "Leggi il resto dell'articolo" con link al post sul sito preso via RSS Email Marketing 0
M [PHP] Come inserire codice html in un ciclo while PHP 2
P [PHP] Inserire stringhe in input(text),memorizzarle e stamparle in file successivo PHP 0
J [Javascript] Inserire un caricamento con animazione prima dell'esecuzione di un'azione Javascript 1
Shyson [PHP] Inserire testo nel codice PHP 2
D Mailchimp - Possibile inserire doppia condizione per i triggers? Email Marketing 0
A [MS Access] Pulsante per inserire allegati in campo maschera MS Access 0
Shyson [HTML] Inserire nuovo font con @font-face HTML e CSS 5
Alex_70 Inserire photo in php PHP 0
D [Javascript] [HTML] Inserire slash dopo 3 numeri Javascript 5
F INSERIRE IN UN'UNICA CASELLA DI TESTO REPORT ACCESS I VALORI DELLA TABELLA DI UN'INTERA COLONNA MS Access 2
A [HTML] Come inserire google review stars nelle pagine del mio sito HTML e CSS 0

Discussioni simili