SQL: pagina del prodotto specifico

Buonasera a tutti, è la prima volta che posto su questo forum, premetto che sono una novellina ed avrei bisogno di un aiutino.
Non mastico molto sql e php e faccio tutto con dreamweaver:
praticamente ho creato un sito dinamico che si connette ad un database. In questo database ci sono 2 tabelle, in una tabella una lista molto lunga di prodotti (prodotti) con la loro descrizione, e nell'altra tabelle (prezzi) le 3 fasce prezzi. Nellatabella 'prodotti' ci sono vari campi tra cui: nome_prodotto, colore_prodotto, e prezzo_prodotto. nella tabella prezzi' ci sono 4 campi prezzo1, prezzo2, prezzo3 e ID . nel campo prezzo_prodotto Nella tabella 'prodotti',non c'è il prezzo del prodotto, ma bensi un numero che è uguale ad un numero ID della tabella 'prezzi', in modo da variare in modo econominco i prezzi in caso di bisogno. So che per unire le 2 tabelle posso scrivere una cosa del tipo

SELECT*
FROM prodotti, prezzi
WHERE prezzi.ID=prodotti.prezzo_prodotto

e tutto viene eseguito corretamente nel senso che tutto viene combinato e a schermo compare il giusto prezzo di ogni prodotto. Il problema compare nel momento in cui vorrei che cliccando su un prodotto specifico si apra un'altra pagina dove si veda SOLO quel prodotto con i prezzi. In pratica non riesco , nel SQL avanzata (combinata) fare in modo che il risultato visualizzato dipenda dalla variabile url cliccata nella pagina precedente. Ho provato in tanti modi ma non riesco, cioè, ripeto, tutto va liscio solo fino a quando devo far comparire tutti i risultati e non quando cliccando voglio che compaiano i risultati di un singolo prodotto. Spero di essere stata chiara, mi rendo conto di aver scritto un papiro. Ringrazio chiunque possa aiutarmi.
Monica

 Micina_carina, N.D.

Ciao, una domanda: se nella tabella "prodotti" hai cinquanta prodotti di tipo diverso, devo supporre che nella tabella "prezzi" avrai il campo "prezzo50"? Oppure prezzo1, prezzo2, e prezzo3 sono univoci per tutti i prodotti? Oppure mi √® sfuggito qualcosa nel ragionamento? :-) In genere √® pi√Ļ semplice aggiungere anche il campo "prezzo" nella tabella "prodotti" e consentire da eventuale "pannello di controllo" all'amministratore del sito, di variare il campo prezzo attraverso l'opportuna interfaccia... √ą possibile come dici tu, creare una tabella "prezzi" a parte con un campo "id" e un campo "prezzo" ma in questo caso mi sfugge il senso "in modo da variare in modo econominco i prezzi in caso di bisogno" :-)
Chiarita la faccenda ti spiego come accedere alle pagine di dettaglio...

 Gian Paolo, N.D.

Ciao GianPaolo e intanto grazie di avermi risposto...
Effettivamente mi sono spiegata un pò male :-)....allora....
Di tutti i prodotti esistono 3 fasce prezzo, a loro volta ogni fascia prezzo a 3 prezzi in base alle dimensioni dell'articolo quindi la tabella è cosi formata:

ID, prezzo1, prezzo2 prezzo3
1 15 euro 20 euro 25 euro
2 20 euro 25 euro 30 euro
3 25 euro 30 euro 35 euro

poi la tabella prodotti

nome colore fascia_prezzo
x verde 1
y nero 2
z blu 1 ecc. ecc.:

