Ciao,
sto realizzando un sito e mi è stato richiesto di poter correlare i prodotti fra di loro in forma disomogenea cioè:
# prod.A > prod.B > prod.F >prod.Z
# prod.B >prod.A >prod.G.
La tabella prodotti ha come campi ID | nome prodotto | descrizione.
ho creato una tabella relazione con i seguenti campi
id | prodotto 1 | prodotto 2
---
in visualizzazione (per l'utente) ho creato una pagina che mi mostra tutti i prodotti e con un checkbox seleziono i prodotti da correlare
Codice PHP:
$query = mysql_query("SELECT * FROM prodotti");
$quanti = mysql_num_rows($query);
for($x=0; $x<$quanti; $x++){
$rs2 = mysql_fetch_array($query);
$query2 = mysql_query("SELECT * FROM abbina_prodotti WHERE id_prodotto1='5' AND id_prodotto2='$rs2[0]' OR id_prodotto1='$rs2[0]' AND id_prodotto2='5'");
$quanti2 = mysql_num_rows($query2);
if ($quanti2>0){
echo "<td id='prod_acc' class=\"prova\"> <input name='prodotto[]' type='checkbox' checked='checked' value='$rs2[0]'><label for=\"prova1\" style='padding-top:-15px;'>$rs2[8]</label></td>";
}
else {
echo "<td id='prod_acc' class=\"prova\"> <input name='prodotto[]' type='checkbox' $che value='$rs2[0]'><label for=\"prova1\" style='padding-top:-15px;'>$rs2[8]</label></td>";
}
Premendo il submit, passo tutti i prodotti già selezionati, controllo che non siano gia presenti e li inserisco.
Codice PHP:
foreach($_POST['prodotto'] as $key=>$valore)
{
$query3 = mysql_query("SELECT * FROM abbina_prodotti WHERE id_prodotto1='$_POST[id1]' AND id_prodotto2='$valore' OR id_prodotto1='$valore' AND id_prodotto2='$_POST[id1]'");
$quanti3 = mysql_num_rows($query3);
if ($quanti3==0) {
$sql = "INSERT INTO abbina_prodotti SET
id_prodotto1='$_POST[id1]',
id_prodotto2='$valore'";
mysql_query($sql, $conn);
}
il problema è che vorrei poter scegliere di eliminarne uno se decido di non renderlo + correlato ad un altro.
Sapete come fare, sono certo che la soluzione da me studiata è al quanto arcaica e credo che si sia anche un tutorial on line che spiega la cosa.