Newsgroup: it.comp.www.asp
Titolo: estrarre dati da url modificata

Ciao a tutti, non riesco ad estrarre i dati inviati dalla url dopo il ?
Io ho un elenco di nomi e cognomi e cliccando su ogni nome si dovrebbe
aprire una pagina personale con i dati aggiuntivi di ogni persona.
Se non ho capito male in ASP dovrei mettere il comando
Rquest.QueryString("nome"). Giusto?
Ma il problema è che non so come scrivere il link della pagina con la lista
dei nomi.
Usando i form ed il tasto Submit riesco (anche se sia usando il comando GET
che POST non mi modifica la url), ma non so come comportarmi con una
semplice lista di nomi senza form
Grazie
Mark

 Mark
Ciao
-- 
AZ [Microsoft - .NET MVP]
Mia Home page: 
http://ciclismo.sitiasp.it
Asp.Net community: 
http://www.aspitalia.com
Il mio blog: 
http://blogs.aspitalia.com/az

 Ciao
Nuovo problema, visto che prima ho dimenticato di scrivere una cosa.
La lista di nomi e cognomi la estraggo da una tabella con questo ciclo
<%
while(!rst.EOF)
{
Response.write("<a href=" + rst("Cognome") +".asp>" + rst("Cognome") + 
"&nbsp;" + rst("Nome") +"</a><br>"); 
rst.MoveNext();
}
%>
Però così facendo devo creare una pagina per ogni giocatore chiamata 
cognome1.asp, cognome2.asp, ecc.
Devo eliminare il Response.write in qualche modo?
Ho provato a scrivere così
Response.write ("<a 
href="giocatore.asp?<%=Request.QueryString("Cognome")%>>" +rst("Cognome") + 
"&nbsp;" + rst("Nome") + "</a><br>");
Ma già mentre lo scrivevo non ne ero affatto convinto ed infatti non ha 
funzionato..
Ciao Mark



Ho risolto scrivendo così.
Fatemi sapere se è corretto
<%
while(!rst.EOF)
{
Response.write("<a href=giocatore.asp?cognome=" + rst("Cognome") + "&nome=" 
+ rst("Nome") +">"+rst("Cognome") + "&nbsp;" +rst("Nome")  +"</a><br>"); 
st.MoveNext();
}
%>
In questo modo rimane scritto "Cognome Nome" con il link 
giocatori.asp?cognome=Cognome&nome=Nome.
Ma ora sulla pagina giocatori.asp come scrivere il codice?
Mi da sempre l'errore 404, pagina inesistente.
Ho modificato la stringa di interrogazione al database della pagina 
giocatori.asp in questo modo:
sSQLString="Select * from Tabella where Cognome="& 
Rquest.QueryString("Cognome") &"";
Dove sbaglio?
Solo che non ho ancora un manuale di asp e mi sto aiutando con cosa riesco 
a trovare in rete.
Ciao Mark

 Ciao Mark


 Il resto non capisco che vuoi fare...
Ciao, ho provato ma non riesco..
Nel senso che dopo che attualmente ho 2 pagine asp: "lista.asp" dove ho la
lista di cognome e nome delle persone estratte da database e una seconda
pagina "giocatori.asp" dove dovrebbe comparire una scheda più dettagliata
di ogni singolo giocatore.
Se passo il mouse sopra uno dei Nomi e Cognomi della prima pagina mi
visualizza nella barra in basso questo link
giocatori.asp?cognome=Cognome&nome=Nome, che è corretto credo.
Ora quello che non so fare è come creare in base al nome che clicco una
"pagina virtuale" (perdona le virgolette ma non so il termine esatto)
chiamata "giocatori.asp?cognome=Cognome&nome=Nome".
Attualmente è come se cercasse nel server quella pagina e trovando solo
giocatori.asp mi da l'errore 404.
Spero di essere stato almeno un po' più chiaro
Mark

 Mark
Ciao



Qua non ho capito cosa intendi. Nel senso che la mia chiave primaria nella
tabella è il campo Cognome, ma aggiungere un colonna contatore non è un
problema. Vantaggi?
Scusate per la lunghezza del post
Ciao Mark

 Ciao Mark
Ciao


 
Ok, chiarissimo, più avanti farò questa modifica, ora vado a cercare
qualche pagina che mi spieghi come si fa...
Sempre gentilissimo
Grazie
Mark

 sSQLString="Select * from Tabella"
Perchè li estrai tutti??
non sarebbe meglio un
nome=Request("nome");
cognome=Request("cognome");
sSQLString="Select * from Tabella WHERE cognome = '" & cognome & "' AND nome
= '" & nome & "'"
in modo che ti estragga SOLO il giocatore.
di cui poi visualizzerai i campi...
o no?
ciao
stef

 Mark
