Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    26

    Verifica presenza date in database

    Ciao ragazzi,
    ho un problema con uno script PHP. Ho una tabella ("pr_cc") dove sono elencati degli appuntamenti fissati e la relativa data. Vorrei creare uno script che mi dica qual è la prima data disponibile (quindi non inserita nella tabella) a partire da quella odierna. Se provo però lo script che ho realizzato, il browser sembra che entri in un loop continuo, dal che deduco che ci sia un problema nel for... ma non capisco quale. Questo lo script:

    Codice PHP:
    $linkmysql_connect("localhost""root""") or die("Connessione fallita: " mysql_error());
    mysql_select_db("usl11") or die("Selezione DB fallita: " mysql_error());
    date_default_timezone_set('Europe/Paris');
    $oggidate("d-m-Y");
    list(
    $giorno,$mese,$anno)= explode("-",$oggi);
    for ( ; ; )

      
    $giorno += 1;
      
    $data=date ("d-m-Y" ,mktime(0,0,0,date($mese),$giorno,$anno));
      
    $query "SELECT * FROM pr_cc WHERE data = '$data' ";
      
    $rismysql_query($query) or die ('<p class="first">Connessione fallita: ' mysql_error() . '. Riprova pi&ugrave; tardi.</p>');
      if(
    $ris==NULL) break;
    }
    echo 
    "<p>" $giorno $mese $anno "</p>";         
    mysql_close($link); 
    Grazie per l'aiuto!

    Andrea

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    26
    Quote Originariamente inviata da F@bius Visualizza il messaggio
    Scusami, il ciclo for a cosa ti serve?
    Il ciclo for l'ho pensato per incrementare la data, a partire da quella di domani, ogni qualvolta trova una corrispondenza in tabella. Nel momento in cui prende in considerazione una data che non trova in tabella, si ferma e mi indica quella. Per avere insomma la "prima disponibilità".

    Andrea

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    26
    Quote Originariamente inviata da F@bius Visualizza il messaggio
    Seguendo questa logica, non puoi usare un ciclo while al posto del for e settare a true o false una variabile finché non trova la data che ti serve?
    In effetti prima del for avevo provato un do...while con la modalità del flag come mi hai suggerito. Ma il risultato era sempre lo stesso.

    Adesso ho seguito il tuo suggerimento con il flag ed il while ma rimane lo stesso problema. Mi segnala però questo errore: Fatal error: Maximum execution time of 30 seconds exceeded in [nomefile.php] on line 36. La linea 36 è quella della mysql_query.

    Codice:

    Codice PHP:
    $flagtrue;
    while (
    $flag)
    {
      
    $giorno += 1;  
      
    $data=date ("d-m-Y" ,mktime(0,0,0,date($mese),$giorno,$anno));  
      
    $query "SELECT * FROM pr_cc WHERE data = '$data' ";  
      
    $rismysql_query($query) or die ('<p class="first">Connessione fallita: ' mysql_error() . '. Riprova pi&ugrave; tardi.</p>');  
      if(
    $ris==NULL$flagfalse;

    Andrea

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    26
    Quote Originariamente inviata da F@bius Visualizza il messaggio
    Imposta un set_time_limit(0).

    Io la cambierei così:

    Codice PHP:
    $flagtrue;
    while (
    $flag)
    {
      
    $giorno += 1;  
      
    $data=date ("d-m-Y" ,mktime(0,0,0,date($mese),$giorno,$anno));  
      
    $query "SELECT * FROM pr_cc WHERE data = '$data' ";  
      
    $rismysql_query($query) or die ('<p class="first">Connessione fallita: ' mysql_error() . '. Riprova pi&ugrave; tardi.</p>');  
      if(
    mysql_num_rows($ris) == 1$flagfalse;

    Invariato...
    Scusa l'ignoranza, con la set_limit invece cosa risolverei?

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    26
    No aspetta Fabius, non l'ho ancora provata la time_limit! Non conoscendola ho dato un'occhiata al manuale, ma non capendo ancora dove posizionarla, prima ti ho chiesto delucidazioni! La metto fuori o dentro il while?

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    26
    Ok ho provato anche con quella ma non cambia... Cioè, l'errore non esce, ma in sostanza credo che il browser resti sempre dentro al ciclo perché è sempre "in attesa di risposta da localhost".

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    26
    Sì, così pare funzioni anche ame, grazie! Era "solo" un discorso di formato data?

    L'unica pecca è che è lento... c'ha messo veramente tanto a caricarlo...

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    26
    Tipo...? Comunque lo sto provando in locale e lo sto provando a tabella vuota!

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    26
    Va bene! Grazie comunque!

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.