Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    problema controllo in_array

    Buon giorno.Devo confrontare valori estrapolati da db, con quelli generati da un ciclo for.
    Volevo utilizzare in_array, ma genera l'errore Wrong datatype for second argument.
    Codice PHP:
    //estrapolo la data e l'ora da db
    $DBdayMeet '';
    while(
    $row mysql_fetch_array($rsMeet)) {
        
    $ora_meeting        $row['ora_meeting'];
            
    //prendo solo le prime due cifre, che si riferiscono al giorno del mese
            //e costruisco l'array, separando i valori con la virgola
        
    $DBdayMeet .= substr(cGiraData($ora_meeting,"DBHTML"),0,2).",";
    }
    //uscendo dal while, tolgo l'ultima virgola
    $DBdayMeet substr($DBdayMeet0, -1); 

    //qui eseguo il ciclo che mi permette, in base al mese odierno, di sapere i giorni di quel mese
    for($list_day 1$list_day <= $days_in_month$list_day++){

    //qui vorrei utilizzare l'in_array per vedere se i giorni del mese, sono contenuti nell'array dei gg estrapolati da DB
    $calendar.= (in_array($DBdayMeet,$list_day) ? '<div class="day-number_a">[url="calendarForDevice.php?draw_calendar_day=1"]'.$list_day.'[/url]' '<div class="day-number">'.$list_day) .'</div>';


    Domanda, dov'è che sbaglio?
    Grazie mille....

  2. #2
    Moderatore di Off Topic, Kickstarter e XML L'avatar di Sky
    Registrato dal
    Jul 2000
    residenza
    Roma
    Messaggi
    1,053
    Dal codice che vedo $list_day non è un array, bensì un intero. Per questo di dà errore.
    Il secondo parametro della funzione in_array() deve essere un array, altrimenti devi usarne un'altra in base alle tue esigenze.
    Lo Stato deve dare ai cittadini, come diritto, ciò che la mafia dà come favore.
    Carlo Alberto dalla Chiesa

    Facebook | Twitter | Last.fm | LinkedIn | Quora

  3. #3
    in_array()

    Per il resto vale quanto già detto da Sky.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  4. #4
    grazie delle risposte...cmq scusate, ma se $list_array è un interno, ed eseguo il controllo in questo modo:
    Codice PHP:
    for($list_day 1$list_day <= $days_in_month$list_day++){
            
    $a explode(' '$list_day);
        
    //$info = print_r($a, true);
        //print_r($info);
           
    print_r($a);
            
    $calendar.= (in_array($a,$DBdayMeetecc ecc

    mi dà sempre lo stesso errore....
    voi cosa mi consigliate?

  5. #5
    Il manuale mai? explode() restituisce un array!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    ho risolto in questo modo.....
    Codice PHP:
    $calendar.= (in_array($list_day,explode(",",$DBdayMeet)) ecc ecc 
    grazie e buona giornata a tutti....

  7. #7
    seppur risolto, avrei un'altra domanda.
    Devo fare in modo che, alla data e all'ora debba visualizzare un testo
    Codice PHP:
    //qui estrapolo a seconda della query alcuni valori
    $DBhourMeet '';
    $testo_meet_1 '';
    while(
    $row mysql_fetch_array($rsMeet)){
            
    $ora_meeting        $row['ora_meeting'];
            
    $DBhourMeet .= substr(cGiraData($ora_meeting,"DBHTML"),11,2).",";
        
    $testo_meet_1 .= $row['testo_meet_1'].",";
    }

    $DBhourMeet     substr($DBhourMeet0, -1); 
    $testo_meet_1    substr($testo_meet_10, -1);
    //creo la tabella con le ore da 00 a 23
    for ($i 0$i <= 23$i++) {
    echo 
    "<tr><td>";
    //se nel db ho data e ora, ma in questo caso soltanto l'ora, la metto a confronto con quella del ciclo for per visualizzare solo a quell'ora un messaggio che ho dentro il DB.
    echo (in_array($i,$DBhourMeet) ? $testo_meet_1 "");
    echo 
    "</tr></td>";

    Purtroppo ho difficoltà nel far visualizzare il messaggio inerente a quell'orario.
    Per favore aiuto...

  8. #8
    allora, continuo ad avere il problema nella visualizzazione dei messaggi.
    Come potete vedere dall'immagine postata,dovrei visualizzare i messaggi all'ora stabilita all'interno delle celle della tabella, accanto all'ora esatta.
    Questo è lo script:
    Codice PHP:
    for ($i 0$i <= 23$i++) {
            echo 
    "<tr><td>";
            while(
    $row mysql_fetch_array($rsMeet)){
                           
    $DBdayMeet1 substr($row['ora_meeting'],0,10);
                           
    $DBhourMeet1 substr(cGiraData($row['ora_meeting'],"DBHTML"),11,2);
                           if(
    date("Y-m-d")==$DBdayMeet1){
                       for (
    $j 0$j <= 23$j++) {
                             if(
    $DBhourMeet1==$j){
                                                    echo 
    "<tr><td>";
                            echo 
    "ora: "$j " " $row['testo_meet_1']."\n
    "
    ;
                            echo 
    "</td></tr>";
                        }
                    }
                }
            }
            echo 
    "</td></tr>";

    Potete aiutarmi cortesemente?
    grazie mille...
    Immagini allegate Immagini allegate

  9. #9
    sto sclerando si può dire?
    vorrei fare una cosa del genere come nell'immagine postata....
    aiuto regà....
    Immagini allegate Immagini allegate

  10. #10
    allora, analizziamo il codice:
    Codice PHP:
    //query
    $sqlMeet "select * from ".trim($DB).".tb_business_meeting where ora_meeting like'".$_GET['meet']."%' and id_incaricato='".$_SESSION['id_user']."' order by ora_meeting asc";
    $rsMeet mysql_query($sqlMeet) or die ("impossibile eseguire la select: " mysql_error(E_ALL));

    //estrapolo i valori della tb_business_meeting 
    while($row mysql_fetch_array($rsMeet)){
              
    //prendo soltanto i primi 10 valori del campo ora_meeting
              
    $DBdayMeet1 substr($row['ora_meeting'],0,10);
              
    //giro la data nel formato italiano e prendo i primi due valori riferiti all'ora es:10,22
              
    $DBhourMeet .= substr(cGiraData($row['ora_meeting'],"DBHTML"),11,2).",";
              
    //inizio a creare la tabella che conterrà sia le ore che i messaggi
              
    $table "<table style='width:100%;'>";
              
    //controllo che il giorno che ho scelto $_GET['meet'] sia lo stesso nel DB
              
    if($_GET['meet']==$DBdayMeet1){
                            
    //inizio a comporre tr e td della tabella dalle ore 00 alle ore 23
                
    for ($j 0$j <= 23$j++) {
                    
    $table .= "<tr>";
                    
    $table .=  "<td>".((strlen($j)==1) ? '0'.$j $j)."</td><td>";
                                    
    //controllo se l'orario del ciclo $j è presente in quello del DB
                                    
    if(in_array($j,explode(",",$DBhourMeet))){
                                           
    //stampo il o i messaggi inerenti a quell'ora
                                           
    echo $testo_meet_1;
                                    }
                    
    $table .= "</td>";
                    
    $table .= "</tr>";
                }
            
    $table .= "</table>";
            }

    Purtroppo riesco a stampare soltanto un messaggio all'ora prevista, invece che tutti e due.
    Dov'è che sbaglio?
    grazie ancora

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.