Prego :)


 
Non funziona la stringa di SQL, mi restituisce il seguente errore
Microsoft JET Database Engine (0x80040E14)
Istruzione SQL non valida. Prevista 'DELETE', 'INSERT', 'PROCEDURE',
'SELECT' o 'UPDATE'.
Io la parte che mi hai consigliato l'ho inserita dove c'era la precedente
stringa e anche l'inizializzazione delle due variabili
Ciao
Mark

 dati passati.
Ciao, ho ripreso oggi in mano il codice.
Se io passo come variabile della url l'ID come campo contatore, quindi 
unico per ogni giocatore con il codice seguente ottengo un errore.
<%
var con;
var sConString;
con=Server.CreateObject("ADODB.Connection");
sConString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + 
Server.MapPath("../database.mdb");
con.Open(sConString);
var rst;
var sSQLString;
ID=Request ("ID");
rst=Server.CreateObject("ADODB.Recordset");
sSQLString="SELECT * from tabella WHERE ID = ID";
rst=con.Execute(sSQLString);
%>
La riga sbagliata č quella con il codice SQL.
Se metto come codice 
sSQLString="SELECT * from PrimaSquadra WHERE ID = '"& ID &"'";
mi restituisce l'errore che ho scritto nel messaggio di stef
"Istruzione SQL non valida. Prevista 'DELETE', 'INSERT', 'PROCEDURE',
'SELECT' o 'UPDATE'."
Il select c'č. quindi dove sbaglio?
Nell'inserire ID= Request ("ID") subito dopo la connessione al database?
Ciao Mark

 mi restituisce l'errore che ho scritto nel messaggio di stef
Dovrebbe essere:
ID=Request ("ID");
sSQLString="SELECT * from PrimaSquadra WHERE ID = "& ID;


 Ciao
Continua a non funzionare.
non mi prende la variabile ID.
Perchè se scrivo WHERE ID = 10; mi restituisce il giocatore con l'ID = 10.
Da cosa può essere dovuto?
Un Mark sconsolato
-- 
Annulla IL GOL per rispondermi

 Un Mark sconsolato
Hai provato a fare:
response.Write(sSQLString);
Per vedere cosa ti viene restituito?


 Per vedere cosa ti viene restituito?
Allora: l'errore lo trova alla riga dove c'è
rst=con.Execute(sSQLString);
Togliendo quella, mi trova l'errore alla chiusura delle connessioni.
"L'operazione non è consentita se l'oggetto è chiuso." alla riga
rst.Close();
Visto che ero in locale ho provato a far partire il tutto togliendo la
chiusura delle connessioni.
Risultato: mi restituisce solo uno 0 (zero) in mezzo allo schermo e basta,
ma credo sia normale visto il casino che ho combinato.
Ho sbagliato io a scrivere il Response.Write?
L'ho messo dopo la stringa di sql, dove prima c'era la richiesta delle
variabili di Nome, Cognome, ecc.
Ciao Mark


 Ho sbagliato io a scrivere il Response.Write?
Dimenticavo: sempre se è jscript è case sensitive; controlla quindi di aver
usato 
 Response.Write(xxx); 
-- 
"E' l' ignoranza che crea l'intolleranza
 di gente cieca e senza coscienza"
									  S.S.S.

 ma credo sia normale visto il casino che ho combinato.
Leggo (non ho seguito il thread):
 sSQLString="SELECT * from PrimaSquadra WHERE ID = '"& ID &"'";
 Non è che stai usando jscript? (vedo quel ; finale che con vbscript
dovrebbe segnalare errore, o almeno credo)...
Se è jscript non esiste & come concatenatore ma + (e, a grandi linee, direi
che una sintassi come sopra potrebbe sì restituire zero).
Se è jscript sostituisci & con + (e togli le virgolette all'id che immagino
sia numerico), del tipo
.....where id="+ID; //attenzione che è case sensitive, verifica di aver
dichiarato ID in modo corretto (ma penso di sì altrimenti ti segnalerebbe
errore "ID non definito").
Prova un po'...
-- 
"Emancipate yourselves from mental slavery;
None but ourselves can free our minds"
									    B.M.

 Se è jscript sostituisci & con + 
Funziona tutto perfettamente!!!
Grazi, grazie e ancora grazie!
(e ovviamente grazie ad Andrea Zani per la pazienza...)


 mi dimentico sempre di specificarlo, visto che qui tutti usate vbscript.
Parla per te...  :-)
p.s. molto strano che all'università insegnino jscript per asp, ho degli
amici a Milano e a loro insegnano *rigorosamente* vbscript...
-- 
"That until there is no longer first class
And second class citizens of any nation
Until the colour of a man's skin
Is of no more significance than the colour of his eyes
Me say war"
B.M.

 amici a Milano e a loro insegnano *rigorosamente* vbscript...
Eh già... ma ho un prof che ha spiegato principalmente come funziona asp e
ci ha fatto vedere giusto il programma "Hello world" scritto in 4
dimensioni diverse :-) e poi ci ha detto che non usa mai asp perchè è
anti-microsoft...
Vallo a capire...
Vabbè, chiudiamo qua che andiamo OT.
Grazie ancora
ciao Mark
