Visualizzazione dei risultati da 1 a 10 su 10

Discussione: problema query vuota

  1. #1

    problema query vuota

    Io vorrei far fare un inserimento se $result è vuoto, il problema è che se è vuoto non mi va avanti e quindi non legge l'if. Come faccio?

    Codice PHP:
    $result2 mysql_query("select * from banner ORDER BY id DESC LIMIT 0,1");
        
    $result mysql_query("SELECT * FROM banner  WHERE data_inizio <= NOW() and data_fine >= NOW() ORDER BY RAND() LIMIT 0,1");
        while(
    $dati mysql_fetch_array($result))
        while(
    $dati2 mysql_fetch_array($result2))
        
        if (empty(
    $result))
            {
        
    mysql_query("INSERT INTO banner (`id`,`nome`, `type`, `width`, `height`, `testo`, `testo_click`, `url`, `cod_agenti`, `titolo`, `target`, `alt`, `data_inizio`, `data_fine`) VALUES ('', '$dati2["nome"]','$dati2["type"]','$dati2["width"]','$dati2["height"]','$dati2["testo"]','$dati2["testo_click"]','$dati2["url"]', '$dati2["cod_agenti"]', '$dati2["titolo"]','$dati2["target"]','$dati2["alt"]','now()','now()')");
        } 

  2. #2
    Non è molto chiaro il tuo problema, se non ti inserisce nulla è perchè $result non è vuoto, quindi la query precedente ti ha dato un risultato

  3. #3
    ed è quello che penso anche io.
    Faccio qualche altra prova, però l'echo non mi da nulla però l'if non me lo prende. Ovviamente nell'if ho fatto delle prove inserendo echo "ciao ciao"; e non mi viene fuori.

    Faccio delle altre prove e poi mi faccio risentire.
    ciao

  4. #4
    Avrai poi altri problemi, ma sicuramente qui devi darci una regolatina:
    codice:
    VALUES ('', '$dati2["nome"]','$dati2["type"]','$dati2["width"]','$dati2["height"]',
             '$dati2["testo"]','$dati2["testo_click"]','$dati2["url"]', '$dati2["cod_agenti"]',
             '$dati2["titolo"]','$dati2["target"]','$dati2["alt"]','now()','now()')");
    Devi togliere tutti i doppi apici dall'indice numerico degli array, la funzione non va messa tra apici.

    es.: '$dati2[nome]','$dati2[type]',now()


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

  5. #5
    si hai ragione una svista, me ne sarei accorto solo quando l'if avesse cominciato a funzionare

  6. #6
    Originariamente inviato da massimo80
    si hai ragione una svista, me ne sarei accorto solo quando l'if avesse cominciato a funzionare
    Allora verifica anche:

    mancano le graffe al ciclo while.

    if (empty($result)) sara' sempre false, perche' sempre pieno.... $result e' il resource id della query e non le righe estratte.

    LIMIT 0,1
    se estrai solo 1 record, perche' fai dei cicli while?



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

  7. #7
    perchè ho messo limt 0,1 di prova.
    Accortissimi questi moderatori :-)) hehe. bravo giuste considerazioni. Grazie mille. Appena ho due minuti per lavorarci su vedo cosa non funzia.
    grazie mille ancora

  8. #8
    ho risolto in questo modo
    Codice PHP:
    $numRisultati 0;
        
    $number 0;
        while(
    $numRisultati == 0)
    {
        
    $result mysql_query("SELECT * FROM banner  WHERE data_inizio <= NOW() + INTERVAL  - '$number' DAY and data_fine >= NOW() + INTERVAL  - '$number' DAY  ORDER BY RAND() LIMIT 0,1");
       
    $numRisultati mysql_num_rows($result);
      
    $number++;
    }
    $dati mysql_fetch_array($result); 
    Suggerito da skidx.
    Troppo complicato secondo voi?

  9. #9
    Potrei anche essere sotto l'effetto di un aperitivo alcoolico... dovresti spiegarmi questo....
    codice:
    NOW() + INTERVAL  - '$number' DAY

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

  10. #10
    hehe errore di scrittura ...
    NOW() - INTERVAL '$number' DAY

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.