problema con l'update della data

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Salve ragazzi,

Ho risolto un caso e ne apro un altro. Sono peggio dell'ispettore Colombo, ve lo ricordate ???? Risolveva i casi e poi la puntata successiva ne aveva un'altro fra le mani con il vecchio impermiabile, con la vecchia macchina, e citava sempre sua moglie nelle inchieste che faceva (secondo me non ne aveva manco una di moglie. Non si è ma vista....). A parte i ricordi degli anni 80. E siccome si tratta di date vengo subito al punto. Come in ogni forum che si rispetti, quando uno si registra viene chiesta in seguito la data di nascita in molto forum o chat (ad esempio fb), ci sono i classici 3 select giorno/mese/anno. Se seleziona la data e il gioco è fatto. Io vorei fare la stessa cosa. In parte l'ho fatta, ossia le select e l'array dei mesi. Però nel db myphpadmin, la data è in formato americano e con i trattini (yyyy-mm-gg), invece in fase di visualizzazione è italianizzata ossia gg/mm/aaaa. Ora quando vado a selezionare ovviamente non mi modifica la data. Come fare ???? Mi potete dare una mano per favore. Posto il codice di cosa ho combinato.

Questo è la parte riguardate alla selezione con i select:

PHP:
<?php
require_once("connetti.php");

echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">';


?>
<form action= 'aggiornaprofilo.php' method="POST">

  <?php
  
require_once("arraylistecitta.php");

foreach($_POST as $key => $value) $_POST[$key] = mysql_real_escape_string(strtolower(trim ($value)));

extract($_POST,EXTR_SKIP);

// Inizio Selezione data di nascita

//Giorno

echo "Giorno: ";
echo "<select name=\"giorno\">";
echo "<option value=\"\"> seleziona </option>";
for($gg=1; $gg<=31; $gg++){
 if(strlen($gg)< 2){$gg = "0".$gg;}  
 echo "<option value=\"$gg\"> $gg </option>";
}
echo "</select>";


//Mese

echo " Mese: ";

echo "<select name=\"mese\">";
foreach($mese as $valore){
    echo "<option value=\"$valore\">$valore";
    //echo "<option value=\"$valore\">$valore";
echo "</option> ";
}
 echo "</select>";

//Anno

echo " Anno: ";
$da=1972;
$al=2014;
echo "<select name=\"anno\">";
echo "<option value=\"\"> seleziona </option>";
for($aa=$da; $aa<=$al; $aa++){
    echo "<option value=\"$aa\"> $aa </option>";
}
echo "</select>" ;


    echo "<center> <br><br>";
                    echo '<input type="submit" name="reg" value="Invio iscrizione" />';
                    echo '<input type="submit" name="uscita" value="Uscita" />';
                echo "</center> </form>";

?>

E poi c'è il file aggiornaprofilo.php:


PHP:
<?php
require_once("connetti.php"); 

echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">'; 

foreach($_POST as $key => $value) $_POST[$key] = mysql_real_escape_string(strtolower(trim ($value)));

extract($_POST,EXTR_SKIP);

//formatta la data di nascita


if(isset($datadinascita, $citta, $provincia)){


echo "<h1> Esecuzione in corso dell'aggiornameto profilo... </h1>"; 


$qry = "UPDATE utenti SET 
    datadinascita='$datadinascita', 
    citta='$citta', 
    provincia='$provincia', 
    anno_diploma='$anno_diploma' 
    WHERE email = '[email protected]'";  

if (mysql_query($qry)){ 
    echo "... Aggiornamento effettuato correttamente...."; 
     
} else { 
    echo "Errore: Non è stato possibile effettuare l'aggiornamento richiesto" or die (mysql_error()); 
} 

}

?>

Questa where, verrà successivamente sostituita con un controllo della sessione:

PHP:
  WHERE email = '[email protected]'";

Mi potete aiutare per favore ??? Sono disperato non rieco a capire il perchè non gli piaccia.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, non ho visto un campo datadinascita
devi costruirtela prima di fare l'update
PHP:
$datadinascita = $anno . "-" . $mese . "-" . $giorno;
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

