Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    sincronizzazione php e mysql

    Salve.

    Ho realizzato un'applicazione PHP-MySQL in locale.

    Mi è capitata una cosa molto strana.

    Nel DB ho una tabella PIATTI e una tabella MENU.
    Eseguo il mio script php per creare un nuovo piatto e faccio l' insert nella tabella PIATTI del DB. Poi eseguo un'altro script php per comporre un nuovo menù con il piatto appena creato e faccio l' insert nella tabella MENU.
    Subito dopo (e sottolineo subito xkè sta lì il problema) eseguo uno script php per eliminare un piatto, scegliendo proprio quello appena creato: quì nasce il problema!
    X come è fatto il codice php, esso va a controllare in MENU se c'è qualche tupla avente quel piatto da eliminare, ed in caso affermativo non esegue la cancellazione.
    Quindi per come ho descritto l'esempio mi aspetto che la cancellazione non dovrebbe avvenire, ed invece non è così!
    Se invece ripeto lo stesso test aspettando un pò di tempo prima di effettuare la cancellazione del piatto l'applicazione si comporta correttamente (cioè non fa la cancellazione)!

    A questo punto ho pensato che evidentemente devo forzare l'insert immediato nel DB.
    Vi trovate d'accordo con me? Se sì come si fa?

    Ragazzi, a me sta situazione sembra assurda, ma vi giuro che è vera! Non so se vi è mai capitata!
    Vi prego aiutatemi

  2. #2
    ah, dimenticavo di dirvi che uso xampp ver. 1.7.7 VC9

  3. #3
    ho risolto, in parte...

    in verità, non vi avevo detto che la cancellazione di un piatto è condizionata dalle "date degli eventi":
    nella tabella MENU c'è un campo "dataEvento" che indica appunto una data.
    Il controllo php segue questa logica:
    "se il piatto da cancellare è presente in MENU e dataEvento di MENU è > della data corrente allora non cancellare il piatto".

    Ora che succede:
    se metto come data dell'evento un qualsiasi giorno del 2112 l'applicazione funziona male, mentre se metto una data + vicina (tipo 2012) l'applicazione funziona bene!

    La data viene memorizzata nel DB come varchar (es. 13/10/2011).
    Questo è il codice che controlla le 2 date:

    $data_corrente = date("d/m/Y");
    list($d, $m, $y) = explode('/', $data_corrente);
    $data1 = mktime(0, 0, 0, $m, $d, $y);
    ...
    ...
    ...
    list($gg, $mm, $aaaa) = explode("/", $dataEvento);
    $data2 = mktime(0, 0, 0, $mm, $gg, $aaaa);
    if($data1<$data2){
    ...
    ...
    ...

  4. #4
    per la precisione, l'applicazione va bene fino al 2038... ahahahah, sto fuso!
    vi prego aiutatemi

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.