Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Cineca inaugura Pitagora, il supercomputer Lenovo per la ricerca sulla fusione nucleare
Cineca inaugura Pitagora, il supercomputer Lenovo per la ricerca sulla fusione nucleare
Realizzato da Lenovo e installato presso il Cineca di Casalecchio di Reno, Pitagora offre circa 44 PFlop/s di potenza di calcolo ed è dedicato alla simulazione della fisica del plasma e allo studio dei materiali avanzati per la fusione, integrandosi nell’ecosistema del Tecnopolo di Bologna come infrastruttura strategica finanziata da EUROfusion e gestita in collaborazione con ENEA
Mova Z60 Ultra Roller Complete: pulisce bene grazie anche all'IA
Mova Z60 Ultra Roller Complete: pulisce bene grazie anche all'IA
Rullo di lavaggio dei pavimenti abbinato a un potente motore da 28.000 Pa e a bracci esterni che si estendono: queste, e molte altre, le caratteristiche tecniche di Z60 Ultra Roller Complete, l'ultimo robot di Mova che pulisce secondo le nostre preferenze oppure lasciando far tutto alla ricca logica di intelligenza artificiale integrata
Renault Twingo E-Tech Electric: che prezzo!
Renault Twingo E-Tech Electric: che prezzo!
Renault annuncia la nuova vettura compatta del segmento A, che strizza l'occhio alla tradizione del modello abbinandovi una motorizzazione completamente elettrica e caratteristiche ideali per i tragitti urbani. Renault Twingo E-Tech Electric punta su abitabilità, per una lunghezza di meno di 3,8 metri, abbinata a un prezzo di lancio senza incentivi di 20.000€
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 05-10-2007, 10:37   #1
Fabiorayden
Member
 
L'Avatar di Fabiorayden
 
Iscritto dal: Nov 2005
Città: Torino
Messaggi: 289
[PHP] inviare solo dati modificati

Supponendo di avere un form per la modifica dei dati presenti in un database, si può effettuare il submit dei soli dati modificati senza inviare quelli non modificati?

L'unica soluzione che mi è venuta in mente fino ad ora è quella di creare un form che contenga dei campi hidden generati dall'evento onchange di javascript e fare il submit di quest'ultimo form.
Non so se la soluzione è fattibile... altrimenti c'è un modo meno complesso?
__________________
Toshiba Satellite A100-926: Intel Core 2 Duo T7200, 2 GB ram ddr2, ATI MOBILITY RADEON X1600 512 MB Hypermemory (256 MB+256 MB)
Fabiorayden è offline   Rispondi citando il messaggio o parte di esso
Old 05-10-2007, 10:42   #2
isAlreadyInUse
Senior Member
 
L'Avatar di isAlreadyInUse
 
Iscritto dal: Sep 2007
Messaggi: 754
A che prò?
__________________
http://www.tevigroup.it/
isAlreadyInUse è offline   Rispondi citando il messaggio o parte di esso
Old 05-10-2007, 10:53   #3
Bl4xoR
Senior Member
 
L'Avatar di Bl4xoR
 
Iscritto dal: Feb 2005
Città: Bisceglie (BT)
Messaggi: 1091
un modo semplice che mi viene in mente è che prima di caricare il form (nel codice)... vai nel database e prelevi i dati che ci sono, mettendoli nelle relative variabili.

al submit fai il confronto di quelle prelevate da DB e di quelle POST o GET (a seconda della modalità utilizzata) che vengono dal form.
__________________
[Laptop] DELL XPS 15 9510 (2021) i7-11800H, 16GB, 1TB SSD WDC SN730 NVMe, GeForce RTX 3050 4GB, Display Full HD [Mobile] Google Pixel 4a
Bl4xoR è offline   Rispondi citando il messaggio o parte di esso
Old 05-10-2007, 10:55   #4
Fabiorayden
Member
 
L'Avatar di Fabiorayden
 