supponendo che io abbia 300 prodotti di cui 100 sono della fascia prezzo 1, e un giorno volessi cambiare tutti e tre i prezzi della fascia 1, mi basterà cambiare i prezzi dell ID 1 della tabella prezzi in modo che poi automaticamente a tutti i 100 prodotti compaia il prezzo aggiornato....non so se mi sono spiegata, altrimenti, se mettessi il prezzo nell tabella prodotti dovrei cambiare a tutti e cento i prodotti di fascia prezzo 1 i prezzi.... cioè se il prodotto x appartiene alla fascia prezzo 1, io metterò nel campo fascia_prezzo della tabella prodotti il numero 1 che corrisponde all'ID 1 della tabella prezzi in modo che poi tramite l'istruzione sql combinata delle 2 tabelle compaia il prezzo e non il numero ID...forse sto incasinando ancora di piu il discorso, comunque dicevo che facendo cosi

SELECT*
FROM prezzi, prodotti
WHERE prodotti.fascia_prezzo=prezzi.Id

il risultato che mi compare a schermo è: tutti i prodotti CON TUTTI E TRE I PREZZI CORRISPONDENTI IN BASE ALLE DIMENSIONI cioè prezzo1 prezzo2 prezzo3
x es.

tela gialla 20x20= 15 euro 30x30= 20 euro 40x40=30 euro
perchè appartengono alla fascia prezzo 1...... e a seguito appaiono tutti i risultati.....ora vorrei che cliccando su un risultato in un altra pagina compaia solo quel risultato con descrizione e prezzi...solo che i prezzi li prende da una tabella e la descrizione prodotto da un altra, se non ci fosse questa unione di tabelle saprei come fare, dovrei creare sul nome prodotto un link che porta ad un altra pagina e a questa nuova pagina creare un recordset che ha come filtro l'id e come variabile url l'id...ma essendo una combinazione di 2 tabelle non so come fare....spero di essermi spiegata bene, se no davvero dimmelo che provo a scriverlo in un altro modo, non so proprio come fare ed ho bisogno d'aiuto. Grazie
Monica

 Micina_carina, N.D.

Allora fai una cosa molto semplice: esporta dal phpmyadmin la struttura Mysql del database, lasciando qualche prodotto già inserito e la tabella "prezzi"... mi occorre implementare il tuo db in un'area di prova... capirò meglio le tue intenzioni e mi facilita la soluzione... salvo incongruenze nell'Sql delle tabelle.

 Gian Paolo, N.D.

Pardon, ieri in verità ero un po' stanco e non ho letto con attenzione :-p Stamattina a mente fresca rileggendo ho capito immediatamente il ragionamento... tra l'altro è una soluzione che ho adottato anche io per variare i prezzi della bassa, media e alta stagione di un sito turistico... La soluzione è semplice: tenendo conto dell'uso della variabile URL = prezzo la prima parte del link rimane invariata, altrettanto il recordset. Adesso per visualizzare i dettagli delle tabelle combinate, nella pagina dettagli, apri il recordset in modalità avanzata e scrivi la seguente query:
SELECT*
FROM prezzi, prodotti
WHERE prodotti.fascia_prezzo & prezzi.Id=colname
poi clicchi sul pulsante + delle variabili... uscirà una mascherina con dei campi che dovrai compilare in questo modo:
Nome: colname (che è il nome di default per le variabili url ma tu puoi anche cambiarlo, facendo attenzione a cambiarlo anche nella query.
Numeric: -1
Valore runtime:$_GET['prezzo']
Comunque rimane un' incongruenza nella tabella prezzi... essa dovrebbe avere solo due campi id, prezzo in modo tale avverrebbe semplicemente questo:
id prezzo
1 15
2 20
3 25
Altrimenti nella pagina dettagli come fai? Metti 3 campi?!
Tuttavia, prova a risolvere il primo quesito poi magari cercher√≤ di essere pi√Ļ chiaro.
Fammi sapere :-)

 Gian Paolo, N.D.

Ciao GianPaolo, che piacere vedere la tua risposta... ho provato a fare come mi hai scritto ma non visualizza nulla...allora.cercherò di essere chiara piu che posso:
C'è la pagina foglio.php, che è la pagina dove compaiono tutti i risultati, e la pagina foglio2.php che è la pagina in cui vorrei comparisse solo il risultato clikkato nellA pagina foglio.php, ed è in questa pagina che vorrei apparissero i tre prezzi oltre al nome prodotto ecc. ecc.

