|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: May 2004
Messaggi: 42
|
inserimento
Ciao a tuti ecco il mio problema: Sto facendo la parte amministratore di un sito web
Io ho fatto una tabella categoria con: idcategoria, categoria, collegamento (che sarebbe il link della categoria); Poi ho una tabella prodotti con: idprodotto, nome, marca ....tutti i dati per il prodotto, e idcategoria. Quello che non capisco è:io inserisco i dati del prodotto e la categoria, e l'inserimento nel database prodotti lo fa, (solo che nel campo categoria ce sempre scritto il numero zero) ma quando clicco su una categoria esempio accessori, non mi visualizza il prodotto. Esempio, la categoria accessori è linkata a accessori.php Se io a questa pagina gli dico di leggere la tabella prodotti, mi visualizza tutti i prodotti, io invece voglio che nella categoria accessori mi visualizza gli accessori, nei case i case e cosi via, ma come si fa con un solo database? Sto diventando matta..... Questo è il codice che ho scritto: <html> <head> <title>ComputerGratis.it</title> </head> <body bgcolor="#F7FBA4"> <br><br> <center><h1>Inserisci un nuovo Prodotto</h1></center> <br><br><br><br><br> <?php error_reporting (0); if(!isset($_POST)) $_POST=$HTTP_POST_VARS; else{ $nome=addslashes($_POST['nome']); $marca=addslashes($_POST['marca']); $descrizione=addslashes($_POST['descrizione']); $codice=addslashes($_POST['codice']); $prezzo=addslashes($_POST['prezzo']); $conn = @mysql_connect("localhost","root","") or die("connessione fallita"); @mysql_select_db("computergratis") or die ("connessione fallita"); $sql = "INSERT INTO prodotti(nome, marca, descrizione, codice, prezzo) VALUES ('$nome','$marca','$descrizione','$codice','$prezzo')"; $risultato = @mysql_query($sql) or die ("query fallita"); print "<font size=3 face=terminal>Inserimento effettuato correttamente.</font><a href=scheda.php>SCHEDA PRODOTTI</a>"; } ?> <form action="prodotti.php" method="post"> <table border="1" bordercolor="black" align="center"> <tr> <td colspan="2" bgcolor="white"><font align="center" size="5" face="Courier"><b>Dati del Prodotto</b></font></td> </tr> <tr> <td bgcolor="white"><font size="3" face="arial">Nome Prodotto</font></td> <td><input type="text" name="nome"></td> </tr> <tr> <td bgcolor="white"><font size="3" face="arial">Categoria</font></td> <td><select name="categoria"> <? $sql="SELECT * FROM categorie;"; $result=mysql_query($sql) or die($sql); while($line=mysql_fetch_array($result)){ print "<option value=".$line['idcategoria'].">".$line['categoria']; } ?> </select> </td> </tr> <tr> <td bgcolor="white"><font size="3" face="arial">Marca</font></td> <td><input type="text" name="marca"></td> </tr> <tr> <td bgcolor="white"><font size="3" face="arial">Descrizione</font></td> <td><input type="text" name="descrizione"></td> </tr> <tr> <td bgcolor="white"><font size="3" face="arial">Codice</font></td> <td><input type="text" name="codice"></td> </tr> <tr> <td bgcolor="white"><font size="3" face="arial">Prezzo</font></td> <td><input type="text" name="prezzo"></td> </tr> <tr> <td bgcolor="white"><font size="3" face="arial">Indirizzo scheda</font></td> <td><input type="text" name="indirizzo"></td> </tr> <tr> <td colspan="2" align="center" bgcolor="white"><input type="submit" name="inserisci" value="inserisci"></td> </tr> </table> </form> <br><br><br><br><br><br><br><br> <a href="catalogo.php"><img border="0" src="logo/indietro.gif"></a> <a href="index.php"><img align="right" border="0" src="logo/home.gif"></a> </body> </html> Ciao e grazie |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 2983
|
la categoria cioè "idcategoria" devi metterla anche nella tabella "Prodotti"
ogni prodotto deve avere anche l'id categoria a cui è associato poi quando vuoi selezionare tutti i prodotti di una categoria ti basterà fare una select con idcategoria = valore che ti interessa. potrai fare una JOIN fra le due tabelle: select p.*,c.* from prodotti as p LEFT JOIN categorie as c ON p.IDCATEGORIA=c.IDCATEGORIA WHERE c.IDCATEGORIA=xxx in questo modo tiri su dalle due tabelle tutti i dati che ti servono per i prodotti associati ad una categoria. in un database relazionale devi avere appunto una "relazione" tra le due tabelle. questa relazione è appunto il campo "IDCATEGORIA" ripetuto in tutte e due le tabelle a questo punto per ogni record inserito nella tabella categorie avrai N records inseriti nella tabella prodotti. la relazione è 1 a molti la chiave primaria della tabella categorie è IDCATEGORIA la chiave primaria della tabella prodotti è IDCATEGORIA+CODICEPRODOTTO |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: May 2004
Messaggi: 42
|
fede
Ti ringrazio per l'aiuto, ma mi hanno detto di utilizzare questo:
http:\\...\categoria.php?id=1 invece di fare i link, cioè nella tabella categoria ci sono i seguenti campi: idcategoria, categoria, collegamento (che sarebbe il link di ogni categoria) Prodotti contiene, idprodotto (chiaveprimaria), idcategoria(non ho capito se devo mettere anche qui chiave primaria) e poi nomeprodotto, masca, prezzo, descrizione, codice. cosi devo unilrle lo stesso le due tabelle? non mi odiare |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 2983
|
la tabella prodotti contiene anche l'idcategoria, puoi anche non definirlo come chiave primaria, se lo fai significa che non possono esistere due prodotti con lo stesso codice anche se su categorie diverse, va anche bene così.
la chiamata "categoria.php?id=1" serve a passare un parametro alla pagina categoria...il parametro lo troverai nella variabile $id quel parametro ti servirà per richiamare con la select tutti i prodotti per quell'$id e quindi visualizzarne l'elenco. in pratica nella pagina "categoria.php" farai una select: SELECT * from Prodotti WHERE IDCATEGORIA=$id in realtà non ho capito a cosa ti serva il campo "collegamento" nella tabella categorie. il collegamento , se intendi il "link" alla pagina categoria te lo costruisci passando semplicemente l'ID alla pagina. per passare uno o più paremetri ad una pagina si usa: nomepagina.php?parametro1=valore1¶metro2=valore2¶metro3=valore3 nella pagina ti ritroverai dunque tre variabili definite così: $parametro1='valore1'; $parametro2='valore2'; $parametro3='valore3'; |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 2983
|
ah, scusa, non avevo notato che usi le variabili HTTP_POST_VARS
if(!isset($_POST)) $_POST=$HTTP_POST_VARS; nel caso di parametri passati direttamente attraverso il link significa che stai usando il metodo GET quindi per beccarti l'ID non dovrai fare altro che: if(!isset($_GET)) $_GET=$HTTP_GET_VARS; a quel punto hai il tuo parametro ID come: $_GET['id'] |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:36.


















