Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 21
  1. #11
    L'HO FATTO NEL PRIMO MSG: vabbè ci riprovo...perchè nessuno mi capèisce
    ok rispiego:
    ho una pagina che è una scheda per la gestione di pc.
    Ad un certo punto della scheda ho 4 file di csmpi inseriti in questo modo:

    data __________ ora __________
    data __________ ora __________
    data __________ ora __________
    data __________ ora __________

    praticamente sarebbe l'assegnazione della chhiamata.
    Questa scheda può essere aperta più volte e più volte possono essere assegnati i campi sopra.
    Ad es: la prima volta inserico sono 2 date e ora.
    Poi la riapro e ne metto un'altra.
    Il mio probloema si pone quando riapro la scheda e ho vidualizzati i campi inseriti la volta prima. Quando invio la scheda automaticamente inserisce i campi nel db solo che la seconda volta li reinserisce tutti anche quelli gia inseriti in precedenza. Io vorrei solo inserire i nuovi campi senza aver quindi dei doppioni nel db.

  2. #12
    Sfido chiunque a capire quello che dici ora con quello che hai scritto prima....

    Direi che quello che dovresti fare e di recuperare l'id di quando fai l'insert e passarlo per fare l'update ribattendo, volendo anche i campi precedenti.

    Il controllo lo puoi fare sulla presenza dell'id:

    se id e presente fai un UPDATE altrimenti se id ="" fai un insert seguita dalla lettura dell'id inserito. Non credo sia opportuno riconoscere una scheda da uno o piu' orari inseriti.

    Oppure quando riapri la scheda, e se lo fai significa che hai i termini di paragone per ritrovarla, fai un update dei campi semplicemente.

    A parte questo mi pare che tu non possa stabilire a priori quante volte la scheda puo' essere riaperta... sarebbe piu' opportuno una tabella gestione con la descrizione di quel che serve alla gestione pc ed una tabella interventi formata da due campi al max 3 con id_gestione - data_intervento - e facoltativo n_intervento. Ogni intervento sara' un nuovo record. Ne puoi mettere ad libidum...

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #13
    a parte che la scheda la riconsco attraverso un id che la identifica.
    Poi la scheda può esssere aperta un infinità di volte finche non viene chiusa...chiusa intendo dire che c'è un parametro che una volta che il tecnico sceglie chiusa questa non viene più riaperta.
    La scheda può avere max 4 assegnazioni tipo con l'ora data e altre cosette che riguardano l'intervento.

    Per quanto riguarda il db, ho una tabella con id e altre belle cose e poi tramite l'id mi ricollego a un'altra tabella dove inserisco questa parte dell'assegnazione.
    Quindi quando richiamo l'id mi appaiono data e ora nella scheda.
    Quando voglio richiamare la scheda per la seconda volta magari per inserire un'altra assegnazione immetto una seconda data che dovrà inserisi in questa tabella di assegnazione.
    Come dici tu fare un controllo sulla data non è il max, ma se ci pensi è vero che la chiamata può essere aperta più volte nello stesso gg ma sicuramente non sarà aperta alla stessa ora stesso minuto...
    quindo io farei il controllo sulla data e poi se questa risulta = allora controllo l'ora altrimenti se la data è diverda vuol dire che può essere inserita.

  4. #14
    Quindi tu hai gia' il db ottimizzato.... dici le cose un po' per volta... ora son certo che sei una donna.

    Farei cosi': se riapri la scheda ti compariranno gli interventi precedenti, dopo aver aggiunto la nuova data faccio un update del record, ribattendo per semplicita' anche i record precedenti. Tieni presente che se il valore e' identico l'UPDATE non aggiorna le colonne identiche, ma solo quelle modificate.

    Quindi recapitolando: INSERT con quel che c'e'. Poi...
    Riaperture scheda in base all'id.
    UPDATE della schede per tutte e 4 le date. Se campo identico (o vuoto) nessun aggiornamento, se data vuota (o diversa) verra' aggiornata.

    Credo sia il piu' semplice. E pure discrezionale per l'inserimento dell'operatore. Permette di correggere eventuali errori.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #15
    Originariamente inviato da piero.mac
    Quindi tu hai gia' il db ottimizzato.... dici le cose un po' per volta... ora son certo che sei una donna.
    Scusa ma se io avessi scritto un libro di roba...chi mai lo avrebbe letto???

    Farei cosi': se riapri la scheda ti compariranno gli interventi precedenti, dopo aver aggiunto la nuova data faccio un update del record, ribattendo per semplicita' anche i record precedenti. Tieni presente che se il valore e' identico l'UPDATE non aggiorna le colonne identiche, ma solo quelle modificate.
    scusa se ti contraddico: ma l'update non fa l'aggiornamento di record gia esistenti???? a me serve inserire nuovi record senza inserire di nuovo quelli gia immessi. E dato che nella scheda mi compaiono anche quelli immessi in precedenza, mi recupera e inserisce anche quelli.

    Quindi recapitolando: INSERT con quel che c'e'. Poi...
    Riaperture scheda in base all'id.
    UPDATE della schede per tutte e 4 le date. Se campo identico (o vuoto) nessun aggiornamento, se data vuota (o diversa) verra' aggiornata.
    Credo sia il piu' semplice. E pure discrezionale per l'inserimento dell'operatore. Permette di correggere eventuali errori.
    intanto lo provo....però vorrei conferma della domanda sopra citata!!

  6. #16
    Originariamente inviato da TittyMail
    scusa se ti contraddico: ma l'update non fa l'aggiornamento di record gia esistenti???? a me serve inserire nuovi record senza inserire di nuovo quelli gia immessi. E dato che nella scheda mi compaiono anche quelli immessi in precedenza, mi recupera e inserisce anche quelli.
    Allora ho capito una mazza buffa. Avevo capito:

    Caso 1. Non hai il record e viene aperta una nuova scheda.
    Caso 2. La scheda e' gia' aperta e deve essere aggiornata. La domanda tua era come posso aggiornare.
    caso 3. La schede e' completata e deve essere chiusa.

    Non ci sono altre situazioni. Non ho ancora capito come e' la tabella delle date. con 4 campi data? finiti i 4 la scheda viene chiusa, caso finito o meno, e aperta un'altra? Come filtri la raccolta delle schede aperte? Ogni data e' un record? Se lo e' perche' ti dovresti trovare anche i record precedenti nell'inserimento del nuovo?

    Ora se per aprire una scheda da aggiornare ti trovi un pacciamme inconsulto, devi rivedere tabelle e/o gestione delle stesse.

    Per fare questo bisogna conoscere per bene il processo di lavorazione, cioe' gli step possibili che puo' subire il lavoro. Senza di questo nascera' sempre una ulteriore eccezione da gestire.

    Ma tutto, almeno credo, si riconduce ai 3 casi citati, con tutti i sottocasi che ti pare.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #17
    Codice PHP:
    [COLOR=orangered]Qui sotto recupero i dati gia inseriti nel database[/COLOR] 
    <?$query="SELECT Assegnata, DataAss, OraAss, MotivoAss FROM Assegnazione WHERE IdCall='".$IdCall."'"
    $result mysql_query($query) or die(mysql_error());
    ?>
    [COLOR=orangered]Faccio un controllo se effettivamente c è qualcosa nel database: se non si verifica la condizione allora il database è vuoto e farò l inserimento dei dati[/COLOR] 
    <?
    if(mysql_num_rows($result) != 0){?>

    [COLOR=orangered]Se entra qui vuol dire che il database è pieno e quindi devo aggiornarlo[/COLOR] 
    [COLOR=orangered]DataAppo qui sotto non è altro che un array contenente i 4 campi con nome data e ora dei 4 campi:
    $DataAppo[]=$Ass1.".".$Data1.".".$Ora1;
    $DataAppo[]=$Ass2.".".$Data2.".".$Ora2;
    $DataAppo[]=$Ass3.".".$Data3.".".$Ora3;
    $DataAppo[]=$Ass4.".".$Data4.".".$Ora4;
    [/COLOR]             
    <?    for($i=0;$i<count($DataAppo);$i++){    ?>
    [COLOR=orangered]Quindi ciclo l'array e ad ogni riga mi recupero le varie varabili[/COLOR]                                 <?$arr explode ("."$DataAppo[$i]);
                                            
    $Assegnata=$arr[0];
                                            
    $DataAss=$arr[1];                                
                                            
    $OraAss=$arr[2];    ?>        
                
    [COLOR=orangered]effettuo l'update......solo che poi quando vedo il risultato....be non mi scrive più il nome che sarebbe Assegnata e mi inserisce data e ora dell'ultimo dato che ho inserito quando apro la chiamata la seconda volta[/COLOR]                         <?$sqlquery="UPDATE Assegnazione SET IdCall='".$IdCall."', Assegnata='".$Assegnata."',DataAss='".$DataAss."',OraAss='".$OraAss."'WHERE IdCall='".$IdCall."'";  
                                            
    $sqlResult mysql_query($sqlquery) or die(mysql_error());    
        
                                                                
                                            
                                        }
    }
    //result
    else{ ?>
    [COLOR=orangered]Inserimento quando il database è vuoto[/COLOR] 
        <?echo "prima volta";
                                                    
                                        for(
    $i=0;$i<count($DataAppo);$i++){                    
                                            
    $arr explode ("."$DataAppo[$i]);
                                            
    $Assegnata=$arr[0];
                                            
    $DataAss=$arr[1];                                
                                            
    $OraAss=$arr[2];            
                                            
    $MotivoAss=$arr[3];    
                                            
                                        
                                            
    $sqlquery="INSERT INTO Assegnazione(IdCall,Assegnata,DataAss,OraAss,MotivoAss) VALUES ('$IdCall', '$Assegnata', '$DataAss', '$OraAss', '$MotivoAss')"
                                            
    $sqlResult mysql_query($sqlquery) or die(mysql_error());                    
                                        }
                                
                            }    
                                    
                    

    ?>

  8. #18
    Originariamente inviato da piero.mac
    Allora ho capito una mazza buffa. Avevo capito:

    Caso 1. Non hai il record e viene aperta una nuova scheda.
    Caso 2. La scheda e' gia' aperta e deve essere aggiornata. La domanda tua era come posso aggiornare.
    caso 3. La schede e' completata e deve essere chiusa.
    Diciamo che hai capito abbastanza bene....miiii ma questa è una lotta...)))
    Il primo caso è giustissimo.
    Il secondo caso pure..agggiungo che quando apro la scheda la seconda volta e volte successive, a video proprio(immaginati un form) mi viene visualizzato tutto ilk contenuto del db quindi data ora e nome a chi viene assegnato il problema del pc.
    Quando invio il form ad una pagina che mi elabora il tutto ed effettua l'inserimento o meno, io invio tutti i dati della pagina compresi quelli gia insertiti nelk database. Ecco perchè poi quando faccio un inserimento lui ,mi reinserisce anche quelli.

  9. #19
    Originariamente inviato da TittyMail
    Diciamo che hai capito abbastanza bene....miiii ma questa è una lotta...)))
    Il primo caso è giustissimo.
    Il secondo caso pure..agggiungo che quando apro la scheda la seconda volta e volte successive, a video proprio(immaginati un form) mi viene visualizzato tutto ilk contenuto del db quindi data ora e nome a chi viene assegnato il problema del pc.
    Quando invio il form ad una pagina che mi elabora il tutto ed effettua l'inserimento o meno, io invio tutti i dati della pagina compresi quelli gia insertiti nelk database. Ecco perchè poi quando faccio un inserimento lui ,mi reinserisce anche quelli.
    Stavo cercando di dare una forma allo script che hai postato....

    allora intanto direi che per prima cosa dovresti visualizzare i dati precedenti NON in un campo <input > ma solo stampati nel form in modo che non vengano reinviati con il submit.

    Poi dall'update togli l'aggiornamento dell'id che se pur uguale rappresenta un errore di forma. (l'id e' il nome univoco del record).

    ma ancora non capisco come e' la tabella "assegnazione". Se ogni data inserita e' un record... non devi mai fare l'update ma solo l'insert di nuovi record con lo stesso id della scheda aperta.

    L'insert del nuovo record con il vecchio (gia' assegnato) id lo ottieni con lo stesso modo. cioe' NON stampando le schede aperte in un tag INPUT del form.

    Ma questo pensavo fosse scontato. Purtroppo o per fortuna ... nelle donne la sede della logica e' in un posto "diverso" da quella degli uomini....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #20
    grazie per l'aiuto e per le offese. Tanto non mi toccano... :sgrat:
    a parte gli scherzi...sto risolvendo in altro modo, più consono al tipo di codice che ormai ho impostato.
    :tongue: la prox volta imposterò il codice in modo diverso, magari pensando un po più prima di scrivere, anche se è abbastanza difficile calcolare tutte le eccezioni..

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.