Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    28

    Estrarre dati da Database con vincolo Checkbox !!!

    Buongiorno a tutti ragazzi,

    io ho un problema con delle checkbox. Ho creato un form con ricerca nel Database con vincolo testo, data, centro, e avrei messo anche due checkbox dove una ha valore 1 e l'altra 0 nella tabella del database.

    Funziona tutto tranne il vincolo delle checkbox.
    Vi posto il codice che è suddiviso in due pagine, una è la classe e l'altra invece dove c'è il form html.

    class.php

    Codice PHP:
    <?php

    class Newsletter
    {

        
        
    /* id Centro commerciale*/ 

        
    public $id_cc NULL;
        
        
    /* connessione al database*/

        
    public function __construct($db) {

            
    $this->db $db;

        }


                               
        public static function 
    elenco ($text NULL$date_da NULL$date_a NULL$stato NULL$centro_commerciale NULL$tot_pages NULL$per_page 25)
        {

                  
            
    $dati = array();
            
            
    $query "SELECT * FROM nl_newsletter WHERE (1=1)";
            
            
    /*ricerca con vincolo testo*/

            
    if (isset($text) && (trim($text)!=''))

            {

                
    $query.= " AND titolo LIKE '%".mysql_escape_string($text)."%'";

            }
            
            
    /*ricerca con vincolo centro commerciale*/

            
    if (isset($centro_commerciale) && (is_numeric($centro_commerciale)))

            {

                
    $query.= " AND sito = ".$centro_commerciale."";

            }
            
            [
    B]/*ricerca con vincolo stato (prova)*/
            
            
    if (isset($stato) && (is_array($stato)))

                   {
     
                
    $query.= " AND stato_coda_invio = ".$stato."";

                }[/
    B]
            

         
            
    /*ricerca con vincolo data da*/
            
            
            
    if (isset($date_da) && ($date_da)!='')

            {

            
    $date "$date_da";

            
    $ddmmyy explode('/',$date);

            
    $date_conv $ddmmyy[2]  . $ddmmyy[1] .  $ddmmyy[0];
                
                
    $query.= " AND CONVERT(VARCHAR(10), data_invio, 112) >= '".$date_conv."'";
                
            }
            
            
    /*ricerca con vincolo data a*/
            
            
            
    if (isset($date_a)&& ($date_a)!='')

            {
                
    $date "$date_a";

                
    $ddmmyy explode('/',$date);

                
    $date_conv $ddmmyy[2]  . $ddmmyy[1] .  $ddmmyy[0];

                
    $query.= " AND CONVERT(VARCHAR(10), data_invio, 112) <= '".$date_conv."'";

            } 

            
     

                
            if (
    $res mssql_query($query))

            {
                while (
    $row mssql_fetch_assoc($res))

                {
                    
    $dati[] = $row;
                }
            }
            
            return(
    $dati);
            
            }

    }


    ?>

    invece la parte di HTML dove è presente il form è questa:

    Codice PHP:

     <input type="checkbox" name="st[]" value="0" class="check" <?php if(in_array("0",$stato)) { ?> checked="checked" <?php ?> /> Inviata 
                
                <input type="checkbox" name="st[]" value="1" class="check" <?php if(in_array("1",$stato)) { ?> checked="checked" <?php ?> /> Da inviare
    in ultimo la parte doe stampo i risultati intabellati nella pagina HTML.

    Codice PHP:
            <?php
        
                        
                        $i_nl 
    0;

                        while ((
    $i_nl 2000) && ($i_nl sizeof($newsletter))) {

                        
                        
                            echo 
    '<div class="internotab1">';

                            echo 
    '<div class="internotab">';

                            echo(
    $newsletter[$i_nl]['sito']);

                            echo 
    '</div>';

                            echo 
    '</div>';
                        
                              echo 
    '<div class="internotab1">';

                                echo 
    '<div class="internotab">';

                            echo(
    $newsletter[$i_nl]['titolo']);

                            echo 
    '</div>';

                            echo 
    '</div>';
                    
                            echo 
    '<div class="internotab1">';

                            echo 
    '<div class="internotab">';

                            echo(
    $newsletter[$i_nl]['stato_coda_invio']);

                            echo 
    '</div>';

                            echo 
    '</div>';
                
                              echo 
    '<div class="internotab2 hidden">';

                               echo 
    '<div class="internotab floatl">';

                            echo(
    $newsletter[$i_nl]['data_invio']);

                            echo 
    '</div>';
                    
                           echo 
    '<div style="float:left;width:40px;text-align:center;margin-left:60px;padding-top:10px;">'
    echo 
    '<a href ="#"><img src="img/ico/pencil.png" width="22" height="22" alt="modifica" title="Modifica"/></a>';

                        echo 
    '</div>';

                        echo 
    '<div style="float:left;width:40px;text-align:center;padding-top:10px;">';

                        echo 
    '<a href ="#"><img src="img/ico/bell.png" width="22" height="22" alt="modifica o annulla pianificazione" title="Modifica o Annulla pianificazione" /></a>';

                        echo 
    '</div>';

                        echo 
    '<div style="float:left;width:40px;text-align:center;padding-top:10px;">';

                        echo 
    '<a href ="#"> <img src="img/ico/cestin.png" width="19" height="22"alt="cancella" title="Cancella" /></a>';

                        echo 
    '</div>';

                            
                        echo 
    '</div>'.'<br>';    
                        
                        
    $i_nl++;

                        }
                        
                        
    ?>
                            
                </div>

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    28
    la parte non funzionante è nella class.php il codice contenuto tra le due B.
    Ultima modifica di dada124; 21-03-2014 a 17:09

  3. #3
    Dopo un'occhiata veloce..
    Codice PHP:
    [B]/*ricerca con vincolo stato (prova)*/ 
             
            
    if (isset($stato) && (is_array($stato))) 

                   { 
      
                
    $query.= " AND stato_coda_invio = ".$stato.""

                }[/
    B
    Quella query se $stato è veramente un array (condizione necessaria per l'if) non verrà mai compilata, anzi dovrebbe generare un errore del tipo Array to string conversion. Ovvero, non puoi tentare di trattare un array come una stringa. Se stato è un array devi indicare anche l'indice in modo che php possa capire quale elemento dell'array intendi mettere in quel punto !
    Es: $stato[0]... oppure $stato[1].. etc..
    Se poi $stato ( e secondo me è così) non è un array ma una semplice variabile che contiene il nome dello stato nel quale fare la ricerca, il test is_array($stato) non ha senso.

  4. #4
    anche perche se non fosse un array , non entrerebbe mai nell'if.....

  5. #5
    Quote Originariamente inviata da pippuccio76 Visualizza il messaggio
    anche perche se non fosse un array , non entrerebbe mai nell'if.....
    Io ho dato due opzioni perchè non si sà cosa non va.. non l'ha scritto. Magari non vedendo il risultato corretto non ha verificato che entrasse o meno nell'if.

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.