Iscritto dal: Nov 2005
Città: Torino
Messaggi: 289
Quote:
Originariamente inviato da isAlreadyInUse Guarda i messaggi
A che prò?
Per non fare un lungo update.
Mettiamo caso di avere il classico form anagrafico di una serie di persone.
Se io su 40-50 persone modifico solo una 4-5 campi (es. l'indirizzo di pippo, il cap di pluto e così via), non mi sembrerebbe il caso di fare il submit e l'update di tutti i dati presenti nella tabella.
__________________
Toshiba Satellite A100-926: Intel Core 2 Duo T7200, 2 GB ram ddr2, ATI MOBILITY RADEON X1600 512 MB Hypermemory (256 MB+256 MB)
Fabiorayden è offline   Rispondi citando il messaggio o parte di esso
Old 05-10-2007, 11:00   #5
isAlreadyInUse
Senior Member
 
L'Avatar di isAlreadyInUse
 
Iscritto dal: Sep 2007
Messaggi: 754
Presumo che un form si riferisca ad un unica persona quindi modificando quella fai l'update solo su quel record. O sbagio?
__________________
http://www.tevigroup.it/
isAlreadyInUse è offline   Rispondi citando il messaggio o parte di esso
Old 05-10-2007, 11:32   #6
Fabiorayden
Member
 
L'Avatar di Fabiorayden
 
Iscritto dal: Nov 2005
Città: Torino
Messaggi: 289
Quote:
Originariamente inviato da isAlreadyInUse Guarda i messaggi
Presumo che un form si riferisca ad un unica persona quindi modificando quella fai l'update solo su quel record. O sbagio?
Se il form e la query sono fatte come dici tu, è giusto e non ci sarebbero problemi.
Il mio problema era riferito ad un caso in cui non compaiono i campi di modifica per una sola persona (o prodotti o altro), ma per una serie di dati (es.: un'interrogazione al db di tutte le persone nate in una certa città) e tutti i relativi dati li inserisco in campi di input (ad eccezione del loro id).
__________________
Toshiba Satellite A100-926: Intel Core 2 Duo T7200, 2 GB ram ddr2, ATI MOBILITY RADEON X1600 512 MB Hypermemory (256 MB+256 MB)
Fabiorayden è offline   Rispondi citando il messaggio o parte di esso
Old 05-10-2007, 11:43   #7
Fabiorayden
Member
 
L'Avatar di Fabiorayden
 
Iscritto dal: Nov 2005
Città: Torino
Messaggi: 289
Quote:
Originariamente inviato da Bl4xoR Guarda i messaggi
un modo semplice che mi viene in mente è che prima di caricare il form (nel codice)... vai nel database e prelevi i dati che ci sono, mettendoli nelle relative variabili.

al submit fai il confronto di quelle prelevate da DB e di quelle POST o GET (a seconda della modalità utilizzata) che vengono dal form.
Il problema è dopo il controllo come escludo i campi non modificati?
__________________
Toshiba Satellite A100-926: Intel Core 2 Duo T7200, 2 GB ram ddr2, ATI MOBILITY RADEON X1600 512 MB Hypermemory (256 MB+256 MB)
Fabiorayden è offline   Rispondi citando il messaggio o parte di esso
Old 05-10-2007, 11:50   #8
isAlreadyInUse
Senior Member
 
L'Avatar di isAlreadyInUse
 
Iscritto dal: Sep 2007
Messaggi: 754
Piu che altro dovresti tener traccia non dei campi ma dei record che sono stati modificati. Altrimenti come componi la query di update?
__________________
http://www.tevigroup.it/
isAlreadyInUse è offline   Rispondi citando il messaggio o parte di esso
Old 05-10-2007, 12:02   #9
Fabiorayden
Member
 
L'Avatar di Fabiorayden
 
Iscritto dal: Nov 2005
Città: Torino
Messaggi: 289
Quote:
Originariamente inviato da isAlreadyInUse Guarda i messaggi
Piu che altro dovresti tener traccia non dei campi ma dei record che sono stati modificati. Altrimenti come componi la query di update?
Quando faccio la select recupero l'id di ogni riga e i campi di input del form hanno un nome progressivo (es. nome1, nome2, nome3 etc, cognome1, cognome2, cognome3 e così via).
Quindi l'update non è un problema.
__________________
Toshiba Satellite A100-926: Intel Core 2 Duo T7200, 2 GB ram ddr2, ATI MOBILITY RADEON X1600 512 MB Hypermemory (256 MB+256 MB)
Fabiorayden è offline   Rispondi citando il messaggio o parte di esso
Old 05-10-2007, 12:19   #10
Bl4xoR
Senior Member
 
L'Avatar di Bl4xoR
 
Iscritto dal: Feb 2005
Città: Bisceglie (BT)
Messaggi: 1091
Quote:
Originariamente inviato da Fabiorayden Guarda i messaggi
Il problema è dopo il controllo come escludo i campi non modificati?
Cmq riflettendoci un pò il codice PHP si incarta e non poco... e la query SQL (facendo l'update dei campi anche non modificati, quindi rimettendoli) è MOLTO più veloce di quanto pensi.

Io farei rifare l'update anche a ciò che non si modifica.
__________________
[Laptop] DELL XPS 15 9510 (2021) i7-11800H, 16GB, 1TB SSD WDC SN730 NVMe, GeForce RTX 3050 4GB, Display Full HD [Mobile] Google Pixel 4a
Bl4xoR è offline   Rispondi citando il messaggio o parte di esso
Old 05-10-2007, 13:24   #11
Gremo
Senior Member
 
L'Avatar di Gremo
 
Iscritto dal: Oct 2000
Città: Udine
Messaggi: 3178
se ho capito bene il problema, con una query parametrica come suggerito...
per capire se i campi sono stati modificati, non useri javascript perchè:
1) più complesso
2) mai affidare queste operazioni lato client
3) posso disabilitare javascript
4) non mi piace

