Creare prodotti con varianti

intimoviro

Utente Attivo
18 Ago 2009
272
0
0
Salve, vorrei chiedere aiuto su come strutturare un database per prodotti con varianti, vi spiego meglio:
ho una tabella prodotti, dove è contenuto l'id, nome, immagine e altri dati inerenti al prodotto. Ora avevo pensato di creare una tabella varianti, però ogni prodotto può avere fino a tre varianti tipo taglia, colore e grandezza, devo creare una tabella per ogni variante? Poi come associo ogni variante con il prodotto, ed ogni variante con un'opzione?
Cioè taglia deve essere correlata ad es. XL, colore con rosso e così via.

Spero di essere stato chiaro.

Vi prego aiutatemi a capire, perchè non riesco a venirne a capo.

Grazie :D
 
Ho pensato a questo, però non tutti i prodotti hanno le stesse varianti. Ad esempio:
Art.1 ha come varianti solo taglia S/M - L/XL
colore Rosso - Bianco

Art. 2 taglia M - L
colore verde - rosa

Spero di essere stato abbastanza chiaro.

Oppure, puoi spiegarmi meglio la tua soluzione?
Cioè come strutturare il tutto

Grazie
 
so che può sembrare macchinoso, ma quando si tratta di relazioni uno a molti consiglio sempre di creare più tabelle; una per i prodotti, una con le taglie e una con i colori, nella tabella dei prodotti creerei poi due campi colore e taglia in cui inserire un array con gli id delle taglie e dei colori corrispondenti.
Un po' come si fa per i tag nei blog.
 
Ho fatto così per inserire gli ID nella tabella prodotti:

PHP:
<?php

require_once('includes/config.php');

$tagl = Array("1","3","5");
$taglie = serialize($tagl);

$col = Array("1","2");
$colore = serialize($col);

$insert = "INSERT INTO prodotti (taglia, colore) VALUES ('$taglie', '$colore')";
$insert2 = mysql_query($insert) OR DIE(mysql_error());
  if ($insert2 == 1){
    echo "Varianti inserite con successo";
  }else{
    echo "Errore inserimento";
  }
?>

Così m'inserisce l'array nel database.

Poi per richiamare ho fatto così:
PHP:
//prima la funzione per prelevare i campi dal database
  $tagl = $row['taglia'];
  $col = $row['colore'];
  $taglie = unserialize($tagl);
  $colori = unserialize($col);

Poi ho creato una query per associare gl'id ai nomi corrispondenti
PHP:
$query = "SELECT * FROM colore WHERE id = '$colori'";
$sq = mysql_query($query);
while ($r = mysql_fetch_array($sq)){
$colori_nomi = $r['nome'];
}

Però non mi da alcun risultato, come posso risolvere, dove sbaglio?
Grazie
 

Discussioni simili