Dreamweaver CS4: recordset

Di: mornord | 26/09/2020 17:12:52
Salve, ho creato una lista con dei prodotti con con i Recordset in php, sul database my sql ho 5 campi: ID, Titolo, Descrizione, Scheda, Foto,
Nella Lista principale ho l'ID nascosto, poi il titolo e la descrizione e la foto in miniatura e fin qui ci sono, ora vorrei che cliccando mi si apra la pagina Scheda dove visualizzo la foto ingrandita con il Titolo (che è uguale a quello della lista) e poi il testo della Scheda in dettaglio che sarebbe il campo "Scheda".
La scheda funziona, putroppo mi visualizza sempre il primo del database che trova, come potrei fare? il pulsante che accede alla scheda devo richiamarlo con qualche variabile? grazie

Risposte



Esattamente... ci vuole una "variabile GET" o "ur", come preferisci, nella pagina di dettaglio, altrimenti vedrai sempre i dati del primo record. Naturalmente va messo prima un filtro di un dato univoco incrementale, di norma è l' "ID" che associa al record "titolo" "descrizione" "scheda" i valori "1,2,3,4,5 ecc." a seconda di quante volte viene ripetuto e poi una variabile che puoi chiamare come ti pare, l'importante che sia assegnata anche al link nella pagina principale. Es., se la tua variabile, nella pagina di dettaglio la chiami "pippo" e supponendo che il campo "titolo" apra la pagina scheda, il link della pagina principale deve essere di questo tipo: <a href="scheda.php?pippo=<?php echo $row_rs_prodotti['id']; ?>"> <?php echo $row_rs_prodotti['titolo']; ?></a>. Siccome parli di prodotti, suppongo che abbia codificato il tuo recordset con la stringa "rs_prodotti", altrimenti metti il nome che gli hai assegnato tu.

Di: Gian Paolo | 26/09/2020 17:12:52


Ciao Gian Paolo, grazie per l'aiuto, ti dico quello che ho fatto, ma credo di non aver fatto nemmeno una cosa nel modo giusto
allora nella scheda del prodotto ho messo una variabile,sicuramente sbagliata, così:
<?php
$prodotto= $_POST ['ID'];
?>
e nella lista principale dove ho titolo,descrizione e foto ho un link "vai alla scheda", così ho messo su quest'ultimo il codice in questo modo
<a href="scheda.php?prodotto=<?php echo $row_rslista['ID']; ?><?php echo $row_rslista['Vai alla Scheda']; ?>">vai alla scheda</a>
quando accedo al browser il link finisce così scheda.php?prodotto=83 sembra esatto ma esce sempre solo il primo prodotto dal database.

Di: mornord | 26/09/2020 17:12:52


