Pagina 1 di 6 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 56
  1. #1

    "Pescare" dal database in modo un po' particolare

    Ciao a tutti. Ho un database per la gestione di un parco autotreni, con i campi TARGA, DATA CARICO, LOCALITA' CARICO, DATA SCARICO, LOCALITA' SCARICO, AUTISTA, POSIZIONE MEZZO, VARIE, AUTORE MODIFICA, DATA MODIFICA del quale pubblico i dati dei campi con questo codice:
    codice:
      <%
    id = request("id")
    Set Conn= Server.CreateObject("Adodb.connection")
    Conn.Open "provider=microsoft.jet.oledb.4.0; data source="& Server.MapPath("/mdb-database/posizione.mdb")
    sql = "SELECT * FROM tbl_authors ORDER BY data DESC"
    set rs = conn.execute(sql)
    %>
              <%
    While NOT rs.EOF
    %>
    
    <% Response.Write("<tr>")%>
    <% Response.Write("<td align=""left"" bgcolor=""#D6FFCE""> <font face=""Tahoma"" size=""1"">")%><%= rs("targa")%><% Response.Write("</font></td>")%>
    <% Response.Write("<td align=""left"" bgcolor=""#F0FCFF""> <font face=""Tahoma"" size=""1"">")%><%= rs("datacarico")%><% Response.Write("</font></td>")%>
    <% Response.Write("<td align=""left"" bgcolor=""#CEF5FF""> <font face=""Tahoma"" size=""1"">")%><%= rs("loccarico")%><% Response.Write("</font></td>")%>
    <% Response.Write("<td align=""left"" bgcolor=""#F0FCFF""> <font face=""Tahoma"" size=""1"">")%><%= rs("datascarico")%><% Response.Write("</font></td>")%>
    <% Response.Write("<td align=""left"" bgcolor=""#CEF5FF""> <font face=""Tahoma"" size=""1"">")%><%= rs("locscarico")%><% Response.Write("</font></td>")%>
    <% Response.Write("<td align=""left"" bgcolor=""#F0FCFF""> <font face=""Tahoma"" size=""1"">")%><%= rs("autista")%><% Response.Write("</font></td>")%>
    <% Response.Write("<td align=""left"" bgcolor=""#CEF5FF""> <font face=""Tahoma"" size=""1"">")%><%= rs("posmezzo")%><% Response.Write("</font></td>")%>
    <% Response.Write("<td align=""left"" bgcolor=""#F0FCFF""> <font face=""Tahoma"" size=""1"">")%><%= rs("poslibretto")%><% Response.Write("</font></td>")%>
    <% Response.Write("<td align=""left"" bgcolor=""#CEF5FF""> <font face=""Tahoma"" size=""1"">")%><%= rs("infovarie")%><% Response.Write("</font></td>")%>
    <% Response.Write("<td align=""left"" bgcolor=""#F0FCFF""> <font face=""Tahoma"" size=""1"">")%><%= rs("autore")%><% Response.Write("</font></td>")%>
    <% Response.Write("<td align=""left"" bgcolor=""#CEF5FF""> <font face=""Tahoma"" size=""1"">")%><%= rs("data")%><% Response.Write("</font></td>")%>
    <% Response.Write("</tr>")%>
    
      <%
    rs.MoveNext
    Wend
    %>
      <%
    rs.close
    set rs = nothing
    conn.close
    set conn = nothing
    %>
    (i vari "Response.Write("<tr>") ecc. appartengono ad una tabella della quale non ho riportato tutto il codice).
    Poichè mi occorre di avere tutto lo "storico" dei movimenti della varie "targhe" (autotreni) ho fatto in modo che quando dalla pagina con la form per l' inserimento dei vari viaggi delle varie targhe si inserisce un nuovo viaggio di una stessa targa, il/i viaggio/i precedente/i di quella targa non viene/vengono cancellato/i.
    Questo, però, mi ha generato un problema in una mia ulteriore necessità e cioè quella di avere una pagina che pubblichi quali targhe (autotreni) siano presenti adesso in una determinata città. Cioè io vorrei inserire nella pagina che pubblica TUTTI i record, una form "Cerca per posizione automezzo" (il campo del database è "posmezzo") e che reindirizzi ad una pagina che pubblica tutte le targhe presenti "adesso" in quella città.
    Ho provato con
    codice:
    <form name="targa2" method="post" action="lavagna_posizione.asp">
      <span class="style22">Cerca per posizione</span>
      <select name="posizionescelta" id="posizionescelta">
        <option value="IN VIAGGIO">IN VIAGGIO</option>
        <option value="PARK-NA">PARK-NA</option>
        <option value="PARK-GE">PARK-GE</option>
        <option value="SALERNO">SALERNO</option>
        <option value="GENOVA">GENOVA</option>
        <option value="CIVITAVECCHIA">CIVITAVECCHIA</option>
        <option value="MALTA">MALTA</option>
        <option value="TUNISIA">TUNISIA</option>
        <option value="LIBIA">LIBIA</option>
        <option value="MANUTENZIONE">MANUTENZIONE</option>
      </select>
      <input name="Submit" type="submit" id="Submit" value="Invia">
    </form>
    (è un menù a tendina perchè le posizioni che mi interessano solo solo quelle presenti nel menù a tendina) ma, naturalmente, essendo presenti nel database anche i viaggi precedenti (e che continuano ad occorrermi), con questo codice la pagina nuova (lavagna_posizione.asp) pubblica, per quella determinata città o paese (posizione) anche targhe che non ci sono più. Ad esempio, se la targa AA12345 è stata a Genova, ma poi se ne è andata, essendo ancora presente nel database (e, ripeto, mi occorre che rimanga) il viaggio a Genova di quella targa viene pubblicato comunque nella nuova pagina, e questo vorrei che non accadesse. In realtà la nuova pagina dovrebbe "vedere" tutte le targhe che sono stata a Genova, vedere quali di queste hanno poi fatto nuovi viaggi NON a Genova ed eliminarle.
    So che è un po' complicato, ma spero di essere stato sufficientemente chiaro e che qualcuno di voi possa aiutarmi. Grazie.
    Paolo

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Dipende il cambio targa come lo hai memorizzato.
    Hai semplicemente duplicato un record assegnando la targa ad un altro automezzo?
    Occorre capire il disegno del db...

    Roby

  3. #3
    Non esiste un cambio targa. Ogni volta si apre la pagina per inserimento dati ed il campo targa è libero (si scrive, non è un campo a tendina). Uno inserisce la targa e tutti gli altri dati e, se anche quella targa è già presente nel database, il nuovo record viene inserito. iL Il database (Access) è strutturato così (CAMPI):

    id | targa | datacarico | loccarico | datascarico | locscarico | autista | posmezzo| varie | autore | data

    dove "id" è un numeratore automatico e chiave primaria, autore è un campo che viene implementato automaticamente con il valore di login, la data è "Now" e contiene data ed orario. Tutti i campi, eccetto "id" e "data" sono di tipo "memo".

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Se raggruppi per targa con la GROUP BY ed ordini per ID decrescente hai l'ultima situazione della targa.
    Avere un campo MEMO su una targa è una follia... a che serve?

    Roby

  5. #5
    In realtà è una follia anche per gli altri campi, massimo una ventina di caratteri... A proposito, a parte che quando il campo viene riempito con moltissimi caratteri è indispensabile configurarlo come "memo", qual'è la reale differenza tra "memo" e "testo"?

    Per quanto concerne la pagina, adesso provo e ti comunico il risultato... Grazie.

  6. #6
    codice:
    sql2 = "SELECT targa FROM tbl_authors WHERE posmezzo = '" & rs("posmezzo") & "' GROUP by targa ORDER BY id DESC"			
    		  set rs2 = conn.execute(sql2)
    		  if not rs2.eof then
    		  do until rs2.eof
    Facendocosì mi risponde:
    Impossibile eseguire una query che non include l'espressione "id" specificata come parte di una funzione di aggregazione

  7. #7
    Forse è meglio che posti il codice (ancora non funzioante) della pagina su cui voglio pubblicare gli autotreni in una certa città:
    codice:
     <%
    id = request("id")
    Set Conn= Server.CreateObject("Adodb.connection")
    Conn.Open "provider=microsoft.jet.oledb.4.0; data source="& Server.MapPath("/mdb-database/posizione.mdb")
    
    		  strposizione = request.Form("posizionescelta")
    		  sql = "SELECT DISTINCT(posmezzo) " &_
    		  "FROM tbl_authors " &_
    		  "WHERE posmezzo = '"&strposizione&"' " &_
    		  "GROUP BY posmezzo " &_
    		  "ORDER BY posmezzo"
    		  set rs = conn.execute(sql)
    	      if not rs.eof then
    		  do until rs.eof
    		  		  
    		  sql2 = "SELECT * FROM tbl_authors WHERE posmezzo = '" & rs("posmezzo") & "' ORDER BY data DESC"			
    		  set rs2 = conn.execute(sql2)
    		  if not rs2.eof then
    		  do until rs2.eof
    		%>
    				
    					
    
    <% Response.Write("<tr>")%>
    <% Response.Write("<td align=""left"" bgcolor=""#D6FFCE""> <font face=""Tahoma"" size=""1"">")%><%= rs2 ("targa")%><% Response.Write("</font></td>")%>
    <% Response.Write("<td align=""left"" bgcolor=""#F0FCFF""> <font face=""Tahoma"" size=""1"">")%><%= rs2("datacarico")%><% Response.Write("</font></td>")%>
    <% Response.Write("<td align=""left"" bgcolor=""#CEF5FF""> <font face=""Tahoma"" size=""1"">")%><%= rs2("loccarico")%><% Response.Write("</font></td>")%>
    <% Response.Write("<td align=""left"" bgcolor=""#F0FCFF""> <font face=""Tahoma"" size=""1"">")%><%= rs2("datascarico")%><% Response.Write("</font></td>")%>
    <% Response.Write("<td align=""left"" bgcolor=""#CEF5FF""> <font face=""Tahoma"" size=""1"">")%><%= rs2("locscarico")%><% Response.Write("</font></td>")%>
    <% Response.Write("<td align=""left"" bgcolor=""#F0FCFF""> <font face=""Tahoma"" size=""1"">")%><%= rs2("autista")%><% Response.Write("</font></td>")%>
    <% Response.Write("<td align=""left"" bgcolor=""#CEF5FF""> <font face=""Tahoma"" size=""1"">")%><%= rs ("posmezzo")%><% Response.Write("</font></td>")%>
    <% Response.Write("<td align=""left"" bgcolor=""#F0FCFF""> <font face=""Tahoma"" size=""1"">")%><%= rs2("poslibretto")%><% Response.Write("</font></td>")%>
    <% Response.Write("<td align=""left"" bgcolor=""#CEF5FF""> <font face=""Tahoma"" size=""1"">")%><%= rs2("infovarie")%><% Response.Write("</font></td>")%>
    <% Response.Write("<td align=""left"" bgcolor=""#F0FCFF""> <font face=""Tahoma"" size=""1"">")%><%= rs2("autore")%><% Response.Write("</font></td>")%>
    <% Response.Write("<td align=""left"" bgcolor=""#CEF5FF""> <font face=""Tahoma"" size=""1"">")%><%= rs2("data")%><% Response.Write("</font></td>")%>
    <% Response.Write("</tr>")%>
    
    <% rs2.MoveNext
      loop		
      end if %> 
      <%  
      rs2.close
      set rs2 = nothing
      %>   
      
        
       <% rs.MoveNext
      loop		
      end if %> 
      
      <%  
      rs.close
      set rs = nothing
      %>
    
        
      <%
      conn.close
      set conn = nothing
      %>
    Con questo attuale codice, però, come scrivevo prima, mi vengono segnalati anche gli autotreni che NON SONO PIU' IN QUELLA DETERMINATA POSIZIONE, proprio perchè il database (cosa che mi occorre), conserva tutti i viaggi precedenti all' ultimo inserimento di una medesima targa (autotreno).

    In definitiva, mi occorrono dei tag che "dicano" al DB: <<Caro DB, bene, tu mi dici che la targa AA12345 è stata a Genova. Bene, ora verifica se questa targa, successivamente, ha fatto un altro viaggio e che questo viaggio NON l' ha riportata a Genova. Se ha fatto un altro viaggio, NON ME LA PUBBLICARE, se, invece, quello a Genova è stato il suo ultimo viaggio fino ad ora, PUBBLICAMELA.>>.

    Ecco, forse così è più semplice aiutarmi...

  8. #8
    Ho provato anche così:
    codice:
    sql = "SELECT DISTINCT(targa) " &_			
    		  "FROM tbl_authors " &_		  		  
    		  "GROUP BY targa " 
    		  set rs = conn.execute(sql)
    		  if not rs.eof then
    		  do until rs.eof
    		  
    		  strposizione = Request.Form("posizionescelta")
    		  sql2 = "SELECT posmezzo " &_			
    		  "FROM tbl_authors " &_
    		  "WHERE posmezzo = '" &strposizione& "' " &_	  		  
    		  "GROUP BY posmezzo " 
    		  set rs2 = conn.execute(sql2)
    		  if not rs2.eof then
    		  do until rs2.eof
    		
    		  sql3 = "SELECT * FROM tbl_authors WHERE posmezzo = '" & rs2("posmezzo") & "' and targa = '" & rs("targa") & "' ORDER BY data DESC"
              set rs3 = conn.execute(sql3)
    		  if not rs3.eof then
    		  do until rs3.eof		  
    		  %>					
    
    <% Response.Write("<tr>")%>
    <% Response.Write("<td align=""left"" bgcolor=""#D6FFCE""> <font face=""Tahoma"" size=""1"">")%><%= rs ("targa")%><% Response.Write("</font></td>")%>
    <% Response.Write("<td align=""left"" bgcolor=""#F0FCFF""> <font face=""Tahoma"" size=""1"">")%><%= rs3("datacarico")%><% Response.Write("</font></td>")%>
    <% Response.Write("<td align=""left"" bgcolor=""#CEF5FF""> <font face=""Tahoma"" size=""1"">")%><%= rs3("loccarico")%><% Response.Write("</font></td>")%>
    <% Response.Write("<td align=""left"" bgcolor=""#F0FCFF""> <font face=""Tahoma"" size=""1"">")%><%= rs3("datascarico")%><% Response.Write("</font></td>")%>
    <% Response.Write("<td align=""left"" bgcolor=""#CEF5FF""> <font face=""Tahoma"" size=""1"">")%><%= rs3("locscarico")%><% Response.Write("</font></td>")%>
    <% Response.Write("<td align=""left"" bgcolor=""#F0FCFF""> <font face=""Tahoma"" size=""1"">")%><%= rs3("autista")%><% Response.Write("</font></td>")%>
    <% Response.Write("<td align=""left"" bgcolor=""#CEF5FF""> <font face=""Tahoma"" size=""1"">")%><%= rs2 ("posmezzo")%><% Response.Write("</font></td>")%>
    <% Response.Write("<td align=""left"" bgcolor=""#F0FCFF""> <font face=""Tahoma"" size=""1"">")%><%= rs3("poslibretto")%><% Response.Write("</font></td>")%>
    <% Response.Write("<td align=""left"" bgcolor=""#CEF5FF""> <font face=""Tahoma"" size=""1"">")%><%= rs3("infovarie")%><% Response.Write("</font></td>")%>
    <% Response.Write("<td align=""left"" bgcolor=""#F0FCFF""> <font face=""Tahoma"" size=""1"">")%><%= rs3("autore")%><% Response.Write("</font></td>")%>
    <% Response.Write("<td align=""left"" bgcolor=""#CEF5FF""> <font face=""Tahoma"" size=""1"">")%><%= rs3("data")%><% Response.Write("</font></td>")%>
    <% Response.Write("</tr>")%>
    
       <% rs3.MoveNext
      loop		
      end if %> 
      
      <%  
      rs3.close
      set rs3 = nothing
      %>  
      
       <% rs2.MoveNext
      loop		
      end if %> 
      
      <%  
      rs2.close
      set rs2 = nothing
      %> 
      
        
       <% rs.MoveNext
      loop		
      end if %> 
      
      <%  
      rs.close
      set rs = nothing
      %>
    
        
      <%
      conn.close
      set conn = nothing
      %>
    ma continua ad inserirmi anche le targhe che non sono più nella "posizione" richiesta...

  9. #9
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Quale è il campo che ti dice dove si trova l'automezzo?

    Roby

  10. #10

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.