Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Mate X7 rinnova la sfida nel segmento dei pieghevoli premium puntando su un design ancora più sottile e resistente, unito al ritorno dei processori proprietari della serie Kirin. L'assenza dei servizi Google e del 5G pesa ancora sull'esperienza utente, ma il comparto fotografico e la qualità costruttiva cercano di compensare queste mancanze strutturali con soluzioni ingegneristiche di altissimo livello
Nioh 3: souls-like punitivo e Action RPG
Nioh 3: souls-like punitivo e Action RPG
Nioh 3 aggiorna la formula Team NINJA con aree esplorabili più grandi, due stili di combattimento intercambiabili al volo (Samurai e Ninja) e un sistema di progressione pieno di attività, basi nemiche e sfide legate al Crogiolo. La recensione entra nel dettaglio su combattimento, build, progressione e requisiti PC
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


Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti Test in super anteprima di Navimow i220 LiDAR: i...
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto Dark Perk Ergo e Sym provati tra wireless, softw...
Funzionalità top a un prezzo acce...
Lo strumento per gli aggiornamenti autom...
Imperdibile sconto sul roborock Saros Z7...
Google Pixel 10, altri 100€ di sconto su...
Chip sotto i 2 nanometri, l'Europa alza ...
La smart meno smart di tutte: #6 in azio...
Red Hat Enterprise Linux sbarca su AWS E...
Addio alle migliaia di cicli e anni di t...
Colpo di STMicroelectronics, un'intesa d...
La Ferrari elettrica si chiama Luce: ecc...
Proseguono le riparazioni in vista del l...
Cinema domestico low cost: proiettore Fu...
Sharp porta a ISE 2026 i nuovi display i...
Casa più sicura senza lavori: Arl...
Batterie esauste, l'Italia raccoglie sol...
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: 05:52.


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