• User Attivo

    if campo db vuoto then ...??

    ciao a tutti,
    sto realizzando sito in cui è presente una pagina eventi.asp che si popola prendendo dati preventivamente caricati su db access da altra pagina asp.

    la pagina carica i seguenti dati:

    • data evento
    • titolo
    • descrizione
    • 3 immagini
    • 2 allegati (zip, doc, pdf)

    le img e gli allegati vengono uploadati salvandone il percorso nel campo del db: public/eventi/nomefile.est

    è possibile che non ci siano allegati da caricare per un certo evento e quindi vorrei capire come poter fare un controllo come da esempio:

    se il campo è vuoto
    allora
    non scrivi niente nella pagina
    altrimenti
    scrivi il link al file

    quindi vorrei linkare il nome del file es. nomefile.pdf al percorso in cui è stato caricato sul server sito.it/public/eventi/nomefile.pdf e vorrei che sulla pagina si vedesse solamente il nome del file.

    spero di essere stato abbastanza chiaro.

    grazie a tutti.


  • User

    Dovrebbe essere una cosa di questo tipo:

    if rs("nomecampo")<>"" then response.write '<a href="DOMINIO/public/' & rs("nomefile") & '">nome link</a>'


  • User Attivo

    scrivendolo in questo modo mi da errore di Sintax Error

    sapreste indicarmi la sintassi corretta? Credo sia una questione di parentesi e apici...


  • User Attivo

    dunque, sono riuscito a scrivere la sintassi corretta ma non ho del tutto risolto la questione.

     
    <%
    if rs("immg3")<>"" then 
    response.write ("<a href=public"&rs("immg3")&">allegato</a>")
    %>
    
    

    il codice in sostanza mi scrive il link se trova qualcosa nel campo del db e va bene.
    Mi manca però la parte di codice che gestisce il campo vuoto ovvero:
    se il campo è vuoto non devi scrivere niente. Invece così mi mette ugualmente il link ma ovviamente ad un file che non c'è.


  • Super User

    Beh rs("immg3")<>"" controlla che il campo sia vuoto, quindi se è vuoto non dovrebbe scrivere il link.


  • User Attivo

    quindi come mai me lo scrive ugualmente?

    mi mette un link del genere: miosito.it/public/eventi


  • Super User

    Non lo so, prova a vedere cosa c'è dentro


  • User Attivo

    ok, ho capito dove sta l'errore....

    in pratica nel form di upload ho 5 campi: se ad esempio lascio vuoto il campo dell'allegato sul campo del db mi viene comunque salvato il percorso /eventi/ senza nome del file. Di conseguenza la pagina asp che controlla se quel campo è vuoto lo trova "Pieno" e semplicemente linka "/eventi/".

    Ora, ho utilizzato l'upload di Baol e non pretendo che chi legge lo debba per forza conoscere. Dunque cerco di domandare il domandabile: esiste una funzione che mi consenta di fare un controllo preventivo su un campo di upload dicendo allo script che se in quel campo non viene caricato alcun file allora non scrivere nulla sul campo del db (nemmeno il percorso della cartella)???


  • Super User

    Se esiste nello script non lo so, ma si può fare di sicuro.


  • User Attivo

    sapresti indicarmi uno script che possa fare ciò che ho descritto prima?

    considerando che lo script che passa i dati per l'aggiornamento del record è il seguente:

    
    <%
     If Request.QueryString("Save")="1" then
      Dim oUpload
      Set oUpload = new cUpload
      oUpload.AutoRename = True
      oUpload.Overwrite = False
      oUpload.SetPath "/public/eventi/" 'Impostazione del PERCORSO della cartella delle IMMAGINI
      oUpload.Load
      While Not oUpload.EOF
       oUpload.Save()
       Select Case lCase(oUpload.Files("InputName"))
        Case "immg1"
         FileName_immg1 = oUpload.GetFileName()
        Case "immg2"
         FileName_immg2 = oUpload.GetFileName()
        Case "immg3"
         FileName_Immg3 = oUpload.GetFileName()
        Case "immg4"
         FileName_Immg4 = oUpload.GetFileName()
        Case "immg5"
         FileName_Immg5 = oUpload.GetFileName() 
     
       End Select
       oUpload.MoveNext
      Wend   
      Set Conn = Server.CreateObject("ADODB.Connection")
      Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../mdb-database/db.mdb")
      Set Rs=server.CreateObject("ADODB.Recordset")
      Rs.Open "SELECT Top 1 * FROM eventi",Conn,3,3
      Rs.AddNew
      Rs("periodo")   = oUpload.Form("periodo")
      Rs("titolo")     = oUpload.Form("titolo")
      Rs("FCKeditor1") = oUpload.Form("FCKeditor1")
     
     
      Rs("immg1") = RB_VDIR & "/eventi/" & FileName_immg1
      Rs("immg2") = RB_VDIR & "/eventi/" & FileName_immg2 
      Rs("immg3") = RB_VDIR & "/eventi/" & FileName_Immg3
      Rs("immg4") = RB_VDIR & "/eventi/" & FileName_Immg4
      Rs("immg5") = RB_VDIR & "/eventi/" & FileName_Immg5
     
      Rs.update
      Rs.Close
      Conn.Close
      Set Rs = Nothing
      Set Conn=Nothing    
      Set oUpload = Nothing
     End if
    %>
    
    

    eventualmente grazie


  • Super User

    Prima di ogni

    Rs("immg1") = RB_VDIR & "/eventi/" & FileName_immg1

    Puoi controllare se FileName_immg1 <> ""


  • User Attivo

    grande cali, come al solito le tue dritte funzionano al primo colpo...

    ascolta? per caso mastichi anche del javascript? Ho postato un thread ma non ho ancora trovato nessuno che mi possa aiutare.

    Come sempre, se hai tempo e voglia di darci un'occhiata ti ringrazio in anticipo.

    saluti e grazie ancora per il preziosissimo aiuto.