credo puoi fare una cosa del genere:

Codice:
<form>
 <input type="nome" value="Marco" />
 <input type="hidden" name="<?php md5(nome)?>" value="<?php md5(Marco)?>"
</form>

<?php

if (submit)
{

//
// md5($REQUEST["nome"]) hash del nuovo? valore
// inserito dall'utente nel capo nome
//
// $REQUEST[md5("nome")] nome del campo hidden relativo
// (per ottenere l'hash originale) che memorizza
// l'hash del valore originale del campo
//

$old_value = $REQUEST[md5("nome")];
$new_value = md5($REQUEST["nome"]);

 if  $new_value != $old_value  // campo modificato
 {
   $query += "SET 'nome' = addslashes($new_value)"
 }

}

?>
spero di non aver fatto casini
scusa lo pseudo codice ma non ricordo benissimo il php.
eventualmente quel controllo transformato in funzione, con il nome del capo da controllare passato alla funzione
__________________

Desktop: Intel i7-4770K | Asus Gryphon Z87 | Crucial 16GB DDR3 1600MHz | Gigabyte GTX 780 OC Windforce x3 | Samsung 840 Pro 128GB (x 2 RAID0) | be quiet! Straight Power E9 680W CM
Mercatino: bottoni, Dede371, pippokennedy, Bulbi_67, randose, DarkSiDE, davidepaco, _Legend_

Ultima modifica di Gremo : 05-10-2007 alle 13:31.
Gremo è offline   Rispondi citando il messaggio o parte di esso
Old 05-10-2007, 14:16   #12
Fabiorayden
Member
 
L'Avatar di Fabiorayden
 
Iscritto dal: Nov 2005
Città: Torino
Messaggi: 289
Quote:
Originariamente inviato da Gremo Guarda i messaggi
se ho capito bene il problema, con una query parametrica come suggerito...
per capire se i campi sono stati modificati, non useri javascript perchè:
1) più complesso
2) mai affidare queste operazioni lato client
3) posso disabilitare javascript
4) non mi piace

credo puoi fare una cosa del genere:


spero di non aver fatto casini
scusa lo pseudo codice ma non ricordo benissimo il php.
eventualmente quel controllo transformato in funzione, con il nome del capo da controllare passato alla funzione
Se non ho interpretato male il codice, il controllo avviene dopo aver fatto il submit dei dati.
Io invece volevo fare il submit dei soli dati aggiornati.
__________________
Toshiba Satellite A100-926: Intel Core 2 Duo T7200, 2 GB ram ddr2, ATI MOBILITY RADEON X1600 512 MB Hypermemory (256 MB+256 MB)
Fabiorayden è offline   Rispondi citando il messaggio o parte di esso
Old 05-10-2007, 15:22   #13
kk3z
Senior Member
 