Nella pagina foglio.php ho scritto questa SQl
SELECT*
FROM prodotti, prezzi
WHERE prezzi.ID=prodotti.fascia_prezzo

(e poi ho applicato l'aria ripetuta da comportamento server)

In realtà in questa pagina potrei anche evitare l'associazione delle 2 tabelle perchè non mi interessa che nella lista completa compaiano i prezzi, ma bensi nel foglio2.php che è la pagina dei dettagli del singolo prodotto.

A questo punto la pagina foglio.php funziona bene , i giusti prezzi sono abbinati al prodotto corrispondente(anche se mi interessa che siano abbinati nella pagina dei dettagli e non qui), a questo punto sul nome prodotto creo un collegamento associando l'id, ed il risultato del collegamento è: foglio2.php?ID=<?php echo $row_rs_prodotti['ID']; ?>

A questo punto non so come scrivere l'istruzione del foglio2.php perchè come avrai capito clicando sul prodotto non succede nulla, oppure si visualizzano dati sbagliati.
Ho anche pensato che fosse inutile associare le due tabelle gia nel foglio.php visto che in quella pagina voglio che appaiano solo tutti i prodotti senza i prezzi...non so,:-C sto andando in palla, aiuto Gianpaolo :-# ...non so proprio che sql scrivere nel foglio2.php visto che il dato da visualizzare è quello di un ID cliccato nel foglio.php. ho provato a scrivere l'istruzione che mi hai dato però non va cavoli :-?
Intanto grazie Mille.
Monica

 marcosciortino, N.D.

Ma cosa facciamo i furbi! Sei diventato/a un'altra persona... se pensate di prendermi in giro con dei nick ammiccanti o vi spacciate per donne, illudendovi di avere pi√Ļ attenzione degli altri, allora vuol dire che non avete capito niente. Senza aggiungere altro, chiedo gentilmente all'amministratore di chiudere il thread e prendere gli opportuni provvedimenti. Per oggi non rispondo pi√Ļ a nessuno!

 Gian Paolo, N.D.

Chiedo scusa...figuraccia... il fatto è che non so come venirne fuori e non riesco a fare una donazione per il momento per motivi economici... chiedo scusa ancora. ciao

 marcosciortino, N.D.

Nessuno ha chiesto donazioni... se hai mancato la parola in altre circostanze, soprattutto in argomenti dove vi era la presenza di video e di lezioni avanzate dove comunque nessuno ha imposto e dove nessuno ti ha chiesto niente in modo forzato, è un problema con la tua coscienza quando con atteggiamento spavaldo hai ritenuto già fatta l'operazione di ringraziamento. Non vi era alcun bisogno... e né di bleffare con atteggiamenti sotto mentite spoglie per ottenere informazioni utili per i tuoi scopi. Da me non avrai alcun contributo in futuro... bastava semplicemente ammettere la tua difficoltà economica... non sarebbe cambiato niente nella mia disponibilità. E con ciò concludo, pregandoti di non replicare ulteriormente perché sarai ignorato!

 Gian Paolo, N.D.

Ciao a tutti, non occorre scaldarsi, ognuno √® libero di rispondere oppure no ad ogni post, indipendentemente dal nickname (tanto pi√Ļ che il quesito √® off-topic). Fatto sta comunque che il sig. in questione ha cercato di prendere in giro un condivisore senior e violato l¬íart. VIII del regolamento. Qui si risolvono problemi su Dreamweaver e non sulle carenze SQL o di programmazione in generale. Pertanto speriamo che vada a studiare un po¬í e che si legga il regolamento prima di spammare in giro su internet. Argomento chiuso.

 Pablito, N.D.
001design.it ® è un marchio registrato.
© 2004-2017 Molfese Paolo - P.Iva: 03430820617 - All rights reserved | Tutti i diritti sono riservati.