Dreamweaver: next/previous.

Di: Moon | 26/09/2020 18:17:03
Ho creato un database (mysql/php) usando Dreamweaver per tutte le operazioni (insert record-rsQuery, etc).
Tutto ok, eccetto una cosa: in una certa query i pulsanti next/previous posti nella pagina risultati non funzionano bene. La situazione è questa: 2 combo 'select' dove l’utente seleziona una-una opzione, oppure non selezionando nulla lascia 'tutti /'tutti' iniziali. Nel caso di 'tutti'/'tutti' sulla pagina risultati funzionano benissimo i pulsanti next/prev., ma se è stata scelta una qualsiasi altra selezione, sulla loro pagina di risultati è impossibile far funzionare i pulsanti, almeno io da mesi non ci riesco.
Mille grazie per chi mi aiuta.

Risposte



Questo tipo di operazioni, Dreamweaver le genera automaticamente a prescindere dal tipo di database. Esso infatti crea le apposite "Pagine di dettaglio" che consentono la visualizzazione di sottoinsiemi di dati, applicando le stesse regole di layout a tutte le pagine, link next/previous compresi, siano essi immagini o testuali.
Quando non si viene a capo di certi problemi è consigliabile ripercorrere tutte le operazioni fatte, e in certi casi rifare anche tutto il lavoro... a volte basta omettere un piccolo passaggio che tutto il lavoro va a farsi benedire. Nel sito www.juliano.it ci sono esattamente i passaggi che hai fatto anche tu, solo che al posto delle combo-box ci sono i link che interrogano il database, dal quale vengono estratti i dati richiesti. Se ad esempio clicchi sula sezione "Gioielli" http://www.juliano.it/cat_gioielli.asp e decidi di visitare il catalogo "Collane" la query filtra solo i dati che nel campo del database iniziano con "co" (collane) e "gio" (gioielli) creando in automatico anche la barra di navigazione che anziché essere ad immagini è testuale (Avanti, Indietro, Primo, Ultimo). Controlla il tutto accuratamente e poi ci fai sapere.

Di: Gian Paolo | 26/09/2020 18:17:03