Ciao criric,

Una cosa che non ho capito. Quindi la costruzione della data è come me l'hai postata te ????? Cioè così ????

PHP:
 $datadinascita = $anno . "-" . $mese . "-" . $giorno;

E poi volevo sapere, questa stringa, in quale modulo lo dovrei mettere, nel l'aggiungiprofilo.php oppure nell'index.php ^??????
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
lo devi aggiungere in aggiornaprofilo.php prima di fare l UPDATE
PHP:
if(isset($anno,$mese,$giorno, $citta, $provincia)){

echo "<h1> Esecuzione in corso dell'aggiornameto profilo... </h1>"; 


$datadinascita = $anno . "-" . $mese . "-" . $giorno; 
$qry = "UPDATE utenti SET 
    datadinascita='$datadinascita', 
    citta='$citta', 
    provincia='$provincia', 
    anno_diploma='$anno_diploma' 
    WHERE email = '[email protected]'";
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

Ciao cricric,

Ho fatto come da te suggerito ma ancora non va. Non mi updata la data. Ti posto il codice per intero. magari (sicuramente) ho sbagliato qualcosa io.

aggiornaprofilo.php

PHP:
<?php
require_once("connetti.php"); 

echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">'; 

foreach($_POST as $key => $value) $_POST[$key] = mysql_real_escape_string(strtolower(trim ($value)));

extract($_POST,EXTR_SKIP);

 $datadinascita = $anno . "-" . $mese . "-" . $giorno;  


//$email NON VIENE RECUPERATA DA NESSUNA PARTE, RIVEDILA

 
 
if(isset($anno,$mese,$giorno, $citta, $provincia)){

echo "<h1> Esecuzione in corso dell'aggiornameto profilo... </h1>"; 


$datadinascita = $anno . "-" . $mese . "-" . $giorno; 
$qry = "UPDATE utenti SET 
    datadinascita='$datadinascita', 
    citta='$citta', 
    provincia='$provincia', 
    anno_diploma='$anno_diploma'  
    WHERE email = '[email protected]'";  //ovviamente ho sostituito con la mia

//$qry="UPDATE utenti  SET datadinascita='$datadinascita', citta='$citta', provincia='$provincia' WHERE email='".$email.""; 

if (mysql_query($qry)){ 
    echo "... Aggiornamento effettuato correttamente...."; 
     
} else { 
    echo "Errore: Non è stato possibile effettuare l'aggiornamento richiesto" or die (mysql_error()); 

}
}
?>

perchè si ostina a non farmi l'update ???? Bah......
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
stampa la query, vedi se manca qualche dato
PHP:
$qry = "UPDATE utenti SET 
    datadinascita='$datadinascita', 
    citta='$citta', 
    provincia='$provincia', 
    anno_diploma='$anno_diploma'  
    WHERE email = '[email protected]'";

echo $qry;
se non te la stampa vuol dire che non passi questa condizione
PHP:
if(isset($anno,$mese,$giorno, $citta, $provincia)){
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

stampa la query, vedi se manca qualche dato
PHP:
$qry = "UPDATE utenti SET 
    datadinascita='$datadinascita', 
    citta='$citta', 
    provincia='$provincia', 
    anno_diploma='$anno_diploma'  
    WHERE email = '[email protected]'";

echo $qry;
se non te la stampa vuol dire che non passi questa condizione
PHP:
if(isset($anno,$mese,$giorno, $citta, $provincia)){

Difatti su quella stringa c'è un cartellino giallo :( cosa debbo fare a questo punto ????
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
if(isset($anno,$mese,$giorno, $citta, $provincia)){
Non vedo nel form il campo per la citta e nemmeno quello della provincia
e non vedo nemmeno anno_diploma='$anno_diploma'
se vuoi aggiornare solo la data di nascita fai cosi
PHP:
if(isset($anno,$mese,$giorno)){
echo "<h1> Esecuzione in corso dell'aggiornameto profilo... </h1>"; 
$datadinascita = $anno . "-" . $mese . "-" . $giorno; 
$qry = "UPDATE utenti SET 
    datadinascita='$datadinascita'
    WHERE email = '[email protected]'";
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Consiglio come ti avevo fatto vedere di fare un checkdate prima di compilare la data
PHP:
if(checkdate($mese,$giorno,$anno)){ //continui correttamente
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

Non vedo nel form il campo per la citta e nemmeno quello della provincia
e non vedo nemmeno anno_diploma='$anno_diploma'
se vuoi aggiornare solo la data di nascita fai cosi
PHP:
if(isset($anno,$mese,$giorno)){
echo "<h1> Esecuzione in corso dell'aggiornameto profilo... </h1>"; 
$datadinascita = $anno . "-" . $mese . "-" . $giorno; 
$qry = "UPDATE utenti SET 
    datadinascita='$datadinascita'
    WHERE email = '[email protected]'";

Strano,

Città e proncia ci dovrebbero essere. Comunque, il punto era solo ora di modificare la data..... E' solo una prova che po lo dovrò assemblare nel vero form che sto facendo. anno_diploma l'avevo messo per vedere se aggiornava l'anno ma ancora non ho fatto nessun ciclo for e nessun aggiornamento, l'ho messo cos' tanto per metterlo.
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

Non vedo nel form il campo per la citta e nemmeno quello della provincia
e non vedo nemmeno anno_diploma='$anno_diploma'
se vuoi aggiornare solo la data di nascita fai cosi
PHP:
if(isset($anno,$mese,$giorno)){
echo "<h1> Esecuzione in corso dell'aggiornameto profilo... </h1>"; 
$datadinascita = $anno . "-" . $mese . "-" . $giorno; 
$qry = "UPDATE utenti SET 
    datadinascita='$datadinascita'
    WHERE email = '[email protected]'";

Comunque i campi città e provincia stanno in index.php, non ti avevo postato il form perchè pensavo che non ti servisse...Comunque eccolo:

index.php

PHP:
<?php
require_once("connetti.php");

echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">';


?>
<form action= 'aggiornaprofilo.php' method="POST">

  <?php
  
require_once("arraylistecitta.php");

foreach($_POST as $key => $value) $_POST[$key] = mysql_real_escape_string(strtolower(trim ($value)));

extract($_POST,EXTR_SKIP);

//echo 'Città:  <input type="text" name="citta"  maxlength="80" size ="32"> <br> <br>';
//echo 'provincia:  <input type="text" name="provincia"  maxlength="30" size ="32"> <br> <br>';
//echo 'Data di nascita:  <input type="text" name="datadinascita"  maxlength="10" size ="32"> <br> <br>';

 
// Inizio Selezione data di nascita

//Giorno

echo "Giorno: ";
echo "<select name=\"giorno\">";
echo "<option value=\"\"> seleziona </option>";
for($gg=1; $gg<=31; $gg++){
 if(strlen($gg)< 2){$gg = "0".$gg;}  
 echo "<option value=\"$gg\"> $gg </option>";
}
echo "</select>";


//Mese

echo " Mese: ";

echo "<select name=\"mese\">";
foreach($mese as $valore){
    echo "<option value=\"$valore\">$valore";
    //echo "<option value=\"$valore\">$valore";
echo "</option> ";
}
 echo "</select>";

//Anno

echo " Anno: ";
$da=1972;
$al=2014;
echo "<select name=\"anno\">";
echo "<option value=\"\"> seleziona </option>";
for($aa=$da; $aa<=$al; $aa++){
    echo "<option value=\"$aa\"> $aa </option>";
}
echo "</select>" ;

// Inizio selezione Città
echo"<br> <br>";

echo "Città: ";

echo "<select name=\"citta\">";
foreach($citta as $valore){
    echo "<option value=\"$valore\">$valore";
    //echo "<option value=\"$valore\">$valore";
echo "</option> ";
}
 echo "</select>";

 // Inizio selezione Province
 
echo " Provincia: ";

echo "<select name=\"provincia\">";
foreach($province as $valore){
    echo "<option value=\"$valore\">$valore";
    //echo "<option value=\"$valore\">$valore";
echo "</option> ";
}
 echo "</select>";


    echo "<center> <br><br>";
                    echo '<input type="submit" name="reg" value="Invio iscrizione" />';
                    echo '<input type="submit" name="uscita" value="Uscita" />';
                echo "</center> </form>";

?>
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
No, che centrano gli altri campi? Io intendevo proprio come ti ho mostrato prima di compilare la data

Scusami,

Quindi un if a parte, cioè un secondo if Ho fatto in questa maniera ma non va, me la puoi correggere per favore ????

PHP:
<?php
require_once("connetti.php"); 

echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">'; 

foreach($_POST as $key => $value) $_POST[$key] = mysql_real_escape_string(strtolower(trim ($value)));

extract($_POST,EXTR_SKIP);


$datadinascita = $anno . "-" . $mese . "-" . $giorno;  
if(checkdata($anno, $mese, $giorno));

//$email NON VIENE RECUPERATA DA NESSUNA PARTE, RIVEDILA

$giorno = $_POST['giorno'];
$mese = $_POST['mese'];
$anno = $_POST['anno'];

 
if(isset($citta, $provincia)){

echo "<h1> Esecuzione in corso dell'aggiornameto profilo... </h1>"; 


$datadinascita = $anno . "-" . $mese . "-" . $giorno; 
$qry = "UPDATE utenti SET 
    datadinascita='$datadinascita', 
    citta='$citta', 
    provincia='$provincia', 
    anno_diploma='$anno_diploma'  
    WHERE email = '[email protected]'";  

//$qry="UPDATE utenti  SET datadinascita='$datadinascita', citta='$citta', provincia='$provincia' WHERE email='".$email.""; 

if (mysql_query($qry)){ 
    echo "... Aggiornamento effettuato correttamente...."; 
     
} else { 
    echo "Errore: Non è stato possibile effettuare l'aggiornamento richiesto" or die (mysql_error()); 

}
}
?>
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
PHP:
<?php 
require_once("connetti.php");  

echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">';  

foreach($_POST as $key => $value) $_POST[$key] = mysql_real_escape_string(strtolower(trim ($value))); 

extract($_POST,EXTR_SKIP); 

if(isset($citta, $provincia) && checkdate($mese, $giorno, $anno)){ 

echo "<h1> Esecuzione in corso dell'aggiornameto profilo... </h1>";  


$datadinascita = $anno . "-" . $mese . "-" . $giorno;  
$qry = "UPDATE utenti SET  
    datadinascita='$datadinascita',  
    citta='$citta',  
    provincia='$provincia',  
    anno_diploma='$anno_diploma'   
    WHERE email = '[email protected]'";   

//$qry="UPDATE utenti  SET datadinascita='$datadinascita', citta='$citta', provincia='$provincia' WHERE email='".$email."";  

if (mysql_query($qry)){  
    echo "... Aggiornamento effettuato correttamente....";  
      
} else {  
    echo "Errore: Non è stato possibile effettuare l'aggiornamento richiesto" or die (mysql_error());  

} 
}
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

P.S.: Ho provato a farlo girare e mi restituisce questo errore:

Fatal error: Call to undefined function checkdata() in /volume1/web/utenti/provaaggiornaprofilo/aggiornaprofilo.php on line 12
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

PHP:
<?php 
require_once("connetti.php");  

echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">';  

foreach($_POST as $key => $value) $_POST[$key] = mysql_real_escape_string(strtolower(trim ($value))); 

extract($_POST,EXTR_SKIP); 

if(isset($citta, $provincia) && checkdate($mese, $giorno, $anno)){ 

echo "<h1> Esecuzione in corso dell'aggiornameto profilo... </h1>";  


$datadinascita = $anno . "-" . $mese . "-" . $giorno;  
$qry = "UPDATE utenti SET  
    datadinascita='$datadinascita',  
    citta='$citta',  
    provincia='$provincia',  
    anno_diploma='$anno_diploma'   
    WHERE email = '[email protected]'";   

//$qry="UPDATE utenti  SET datadinascita='$datadinascita', citta='$citta', provincia='$provincia' WHERE email='".$email."";  

if (mysql_query($qry)){  
    echo "... Aggiornamento effettuato correttamente....";  
      
} else {  
    echo "Errore: Non è stato possibile effettuare l'aggiornamento richiesto" or die (mysql_error());  

} 
}

Adesso va, ma non mi fa ugualmente l'aggiornamento della dataNon capisco il perchè......

P.S.: Mi da sempre ilcartellino giallo su if (isset ecc.ecc.)
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Adesso va, ma non mi fa ugualmente l'aggiornamento della dataNon capisco il perchè......

P.S.: Mi da sempre ilcartellino giallo su if (isset ecc.ecc.)

Prima hai detto che $anno_diploma non lo avevi ancora settato e forse anche $citta e $provincia controlla il form e i valori, se non esegue la query vuol dire che quelle variabili non vengono inviate
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao

Ciao Nefyt,

Allora, sono sicuro su città e provincia, perchè mi hai aiutato sempre te a risolvere il problema del fatto che non riuscivo a fare l'update. Quindi le variabili ci sono e sono sicuro, l'unica variabile che c'è in più è anno_diploma che sta solo sulla query dell'update. poi mi sono dedicato alla data che non vuole sapere di essere aggiornata e ripeto ho fatto tutte le prove possibili con le tue correzioni e non capisco il perchè..... posso anche eliminare la variabile anno_diploma se può essere un elemento di disturbo, visto che non è settatat da nessuna parte ma solo dentro la query di uploda.
 
Discussioni simili
Autore Titolo Forum Risposte Data
C Problema con update di un file PHP 6
K Problema con update di un database in un ciclo Classic ASP 1
C Problema con Update di una tabella di un db PHP 3
A Problema con UPDATE table SET username = $_SESSION["username"] PHP 22
blips Problema con Update multiplo PHP 1
P Problema con update PHP 93
R Problema con UPDATE su DB mysql MySQL 1
G problema con insert e update PHP 2
jan267 Problema con UPDATE Classic ASP 3
M Problema con Try Catch PHP 0
Sergio Unia Problema con gli eventi del mouse su una data table: Javascript 2
T PROBLEMA CON SESSIONI PHP 3
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
T PROBLEMA CON ARRAY PHP 8
L problema con query select PHP 2
R Problema query con ricerca id numerico PHP 2
F Problema con risposta PHP 0
S problema con recupero dati tabella mysql PHP 2
Z Problema con il mio tp-l i nk Reti LAN e Wireless 1
L Problema RAM con Tomcat 8 Apache 0
napuleone problema con sort e asort PHP 4
Z Problema con INT MySQL PHP 1
Z Problema database MySQL con XAMPP PHP 0
M Problema con controllo form in real time jQuery 6
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
G Problema con Get page PHP 4
P Problema con require once PHP 6
P Problema con i package Java 1
A Problema login con Safari PHP 14
F INDESIGN: problema esportazione esecutivo per la stampa con foto B/N Webdesign e Grafica 1
S problema con css bootstrap3 HTML e CSS 4
M .load() problema con caricamenti dinamici di js Javascript 0
G Problema ------- con Query PHP 1
G Problema con Query PHP 1
T problema con select dinamica con jquery Javascript 0
S Problema con spazi bianchi HTML e CSS 5
A PROBLEMA: insert mysqli con dati Tagsinput Presentati al Forum 0
Tommy03 Problema con z-index HTML e CSS 3
M Problema inserimento parole con apostrofo nel db PHP 5
C Problema con dati meteo xml XML 1
S Problema con infrarossi videocamera IP Cam e Videosorveglianza 1
V Problema con librerie allegro5 c++ C/C++ 1
M Problema con php per calcolo costo percentuale PHP 7
S Problema con mysqli_num_rows PHP 18
grgfede Problema javascript con aruba Javascript 1
M Problema con visibility e radio button Javascript 2
Marti1! Problema con casella mail cancellata Posta Elettronica 3
L [PHP] Problema con Telegram PHP 1
tomorc [HTML] Problema con scroll bar (risolto) HTML e CSS 0
S Strano problema con i title su Google SEO e Posizionamento 3

Discussioni simili