Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: ERRORE: time exeeded

  1. #1

    ERRORE: time exeeded

    ciao a tutti!
    ho creato un form di ricerca, basato su un DB. La ricerca si basa su un ciclo WHILE che ad ogni $_GET assegna al valure $where il valore $var inviato. La query di ricerca si conclude quindy così: SELECT * FROM tabella .$where

    questo è l'errore visualizzato, la cui linea di riferimento corrisponde alla chiusura del primo ciclo WHILE. Cosa vuol dire?

    Maximum execution time of 30 seconds exceeded in C:\Internet\Easyphp\www\nomepagina.php on line xx

    grazie a tutti!

  2. #2
    forse il while entra in loop infinito...

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it L'avatar di kodode
    Registrato dal
    Sep 2002
    Messaggi
    1,896
    posta il codice...

  4. #4
    WHILE ($dat != ''):
    ($where .= " AND data='$dat'");
    ENDWHILE;


    ecco il codice!

  5. #5
    Originariamente inviato da snauzerino
    WHILE ($dat != ''):
    ($where .= " AND data='$dat'");
    ENDWHILE;


    ecco il codice!
    quello e' un loop infinito. "continua fino a quando $dat e' diverso da empty".... ma poi non cambi mai il valore di $dat che risultera' quindi sempre lo stesso.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    Quindi cosa mi consigli per chiudere il loop?

  7. #7
    Originariamente inviato da snauzerino
    Quindi cosa mi consigli per chiudere il loop?
    non si tratta di consigliare come chiudere il loop, ma come scorrere i dati.

    In altre parole, come viene valorizzata la variabile $dat. Che sia un array?... Oppure estrai dal $_GET solo una variabile? senza codice non ci sono suggerimenti validi ma solo dei forse.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    allora, scusami, hai ragione, ecco il codice:

    \\dichiarazione SELECT di base:\\
    $select = 'SELECT *';
    $from = ' FROM partitelle';
    $where = ' WHERE 1';


    \\ricerca dati\\
    WHILE ($dat != ''): ($where .= " AND data='$dat'");
    WHILE ($dat = ''): ($where .= " 1");
    ENDWHILE;
    WHILE ($com != ''): ($where .= " AND com='$com'");
    WHILE ($com = ''): ($where .= " 1");
    ENDWHILE;


    \\query finale\\
    $result=($select . $from . $where);
    $ris=mysql_query($result);
    if (mysql_num_rows($ris) == 0) {
    echo 'non ci sono risultati per i parametri scelti';
    }


    \\visualizzazione dati\\
    while ($riga= mysql_fetch_array($ris))
    {
    $dat=$riga['dat'];
    $com=$riga['comp'];
    echo "

    DATA $dat</p>";
    echo "

    COMP $com</p>";
    }


    aggiungo che mi sono fatto una leggerissima cultura di MySql/Php, in circa 7/8 mesi, leggendo qualche libro, partendo da zero. Per me quello che ho fatto è anche troppo, visto che il mio lavoro è il muratore!!
    Comunque grazie a quelli come te, anche gli ignorantoni come me possono combinare qualcosa di buono.

  9. #9
    quello che fai non ha molto senso.

    Dove prendi i dati per valorizzare $dat? quello in // ricerca dati. Dove li cerchi

    il WHILE esegue un loop fino a quando la condizione definita risulta TRUE. Quindi non serve nel tuo caso. Nel senso che cerca proprio nulla ma scrive all'infinito la stessa cosa.

    Codice PHP:
    \\dichiarazione SELECT di base:\\
    $select 'SELECT *';
    $from ' FROM partitelle';
    $where ' WHERE ';

    \\
    ricerca dati\\
    $where .= " data = '$dat' ";
      
    $where .= " AND com = '$com' "); 
    che poi alla fine e' la stessa cosa che scrivere:

    Codice PHP:

    $result 
    "SELECT * FROM particelle WHERE data = '$dat' AND com = '$com'";
    $ris mysql_query($result);
    if (
    mysql_num_rows($ris) == 0) {
    echo 
    'non ci sono risultati per i parametri scelti';
    } else {

         \\
    visualizzazione dati\\
         while (
    $rigamysql_fetch_array($ris))
            {
             
    $dat $riga['dat'];
             
    $com $riga['comp'];
             echo 
    "

    [b]DATA[/b] 
    $dat</p>";
             echo 
    "

    [b]COMP[/b] 
    $com</p>";
             }
       } 


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    Cerco di spiegarmi meglio:
    l' $dat me lo invia tramite un form di ricerca. E ci sono altri 9 parametri di ricerca, su una stessa tabella. Ogni parametro ovviamente modifica la query di ricerca in base alla variabile che invia. Devo comporre una query che mi ricerchi nella colonna 'data' il parametro '$dat', e così via anche per gli altri, che siano 2,3,4 ...9 parametri inviati. E i dati ricercati devono corrispondere contemporaneamente a tutti i parametri scelti. Potevo scegliere qualcosa di più semplice? Sì, ma allora come avrei impiegato il mio tempo libero? A cosa avrei pensato mentre ero al mare sotto l'ombrellone? Alla solita Settimana Enigmistica?

    hai ragione, sono un po' :berto:

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 © 2024 vBulletin Solutions, Inc. All rights reserved.