Prima di tutto grazie per la risposta.
- Quanto riguarda le pagine Dettaglio, le conosco bene, e le collego senza alcun problema sia all'immagine che testi.
- Quanto al sito che mi indichi, il filtraggio avviene attraverso un filtro imposto dal programmatore ( tipo: sono io che programmo :
SELECT *
FROM annunci
WHERE email = 'info@miosito.it'
ORDER BY id DESC
e in questo tipo di query neppure io ho nessun problema. Applicati i puls next/prev funzionano benissimo, quindi passano ai precedenti 10 (o a quanto li hai programmati) e ai prossimi 10 records.
Il problema che mi angoscia che la stessa cosa non avviene quando il filtro è risultato di una selezione esterna dell'utente.
Immagino che sbaglio qualcosa con i combo, o non so proprio dove.
I miei due combo contengono due liste dalle quali l'utente fa la sua scelta e poi invia. Questo è un form dove uno dei combo contiene tutte le marche moto (denominato: MarcaMo) e l'altro tutte le provincie italiane (denominato:Provi) - prima voce per tutti e due = 'Tutte' con un valore di '%' e con la query seguente:
SELECT *
FROM annunci
WHERE marcamoto like 'colname' AND provincia like 'colname1'
ORDER BY id DESC
( dove colname= '%' e $_POST['MarcaMo']
e colname1= % e $_POST['Provi'] )
Ebbene in questa situazione se si interroga tutta la DB cioè selezionando da tutti e due i combo la prima voce "TUTTE" la query funziona bene, i pulsanti next/perv cambiano pagine regolarmante.
Ma se l'utente seleziona un qualsiasi filtraggio (tipo BMW e Milano) la query in prima pagina da i risultati corretti, ma se azioni i puls next/prev non riconosce + il filtraggio e torna a dare la seconda pagina(i prossimi 10 records nel mio caso ) non + filtrata ma di quella dell'intera DB.
Ho letto sul vs forum che un altro utente ha avuto un problema simile e che ha poi trovato un 'piccolo' errore da solo. Io purtroppo nn ci riesco da sola.
Mille - mille grazie per tutti che mi aiutano.
Moon

Di: Moon | 26/09/2020 18:17:03


Vedi se può esserti utile il tutorial http://www.001design.it/forum_italiano/thread.php?id=1171 nel quale c'è una situazione analoga. Nella pagina di ricerca, selezionando la lettera "A" dall'"Elenco/menu" e cliccando sul pulsante "Cerca", la query
SELECT *
FROM Copertine
WHERE Idlettera = 'MMColParam'
ORDER BY Artista ASC
fa una ricerca per artista e titolo, che, nella pagina di dettaglio (lettere.asp), vengono elencati tutti, e posso scorrerli tranquillamente con la barra di navigazione. Per comodità (e per pigrizia) ho aggiunto il risultato "Area" sia al campo "Artista" sia al campo "Titolo".
Sono anch'io del parere che nella tua applicazione ci sia un errore nella query e probabilmente anche nell'organizzazione del database. Il database che uso io è un database relazionale. Comunque se può esserti utile, nel link sopra citato, c'è anche la lezione da cui ho tratto il tutorial.

Di: Gian Paolo | 26/09/2020 18:17:03


Ti ringrazio ancora per la tua gentilezza.
Andrò sicuramente a consultare il link che mi hai consiglato.
Intanto vorrei solo dire che col il DB nn credo che ci sia nessun problema ma col l'interrogazione o con l'impostazione dei combo sicuramente qualcosa nn quadra.
Ho un sito di + di 200 pagine basato a DB e moltissime interrogazioni che funzionano benissimo ovunque, tolta questa 'pikkola' particolarità che quando ci sono i filtraggi che devono essere impostati dall'utente dalle pagine web, nn si riesce + a cambiare pagina.
Attualmente ho risolto il problema che in questi tipi di query faccio listare tutti i record su una sola pagina.. ma ora mi stanno arrivando un sacco di annunci e la questione diventa ridicola cioè avere una pagina lunga kilometrica. postazione dei combo qualcosa nn quadra di sicuro.

Di: Moon | 26/09/2020 18:18:03


Scusate, l’invio è partito prima del dovuto.
Dicevo, mando la parte sorgente in php magari qualcuno scopre dove è questo errore che mi fa disperare...
<!-- Commento aggiunto per non interferire con il codice della pagina del forum di 001design.it.
<?php require_once('../Connections/myConn.php'); ?>
<?php
$currentPage = $_SERVER["PHP_SELF"];
$maxRows_rsProva = 3;
$pageNum_rsProva = 0;
if (isset($_GET['pageNum_rsProva'])) {
$pageNum_rsProva = $_GET['pageNum_rsProva'];
}
$startRow_rsProva = $pageNum_rsProva * $maxRows_rsProva;
$colname_rsProva = "%";
if (isset($_POST['MarcaMo'])) {
$colname_rsProva = (get_magic_quotes_gpc()) ? $_POST['MarcaMo'] : addslashes($_POST['MarcaMo']);
}
$colname1_rsProva = "%";
if (isset($_POST['Provi'])) {
$colname1_rsProva = (get_magic_quotes_gpc()) ? $_POST['Provi'] : addslashes($_POST['Provi']);
}
mysql_select_db($database_myConn, $myConn);
$query_rsProva = sprintf("SELECT * FROM annunci WHERE marcamoto like '%s' AND provincia like '%s' ORDER BY id DESC", $colname_rsProva,$colname1_rsProva);
$query_limit_rsProva = sprintf("%s LIMIT %d, %d", $query_rsProva, $startRow_rsProva, $maxRows_rsProva);
$rsProva = mysql_query($query_limit_rsProva, $myConn) or die(mysql_error());
$row_rsProva = mysql_fetch_assoc($rsProva);
if (isset($_GET['totalRows_rsProva'])) {
$totalRows_rsProva = $_GET['totalRows_rsProva'];
} else {
$all_rsProva = mysql_query($query_rsProva);
$totalRows_rsProva = mysql_num_rows($all_rsProva);
}
$totalPages_rsProva = ceil($totalRows_rsProva/$maxRows_rsProva)-1;
$queryString_rsProva = "";
if (!empty($_SERVER['QUERY_STRING'])) {
$params = explode("&", $_SERVER['QUERY_STRING']);
$newParams = array();
foreach ($params as $param) {
if (stristr($param, "pageNum_rsProva") == false &&
stristr($param, "totalRows_rsProva") == false) {
array_push($newParams, $param);
}
}
if (count($newParams) != 0) {
$queryString_rsProva = "&" . htmlentities(implode("&", $newParams));
}
}
$queryString_rsProva = sprintf("&totalRows_rsProva=%d%s", $totalRows_rsProva, $queryString_rsProva);
?>
Fine commento aggiunto per non interferire con il codice della pagina del forum di 001design.it. -->
Grazie ancora, intanto vado a consultare il tuo link.

Di: Moon | 26/09/2020 18:18:03


Carissimo Gian Paolo, ti ringrazio infinitamente, da stamattina ho due nuovi combo sul sito che funzionano alla perfezione! Il mio era un piccolo, ma imperdonabile errore, ora tutto ok!
Grazie ancora!

Di: Moon | 26/09/2020 18:18:03


Siamo contenti che tu abbia risolto... lo saremmo ancora di più se condividessi con noi "il piccolo ma imperdonabile errore". Favoriremmo un eventuale altro membro che possa trovarsi nella medesima situazione.

Di: Gian Paolo | 26/09/2020 18:18:03


..beh io l'ho capito dal tuo tutorial appena aperto. Non ho usato i dynamic combo! - da nn credere vero ?!... quindi, un 'pikkolo ma imperdonabile errore'! ma ora tutto ok

Di: Moon | 26/09/2020 18:18:03