Visualizzazione dei risultati da 1 a 9 su 9

Hybrid View

  1. #1
    Ah ah ah no
    sono delle domande che però non voglio vengano poste sempre le stesse tutto qui

    ovviamente mi riferisco alla procedura in mysql, in php saprei realizzarla ma mi interesserebbe capire come fare tutto questo con una semplice query o procedure
    Ultima modifica di sally3000; 19-04-2017 a 22:27

  2. #2
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Quote Originariamente inviata da sally3000 Visualizza il messaggio
    ovviamente mi riferisco alla procedura in mysql, in php saprei realizzarla ma mi interesserebbe capire come fare tutto questo con una semplice query o procedure
    Ho dei dubbi,
    Tu sei in multiutenza e con la procedura che ho abbozzato
    dovresti modificare dei valori in tabella,
    ma per chiamate contemporanee potresti avere delle rogne
    perche tutti andrebbero a leggere e modificare gli stessi campi

    poi la procedura in MySql io non sono capace a farla,
    la ho abbozzata in VBA solo per buttare li una ipotesi



    Aggiungiamo alla nostra tabella 2 campi:
    Nnn numerico che è il contatore delle "uscite"
    Fff Testo che è una specie di Flag che identifica i tuoi 10 record estratti
    Idx chiaramente è la sua Key numerica


    La procedura MySql potrebbe essere composta da 2 query

    1°)
    Reimposta a Vuoto i 10 record che erano stati identificati nella estrazione precedente
    ........ Execute ("UPDATE T1 Set T1.Fff = '' WHERE LunghezzaStringa(T1.Fff)>0;")


    2°)
    Immagina di estrarre i primi 10 record ordinati per Nnn e per Random
    SELECT TOP 10 T1.Nnn, T1.Fff FROM T1 ORDER BY T1.Nnn, Rnd([T1.Idx])
    quelli sono i tuoi record pescati e innanzitutto gli fai un UPDATE
    per incrementare di 1 il campo Nnn
    e per mettere un Flag nel campo Fff
    quindi:
    .... dbex.Execute ("UPDATE
    (
    SELECT TOP 10 T1.Nnn, T1.Fff FROM T1 ORDER BY T1.Nnn, Rnd([T1.Idx])) AS V1
    SET V1.Nnn = (If IsNull(V1.Nnn) Then 1 Else V1.Nnn End)+1, V1.Fff = 'x';")



    3°)
    Adesso con php puoi estrarre i tuoi 10 record che contrassegnati con la "x"
    SELECT Campo1, Campo2, CampoEccetera FROM T1 WHERE T1.Fff = 'x';


    Ti ripeto prendila solo come idea poi la devi adattare al tuo contesto

    .

Tag per questa discussione

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.