6 messaggi dal 03 dicembre 2003
Ciao a tutti,
premetto che sono un principiante dell'asp.
Il quesito che volevo porvi è il seguente:

Sto creando una galleria di immagini e nella pagina di inserimento delle immagini oltre al titolo, url, etc dell'immagine, sono interessato ad inserire la data in cui è stata scattata la foto.
Ora il problema come posso inserire una data (che non sia quella attuale) da un form ad un db?
Ho pensato di creare tre campi di testo uno per il giorno uno per il mese e uno per l'anno per evitare casini, ma non riesco a capire come posso far si che questi 3 campi uniti formino la data...
Spero di essermi spiegato,
Grazie per l'aiuto,

Estel
2.584 messaggi dal 14 maggio 2001
dovresti fare:
rst("campo1") & "/" & rst("campo2") & "/" & rst("campo3")

questo metodo non è però performante per ricerche sulle date... ti conviene mettere un campo "data"
6 messaggi dal 03 dicembre 2003
seoman ha scritto:
dovresti fare:
rst("campo1") & "/" & rst("campo2") & "/" & rst("campo3")


rst? la variabile che uso?

questo metodo non è però performante per ricerche sulle date... ti conviene mettere un campo "data"


Non mi interessa fare ricerca sulla data...cosa intendi per campo "data"?
2.584 messaggi dal 14 maggio 2001
che db usi?
se usi access nella struttura puoi assengnare al formato del campo il tipo data\ora che ti fa inserire una data e ti permette di ricercare direttamente con sql del tipo:

... WHERE campoData=#04/12/2003# ....

Il metodo che hai intrapreso (spezzettare la data) è controproducente... come faresti a ricercare una data particolare?
6 messaggi dal 03 dicembre 2003
seoman ha scritto:
che db usi?


Access

Il metodo che hai intrapreso (spezzettare la data) è controproducente... come faresti a ricercare una data particolare?


TI ripeto che non mi serve per il momento effettuare ricerca su una data, il problema che quando inserisco da un form una data, potrei avere diversi problemi di formato non valido. Questo metodo, che non è sicuramente il massimo, lo avevo intrapreso per evitare "danni" maggiori.
Insomma nel form potrei scrivere sicuramente un sacco di fesserie e incasinare il tutto, io puntavo ad limitare questo incasinamento.
2.584 messaggi dal 14 maggio 2001
Capisco il tuo problema ma se usi vbscript puoi controllare la data prima dell'inserimento con:
Isdate(TuaData) per verificare se la data è corretta...

Con il tuo metodo un utente potrebbe inserire nel Db il 31 febbraio....

Anche se per ora non devi fare ricerche nel Db per data non per questo devi precludertele...
6 messaggi dal 03 dicembre 2003
ci sono riuscito...MITICO

Ecco il codice...

<td class="admin"><b>Data</b></td>
<td><select name="giorno" class="combobox">
<%
dim i
for i = 1 to 31
%>
<option value=<%=i%>><%=i%>
<%next%>
</select>
/
<select name="mese" class="combobox">
<OPTION VALUE="Gennaio" SELECTED>Gennaio
<OPTION VALUE="Febbraio">Febbraio
<OPTION VALUE="Marzo">Marzo
<OPTION VALUE="Aprile">Aprile
<OPTION VALUE="Maggio">Maggio
<OPTION VALUE="Giugno">Giugno
<OPTION VALUE="Luglio">Luglio
<OPTION VALUE="Agosto">Agosto
<OPTION VALUE="Settembre">Settembre
<OPTION VALUE="Ottobre">Ottobre
<OPTION VALUE="Novembre">Novembre
<OPTION VALUE="Dicembre">Dicembre
</select>
/
<select name="anno" class="combobox">
<option value="1990">1990</option>
<option value="1991">1991</option>
<option value="1992">1992</option>
<option value="1993">1993</option>
<option value="1994">1994</option>
<option value="1995">1995</option>
<option value="1996">1996</option>
<option value="1997">1997</option>
<option value="1998">1998</option>
<option value="1999">1999</option>
<option value="2000">2000</option>
<option value="2001">2001</option>
<option value="2002">2002</option>
<option value="2003">2003</option>
</select></td>
<td align="center" valign="middle" class="help">&nbsp;</td>
</tr>
<tr align="center" valign="top" class="class_2">
<td colspan="3" class="admin"><input name="Submit" type="submit" class="bottone" value="Inserisci"></td>
</tr>

</table>
</form>
<%
Else
Dim titolo,url,alt,didascalia,data,note

titolo=Request("titolo")
url=Request("url")
alt=Request("alt")
didascalia=Request("didascalia")
note=Request("note")
data=Request("giorno") & "/" & Request("mese") & "/" & Request("anno")


If titolo="" or url="" Then
%>
<p align="center" class="admin">Uno o pi&ugrave; campi obbligatori risultano vuoti o contengono un valore non valido.<br>
[ <a href="javascript:history.go(-1);">Torna indietro e riprova</a> ]
</p>
<%
Else
OpenConnection
Set rs=Server.CreateObject("ADODB.Recordset")
Sql = "SELECT matrimonio.IdMatrimonio, matrimonio.Titolo, matrimonio.Url, matrimonio.Didascalia, matrimonio.Alt, matrimonio.Data, matrimonio.Note FROM matrimonio WHERE IdMatrimonio=0;"
rs.Open Sql,Connection,adOpenKeySet,adLockOptimistic
rs.AddNew
rs("Titolo")=titolo
rs("Url")=url
rs("Didascalia")=didascalia
rs("Alt")=alt
rs("Data")=data
rs("Note")=note
rs.Update

'Chiudo la connessione e distruggo il recorset
rs.Close
Set rs = nothing
CloseConnection
%>

<%
End If

End If
%>


Funziona, non c'è che dire.
Grazie di tutto e a presto...
Modificato da Estel il 04 dicembre 2003 14.18 -
2.584 messaggi dal 14 maggio 2001
Per migliorare le performance ti consiglierei di racchiudere più blocchi di codice fra <% e %>

Questo codice:
<%
dim i
for i = 1 to 31
%>
<option value=<%=i%>><%=i%>
<%next%>
</select>

Scrivilo così:
<%
dim i
for i = 1 to 31
response.write "<option value=""" & i & """>" & i & "</option>"
next
%>
</select>


Altra cosa fai un controllo se il valore ottenuto è veramente una data:
...
data=Request("giorno") & "/" & Request("mese") & "/" & Request("anno")
If Isdate(data)=False Then
'blocchi l'esecuzione e torni indietro per ridigitare il valore
End If

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.