Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    aggiornare record da ciclo for

    Salve a tutti, ho un problema da risolvere:
    Ho un variabile così formata:
    ceduto= 205,901,850
    posizione=3
    comprato=888


    Faccio il ciclo for con relativo split
    dim player
    player= Split(ceduto,",")
    for i=0 to ubound (player)
    sql4 = "select * from lista_iniziale where codice ='"&player(i)&"'"
    set rs4 = conn2.execute(sql4)
    posto= rs4("ruolo") -----------------> importante!

    PS: notare che il numero che mi esce è un codice riferito al ruolo di un calciatore recuperato da una tabella lista_iniziale.

    DATAGRID così formato
    CODICE | RUOLO
    205 | 1
    901 | 3
    850 | 3

    codice:
    ' sostituisco giocatore
    if posto=posizione then
    set sostituisco_giocatore = Server.CreateObject("ADODB.Command")
    sostituisco_giocatore.ActiveConnection = MM_formazioni_STRING
    sostituisco_giocatore.CommandText = "UPDATE squadre_presidenti  SET calciatore='"&comprato&"' WHERE presidente='"&utente&"' and calciatore='"&player(i)&"'"
    sostituisco_giocatore.CommandType = 1
    sostituisco_giocatore.CommandTimeout = 0
    sostituisco_giocatore.Prepared = true
    sostituisco_giocatore.Execute()
    else 
    'lo sostituisco con 100
    set sostituisco_giocatore1 = Server.CreateObject("ADODB.Command")
    sostituisco_giocatore1.ActiveConnection = MM_formazioni_STRING
    sostituisco_giocatore1.CommandText = "UPDATE squadre_presidenti  SET calciatore='100' WHERE presidente='"&utente&"' and calciatore='"&player(i)&"'"
    sostituisco_giocatore1.CommandType = 1
    sostituisco_giocatore1.CommandTimeout = 0
    sostituisco_giocatore1.Prepared = true
    sostituisco_giocatore1.Execute()
    end if
    next
    Il problema è che vorrei che mi sostituisse solo il primo giocatore che abbia l'uguaglianza del ruolo uguale a 3 e non tutti quelli che hanno ruolo 3.
    IN questo caso:
    player(0) ha ruolo 1 e lo aggiorno come 100
    player(1) ha ruolo 3 e lo aggiorno come la variabile comprato e cioè 888
    player(2) anzichè aggiornarlo come la variabile comprato lo vorrei aggiornato a 100

    Tenendo presente che possono esserci un minimo di due player ad un massimo x, come posso fare il ciclo da me desiderato?

  2. #2
    se vuoi sostituire solo il primo contali .. inserisci un contotatore e fai
    codice:
    ...
    cont=0
    'inizio ciclo
    ...
    ' sostituisco giocatore
    if posto=posizione and cont<>1 then
    set sostituisco_giocatore = Server.CreateObject("ADODB.Command")
    sostituisco_giocatore.ActiveConnection = MM_formazioni_STRING
    sostituisco_giocatore.CommandText = "UPDATE squadre_presidenti  SET calciatore='"&comprato&"' WHERE presidente='"&utente&"' and calciatore='"&player(i)&"'"
    sostituisco_giocatore.CommandType = 1
    sostituisco_giocatore.CommandTimeout = 0
    sostituisco_giocatore.Prepared = true
    sostituisco_giocatore.Execute()
    cont=1
    else 
    'lo sostituisco con 100
    set sostituisco_giocatore1 = Server.CreateObject("ADODB.Command")
    sostituisco_giocatore1.ActiveConnection = MM_formazioni_STRING
    sostituisco_giocatore1.CommandText = "UPDATE squadre_presidenti  SET calciatore='100' WHERE presidente='"&utente&"' and calciatore='"&player(i)&"'"
    sostituisco_giocatore1.CommandType = 1
    sostituisco_giocatore1.CommandTimeout = 0
    sostituisco_giocatore1.Prepared = true
    sostituisco_giocatore1.Execute()
    end if
    next

  3. #3
    Grazie grambo, ma ho ttrovato un'altra soluzione
    Faccio il ciclo e li sostituisco tutti, poi dopo il next, faccio una richiesta select * from where
    e ne estrapolo uno solo e lo aggiorno con il comprato.

    Grazie lo stesso per la risposta.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.