Intanto la variabile deve essere "GET" e non "POST" ma poi mica va messa così a casaccio, manca tutto il resto del codice! Fai una cosa, procedi in questo modo. Nella pagina dei dettagli dal pannello Applicazioni > Associazioni schiacci il pulsante +, crei un nuovo recordset che chiamerai "rs_dett" (codificato, significa recordset_dettagli) aggiungi la connessione che stai utilizzando, dal menu "tabella" selezioni la tabella dove tieni i campi ID, Titolo, Descrizione, Scheda e Foto e fin qui pare che ci siamo... POI (sempre nella medesima scheda) dal menu a tendina "filtro", scegli "ID" e al lato lasci l'operatore =, nel menu sottostante (dovrebbe porsi in automatico) scegli Parametro url e nel box affianco metti ID... gli ultimi menu in basso li lasci stare. Clicchi su ok. Crei una tabella con cinque colonne, dentro ognuna trascini dal recordset le icone a forma di lampo che corrispondono appunto ai campi "Titolo, Descrizione ecc." Adesso però mi sorge un altro dubbio, nel database MySql, al campo ID che valori hai dato?
Hai messo ID, "Tipo" Int > Null no > e soprattutto "Extra" auto_increment > e soprattutto ancora l'hai messo in chiave univoca? Cliccando l'apposito radio button?
Insomma, la query della tabella del database deve essere così, altrimenti non ti funzionerà niente:
CREATE TABLE `prodotti` (
`id` int(11) NOT NULL auto_increment,
`titolo` text NOT NULL,
`foto` text NOT NULL,
`scheda` text NOT NULL,
`descrizione` longtext NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Purtroppo ho i database pieni e non posso, pur volendo farti vedere l'esempio online... comunque fammi sapere.
Ma anche i link sono sbagliati, cosa centra quel "vai alla scheda", nel campo dinamico? In mezzo a quelle parentesi quadre ci deve essere il nome del campo, non hai visto il mio esempio?

Di: Gian Paolo | 26/09/2020 17:12:52


allora, ho fatto come hai detto, nella pagina della scheda, ho ricreato il recordset e chiamato rsprodotti poi dal pannello associazioni ho messo il filtro ID e poi l'operatore = con parametro url ID , ci avevo provato in precedenza ma una volta trascinati i recordset nelle tabelle quando apro la pagina del browser non compare più nulla ne il testo ne la foto ecc. ma resta solo il layout della pagina.
il database è composto così
ID Int(11) NOT NULL auto_increment chiave univoca
Descrizione varchar(30) NOT NULL utf8_general_ci
Testo text utf8_general_ci NOT NULL
Foto varchar(255) utf8_general_ci Sì NULL
Scheda text utf8_general_ci NOT NULL
si infatti ho sbagliato, ma nel link cosa dovrei mettere tra le parentesi quadre visto che il link che dovrebbe accedere alla pagina scheda non è un campo del database? tu avevi messo 'titolo' , se metto ad esempio descrizione , quando apro la pagina del browser mi esce ?prodotto=89borsa e invece se metto tra le quadre ID mi esce ?prodotto=8989

Di: mornord | 26/09/2020 17:12:52


gian paolo ho notato che mettendo nella barra indirizzi scheda.php?ID=1 ecc.. funziona ,le schede cambiano perfettamente.
il problema sta ora nella pagina principale cioè la lista principale
ho cambiato e ho messo ID tra le parentesi e mettendo questo codice al link vai alla scheda, invece di aprire scheda.php?ID=1 mi apre scheda.php?ID=11
e sul secondo invece di aprire cheda.php?ID=2 mi pare scheda.php?ID=22
<a href="scheda.php?ID=<?php echo $row_rslista['ID']; ?><?php echo $row_rslista['ID']; ?>">vai alla scheda</a>

Di: mornord | 26/09/2020 17:12:52


ho risolto così togliendo la seconda parte del codice mettendo al link "vai alla scheda" solo questa parte di codice
<a href="scheda.php?ID=<?php echo $row_rslista['ID']; ?>
la seconda parte di codice a cosa serviva allora?

Di: mornord | 26/09/2020 17:12:52


Vedi che ragionando ci si arriva? La seconda parte fa da link alla pagina di dettaglio... e la devi scrivere così: <a href="scheda.php?ID=<?php echo $row_rslista['ID']; ?>"><?php echo $row_rslista['Titolo']; ?></a> togli quel "vai alla scheda" non serve, lo fai dinamicamente nel senso che per ogni record hai un link associato. Forse ho trovato uno spazio per farti vedere come viene online, mi rendo conto che certe cose bisogna vederle...

Di: Gian Paolo | 26/09/2020 17:13:52


si hai ragione putroppo su certe cose sono di coccio non ci arrivo subito :D
cmq ho scritto nel secondo messaggio ho risolto togliendo la seconda parte di codice cioè da così:
<a href="scheda.php?ID=<?php echo $row_rslista['ID']; ?>"><?php echo $row_rslista['Titolo']; ?>
a così:
<a href="scheda.php?ID=<?php echo $row_rslista['ID']; ?>">vai alla scheda</a>
se metto invece come hai detto tu cioè mettendo anche la seconda parte del codice, il link per accedere alle schede non esce.
Cmq così funziona e ti ringrazio tantissimo!

Di: mornord | 26/09/2020 17:13:52


Guarda adesso! È quello che ho potuto fare in pochi minuti, però credo che renda l'idea... Prova ad inserire quello che ti pare e vedi che nella scheda avrai i titoli che ti rimandano al dettaglio dinamicamente:http://starweb.starnet.it/gianpaolo/prodotti/inserimento_prodotti.php

Di: Gian Paolo | 26/09/2020 17:13:52


ho visto, però io volevo fare in modo appunto che invece di cliccare sul titolo per accedere alla scheda , volevo proprio un link con la scritta "vai alla scheda" e togliendo la seconda parte di codice funziona guarda qui
http://www.mornord.altervista.org/pelletteria/prova2.php
ci sarebbero un altro paio di cosette che ti vorrei chiedere però non vorrei approfittarne sei stato già fin troppo gentile!

Di: mornord | 26/09/2020 17:13:52


Allora basta che nel database aggiungi un campo in più che chiami "link", e nella proprietà "predefinita" aggiungi "Vai alla scheda"... in questo modo su ogni prodotto hai il relativo link del dettaglio...
Per oggi scusami, devo finire delle cose e francamente mi sa che non le finirò... . Tu semmai prepara la domanda che entro domani darò un'occhiata...

Di: Gian Paolo | 26/09/2020 17:13:52


ok grazie! non so come avrei fatto senza il tuo aiuto! dopo allora ti faccio quel paio domande. grazie ancora

Di: mornord | 26/09/2020 17:13:52


Ho capito cosa intendevi, essendo una parola statica che si ripete puoi lasciarla tranquillamente così..
Dovresti aggiustare quell'errore javascript... credo dipenda dal mal funzionamento del "body onload="MM_preloadImages"...

Di: Gian Paolo | 26/09/2020 17:13:52


la lascio così allora perchè funziona.
si credo di averlo aggiustato c'era un qualcosa all'inizio di troppo all'inizio :D
Comunque le domande che volevo fare erano queste:
nella pagina inserisci record ogni volta che inserisco un nuovo record resta sempre tutto il contenuto dell'ultima operazione e devo prima cancellarlo a mano prima di inserirne altro.
poi non so se si può fare stesso dalle funzioni di dreamweaver, nella pagina "aggiorna" invece di avere la lista di tutti i prodotti, ne vorrei vedere uno soltanto e con una piccola ricerca ad esempio in base alla descrizione o ad un eventuale campo che poi potrò mettere tipo codice.
e un'ultima cosa, gli spry tooltip di dreamweaver possono funzionare con i recordset? funziona solo il primo della lista e il resto invece non li nasconde e quando ci passo il mouse sopra il tooltip è sempre di quello della prima lista.

Di: mornord | 26/09/2020 17:13:52


Messaggio del moderatore
Ok ma ora gli abusi sulla generosità di Gian Paolo sono finiti.
Ogni nuovo argomento deve trovare un suo nuovo spazio nel forum (non sono ammesse domande multiple nello stesso argomento), poi tutto ciò che non riguarda Dreamweaver è fuori questione, argomento chiuso.

Di: Pablito | 26/09/2020 17:13:52