Dreamweaver: estrarre le notizie dal database

Di: fabio74 | 26/09/2020 17:35:51
Volevo sapere come fare con Dreamweaver ad estrarre da un mio database le notizie dalla quarta in poi. È possibile?

Risposte



Ciao, detta così la risposta è nelle query SQL. Una volta che ogni notizia è indicizzata nel tuo database, ti basterà impostare la query per fare ciò che hai chiesto. Quindi se avranno una chiave ID (sempre consigliabile per ogni tabella), farai la selezione dal numero maggiore di ID=3.
Studia qui come usare il Select:
http://www.w3schools.com/sql/sql_select.asp
http://www.mrwebmaster.it/sql/guide/select-interrogazione-tabella_192.html

Di: Pablito | 26/09/2020 17:35:51


Quindi se nn ho capito male dalle guide che ho letto dagli indirizzi che mi hai inviato devo sotituire * (che nel mio caso intende tutti i record) col numero di record che voglio io
Set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = MM_jt_STRING
Recordset1.Source = "SELECT * FROM jt ORDER BY id DESC"
Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 1
Recordset1.Open()
Ora il mio problema è come dirgli che invece di tutti deve inziare a leggere dalla quinta notizia in poi?

Di: fabio74 | 26/09/2020 17:35:51


Dimenticavo l'id è dinamica in quanto le notizie vengono inserite all'interno del database e automaticamente genera un id.

Di: fabio74 | 26/09/2020 17:36:51


A me risulta che puoi usare un ordine decrescente ed un limite per mostrare le ultime tre pubblicate, comunque stiamo parlando di comandi SQL e non di Dreamweaver.
$sql = 'SELECT * FROM `NomeTabella` ORDER BY `NomeTabella`.`uid` DESC LIMIT 0, 3 ';

Di: Pablito | 26/09/2020 17:36:51


Si ma a me nn serve mostrare le ultime tre pubblicate.
Mi spiego meglio ho un database esempio con 15 notizie, voglio fare in modo che le notizie da mostrare iniziano dalla notizia numero 4 in poi. Grazie

Di: fabio74 | 26/09/2020 17:36:51


E allora fai tutto il contrario, ordine ascendente 4, x.

Di: Pablito | 26/09/2020 17:36:51


Scusate, per ovvie ragioni non ho avuto tempo di seguire l'andamento delle ultime attività del forum. Approfitto per un saluto a Pablito e a tutti gli amici.
Dunque... la soluzione è molto semplice, Pablito ti ha già spiegato che un campo ID in chiave autoincremetale è quasi sempre indispensabile quando si effettuano operazioni d’inserimento dal browser. Solo in pochissimi casi può non essere necessario. Per fare un esempio veloce: in una struttura turistica, c'è l'esigenza di aggiornare solo i prezzi relativi alla bassa, alla media e all'alta stagione. Come vedi per il campo stagione si possono associare numeri o lettere, 1,2,3 oppure a,b,c.
Supponiamo che:
1= Bassa stagione | prezzo= 1000 | Camera= Alfa
2= Media stagione | prezzo= 1500 | Camera= Alfa
3= Alta stagione | prezzo= 2000 | Camera= Alfa.
Si può facilmente intuire che l'unica cosa da aggiornare è il prezzo. Le stagioni sono invariate, quindi l'ID può essere omesso perché si suppone che non ci siano da incremetare altri record. Le stagioni sono tre e i relativi record saranno tre, si puo' cambiare il prezzo e il nome della camera.
Nel tuo caso il tutto si riduce a una query di questo tipo: interrogando il db, molto semplicemente inserisci la seguente istruzione: $query_rs_notizie = "SELECT * FROM notizie WHERE id > 4 ORDER BY "; Io ho usato il recordset di Dreamweaver, ma nulla ci vieta di usare: $sql="SELECT * FROM notizie WHERE id > 4 ORDER BY "; se la dichiari correttamente. In sostanza diciamo alla nostra tabella di tenere in considerazione i record dal 5 in poi adoperando l'operatore > (maggiore di). Attenzione, però fermo restando che la tua tabella non venga aggiornata con possibili cancellazioni di record; se cancelli i record legati all'unico ID... passami l'espressione, "buonanotte al secchio" . In tal caso la tabella va strutturata diversamente. Tuttavia tu non hai parlato di modifiche quindi do per buono che tu agisca sull'ID primario, altrimenti, ribadisco, la tabella va costruita in altro modo .
Permettetemi di aggiungere una cosa. Dreamweaver non è un programma che si occupa soltanto di formattare html e fogli di stile. Il linguaggio Server side, dalla versione 4 ultradev è diventata una specialità, imprenscindibile del tool. Esistono gli appositi pannelli che gesticono i recordset ossia il codice necessario da applicare alla tabella in maniera molto semplice... per operazioni come queste non è indispensabile essere provetti programmatori, benché sia importante avere le basi per sapere come funzionano certi meccanismi. Ovviamente è sempre meglio saperne di più, perché prima o poi capitano soluzioni che DW non può metterci a disposizione...
Ecco cosa sono i pannelli per gestire le fonti dei dati http://editor.html.it/guide/lezione/387/definire-le-fonti-di-dati/

Di: Gian Paolo | 26/09/2020 17:36:51


Sì, mi associo ed aggiungo solo che il campo ID è fondamentale perché potresti avere due righe uguali nel tuo database. Con il campo ID non farai confusione tra due linee uguali (ad esempio due membri di una comunità con lo stesso nome ma con il numero di matricola diverso).

Di: Pablito | 26/09/2020 17:36:51


io ho questo codice
Dim Recordset2
Dim Recordset2_numRows
Set Recordset2 = Server.CreateObject("ADODB.Recordset")
Recordset2.ActiveConnection = MM_jt_STRING
Recordset2.Source = "SELECT * FROM jt WHERE tipologia = '" + Replace(Recordset2__MMColParam, "'", "''") + "' ORDER BY id DESC"
Recordset2.CursorType = 0
Recordset2.CursorLocation = 2
Recordset2.LockType = 1
Recordset2.Open()
Recordset2_numRows = 0
%>
<%
Dim Recordset3__MMColParam
Recordset3__MMColParam = "articolo"
If (Request.QueryString("tipologia") <> "") Then
Recordset3__MMColParam = Request.QueryString("tipologia")
End If
come lo modifico?

Di: fabio74 | 26/09/2020 17:37:51


Ascolta caro fabiomaria è così difficile mettere un segno > maggiore nella query che ti abbiamo appena spiegato? Io il linguaggio ASP non lo uso più e le mie macchine sono configurate per php e server apache. Ad occhio posso dirti che il tuo codice è pasticciato e incompleto. Cio che devi fare in maniera molto semplice, mentre hai ancora davanti la scheda del recordset:
1)nella casella filtro metti ID
2)affianco alla casella filtro dal menu a tendina scegli >
3) sotto la casella filtro dal menu a tendina scegli "valore inserito"
4)affianco al valore inserito metti il valore che ti occore, nel tuo caso 4
5) nella casella "ordina", dal menu a tendina scegli ID e di fianco scegli Ascendente. Questa è la maniera più semplice per istruire la query alla domanda che hai fatto inizialmente... cioè istruisce la tabella del database a darti i valori maggiori di quattro... semplice no?

Di: Gian Paolo | 26/09/2020 17:37:51