L'Avatar di kk3z
 
Iscritto dal: Nov 2003
Messaggi: 980
Fai un array di javascript contenente i vecchi dati, quindi nell'onsubmit controlli i dati vecchi con i dati nuovi ed elimini i campi per i dati uguali. Per esempio:

Codice:
<?
$res = mysql_query(...)
$row = mysql_fetch_assoc($res);
?>

var old_values = {
  nome: "<?= $row['nome'] ?>",
  cognome: "<?= $row['cognome'] ?>",
}

form.onsubmit = function()
{
  for (var i = 0; i < this.length; i++)
  {
     if (old_values[ this[i].name ] && old_values[ this[i].name ] == this[i].value)
     {
        this[i].parentNode.removeChild( this[i] );
     }
  }
}
PS: mi sembra un'assurdità
kk3z è offline   Rispondi citando il messaggio o parte di esso
Old 05-10-2007, 15:44   #14
Fabiorayden
Member
 
L'Avatar di Fabiorayden
 
Iscritto dal: Nov 2005
Città: Torino
Messaggi: 289
Per adesso quindi l'unica soluzione (che però sinceramente non farei) è quella di fare un confronto fra vecchio valore e nuovo valore.
Alla fine credo che ci vorrebbe più tempo a controllare tutti i campi che a farne l'update sul database.
__________________
Toshiba Satellite A100-926: Intel Core 2 Duo T7200, 2 GB ram ddr2, ATI MOBILITY RADEON X1600 512 MB Hypermemory (256 MB+256 MB)
Fabiorayden è offline   Rispondi citando il messaggio o parte di esso
Old 06-10-2007, 15:03   #15
Bl4xoR
Senior Member
 
L'Avatar di Bl4xoR
 
Iscritto dal: Feb 2005
Città: Bisceglie (BT)
Messaggi: 1091
Quote:
Originariamente inviato da Fabiorayden Guarda i messaggi
Per adesso quindi l'unica soluzione (che però sinceramente non farei) è quella di fare un confronto fra vecchio valore e nuovo valore.
Alla fine credo che ci vorrebbe più tempo a controllare tutti i campi che a farne l'update sul database.
(c.v.d)
__________________
[Laptop] DELL XPS 15 9510 (2021) i7-11800H, 16GB, 1TB SSD WDC SN730 NVMe, GeForce RTX 3050 4GB, Display Full HD [Mobile] Google Pixel 4a
Bl4xoR è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Cineca inaugura Pitagora, il supercomputer Lenovo per la ricerca sulla fusione nucleare Cineca inaugura Pitagora, il supercomputer Lenov...
Mova Z60 Ultra Roller Complete: pulisce bene grazie anche all'IA Mova Z60 Ultra Roller Complete: pulisce bene gra...
Renault Twingo E-Tech Electric: che prezzo! Renault Twingo E-Tech Electric: che prezzo!
Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media Il cuore digitale di F1 a Biggin Hill: l'infrast...
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica DJI Osmo Mobile 8: lo stabilizzatore per smartph...
HONOR 500 Pro, scheda tecnica confermata...
GeForce NOW si prepara a vivere un mese ...
Exynos 2600: temperature più bass...
Apple si ispirerà a Nothing? Back...
Da Intel ad AMD, il grande salto di Kulk...
Velocità 12 volte superiore a que...
Una piccola Morte Nera è gi&agrav...
Sei frodi che minacciano gli utenti nel ...
BioShock 4: Take-Two rassicura sullo svi...
Tesla, Musk promette FSD 'quasi pronto' ...
BioWare conferma: il nuovo Mass Effect &...
5 robot aspirapolvere di fascia alta in ...
Xiaomi Redmi Note 14 5G a 179€ è ...
Veri affari con gli sconti de 15% Amazon...
Tutti gli iPhone 16 128GB a 699€, 16e a ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 03:24.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v