Visualizzazione dei risultati da 1 a 8 su 8

Discussione: problemi con un ciclo

  1. #1

    problemi con un ciclo

    ragazzi devo fare un controllo.

    $number=0;
    $result = mysql_query("SELECT * FROM banner WHERE data_inizio <= '$_GET[datainizio]'-INTERVAL $number DAY and data_fine >= '$_GET[datainizio]'-INTERVAL $number DAY ORDER BY RAND() LIMIT 0,1");
    while($dati = mysql_fetch_array($result))


    bene io gli voglio scrivere, se $result=0 allora incrementa la variabile e riprova. Per l'incremento non c'è problema (come sotto) ma per dirgli ricomincia come faccio?

    if ($result=0)
    {
    $number++;
    }

    grazie

  2. #2

    Re: problemi con un ciclo

    Originariamente inviato da massimo80
    ragazzi devo fare un controllo.

    $number=0;
    $result = mysql_query("SELECT * FROM banner WHERE data_inizio <= '$_GET[datainizio]'-INTERVAL $number DAY and data_fine >= '$_GET[datainizio]'-INTERVAL $number DAY ORDER BY RAND() LIMIT 0,1");
    while($dati = mysql_fetch_array($result))


    bene io gli voglio scrivere, se $result=0 allora incrementa la variabile e riprova. Per l'incremento non c'è problema (come sotto) ma per dirgli ricomincia come faccio?

    if ($result=0)
    {
    $number++;
    }

    grazie
    Qualcosa di simile, non l'ho provato, ma dovrebbe andare
    Codice PHP:
    function interroga(){
    $number=0
    $result mysql_query("SELECT * FROM banner WHERE data_inizio <= '$_GET[datainizio]'-INTERVAL $number DAY and data_fine >= '$_GET[datainizio]'-INTERVAL $number DAY ORDER BY RAND() LIMIT 0,1"); 
    while(
    $dati mysql_fetch_array($result))
    if(
    $dati==0){
    return 
    false;
    }
    else {
    return 
    true;
    }
    }

    $number=0;
    while(
    interroga()){
    $number++;


  3. #3
    ma io se ho 0 risultati devo subito far partire il ciclo, quindi ho fatto così



    Codice PHP:
    function interroga(){
    $number=0;
        
    $result mysql_query("SELECT * FROM banner  WHERE data_inizio <= '$_GET[datainizio]'-INTERVAL $number DAY and data_fine >= '$_GET[datainizio]'-INTERVAL $number DAY ORDER BY RAND() LIMIT 0,1");
        while(
    $dati mysql_fetch_array($result))
    {

    if(
    $dati==0){
        while(
    interroga()){
        
    $number++;
            }
            }


    elseif (
    $dati["type"]==="jpg")

    echo 
    "ciccio";
    }} 
    però non funzia:-(

  4. #4
    La mia funzione parte subito, e quando il risultato della query è diverso da vuoto si ferma il ciclo. Ma se vuoi che quando $dati è diverso da 0 ti restituisce l'interrogazione della query, allora bisognarebeb modificarlo un pò. Fammi sapere


  5. #5
    si avrei bisogno proprio di questo.
    Praticamente il controllo dovrebbe fare, se oggi non c'è nulla allora oggi -1 se oggi -1 vuoto allora oggi-2.
    Se oggi-2 non è vuoto allora dammi il risultato.
    grazie

  6. #6
    hei ragazzi help??

  7. #7
    Originariamente inviato da massimo80
    si avrei bisogno proprio di questo.
    Praticamente il controllo dovrebbe fare, se oggi non c'è nulla allora oggi -1 se oggi -1 vuoto allora oggi-2.
    Se oggi-2 non è vuoto allora dammi il risultato.
    grazie
    Mettendo giu' codice senza racchiuderlo nel tag code di capisce ben poco.

    Pero' stando a questa tua richiesta mi pare si possa semplicemente fare:

    where data <= oggi
    order by data desc
    limit 1

    Se ti interessa estrarne uno solo. E' inutile fare tante query se ti basta avere il primo piu' recente.


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

  8. #8

    Re: problemi con un ciclo

    codice:
    $numRisultati = 0;
    $number = 0;
    while($numRisultati == 0)
    {
      $result = mysql_query("SELECT * ... etc. etc.");
      $numRisultati = mysql_num_rows($result);
      $number++;
    }
    
    while($dati = mysql_fetch_array($result))
    {
    // etc. etc.
    }
    funziona ma è inutile, basterebbe riscrivere meglio la query e farne una sola

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.