Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    13

    problema nel passare valori a shell_exec

    Salve,

    ho un problema, vorrei prelevare dei dati da un db e passarli alla funzione shell_exec che cosi mi permetterebbe di inviare al display i risultati:

    Codice PHP:
    <?php
    //Creo la connessione mysql
    $username="xxx";
    $password="yyy";
    $database="www";
    $host="localhost";
    mysql_connect($host,$username,$password);
    @
    mysql_select_db($database) or die("Impossibile selezionare il database.");
    //Creo la mia query
    $query="SELECT * FROM valori";
    $risultati=mysql_query($query);
    $num=mysql_numrows($risultati);
     
    mysql_close();
    //sono elencate tutte le temp ma in questo esempio ne uso solo un paio
    $pz=mysql_result($risultati,"temp_cortile");
    $pu=mysql_result($risultati,"temp_garage");
    $pv=mysql_result($risultati,"temp_loggiato");
    $d=mysql_result($risultati,"temp_soggiorno");
    $pq=mysql_result($risultati,"temp_camera");
    $c=mysql_result($risultati,"temp_soppalco");
    $ps=mysql_result($risultati,"temp_ospiti");
    $pm=mysql_result($risultati,"temp_caminoin");
    $pn=mysql_result($risultati,"temp_caminoout");
    $pi=mysql_result($risultati,"temp_chillerin");
    $pl=mysql_result($risultati,"temp_chillerout");
    $p=mysql_result($risultati,"temp_boilerup");
    $g=mysql_result($risultati,"temp_boilerdown");
    $e=mysql_result($risultati,"temp_pannelloin");
    $f=mysql_result($risultati,"temp_pannelloout");
    $pp=mysql_result($risultati,"temp_fancoil_cucina");
    $pr=mysql_result($risultati,"temp_fancoil_camera");
    $pt=mysql_result($risultati,"temp_fancoil_ospiti");
    $po=mysql_result($risultati,"temp_fancoil_soggiorno");
    //Inviamo al display prima due reset e poi i valori
    shell_exec('/opt/owfs/bin/owwrite led/LCD_H/clear 1');
    usleep(500);
    shell_exec('/opt/owfs/bin/owwrite led/LCD_H/home  1');
    usleep(500);
    shell_exec('/opt/owfs/bin/owwrite led/LCD_H/screen "Temp.Soggiorno   $pz Temp.Soppalco    $pz Temp.Camera      $pz Temp.Camera Osp. $pz"');
    sleep(5);
    ?>
    ricevo l'errore:
    codice:
    PHP Warning: mysql_result() expects parameter 2 to be long, string given in /www/scripts/lcd.php on line
    Un piccolo indizio ?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di Secta
    Registrato dal
    May 2002
    Messaggi
    365
    http://php.net/manual/en/function.mysql-result.php

    mysql_result ( resource $result , int $row [, mixed $field = 0 ] )

    Tu stai passando una stringa.
    "Dai diamanti non nasce niente, dal letame nascon fiori."
    Fabrizio De Andrè

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    13
    Ciao, grazie per la risposta, non sono un esperto programmatore, mi sforzo di mettere assieme qualche pezzetto preso quà e là e modificare fino a riuscire

    Ho povato e va bene sono sicuro che adesso prelevo il dato giusto (ho provato con il print) ma non riesco a farlo visualizzare da shell_exec

    Codice PHP:
    <?php
    //Creo la connessione mysql
    $username="www";
    $password="xxx";
    $database="yyy";
    $host="localhost";
    mysql_connect($host,$username,$password);
    @
    mysql_select_db($database) or die("Impossibile selezionare il database.");
    //Creo la mia query
    $query="SELECT * FROM valori";
    $risultati=mysql_query($query);
    mysql_close();
    while (
    == 1):
    $pz=mysql_result($risultati,0,"temp_cortile");
    //$pu=mysql_result($risultati,0,"temp_garage");
    //$pv=mysql_result($risultati,0,"temp_loggiato");
    //$d=mysql_result($risultati,0,"temp_soggiorno");
    //$pq=mysql_result($risultati,0,"temp_camera");
    //$c=mysql_result($risultati,0,"temp_soppalco");
    //$ps=mysql_result($risultati,0,"temp_ospiti");
    //$pm=mysql_result($risultati,0,"temp_caminoin");
    //$pn=mysql_result($risultati,0,"temp_caminoout");
    //$pi=mysql_result($risultati,0,"temp_chillerin");
    //$pl=mysql_result($risultati,0,"temp_chillerout");
    //$p=mysql_result($risultati,0,"temp_boilerup");
    //$g=mysql_result($risultati,0,"temp_boilerdown");
    //$e=mysql_result($risultati,0,"temp_pannelloin");
    //$f=mysql_result($risultati,0,"temp_pannelloout");
    //$pp=mysql_result($risultati,0,"temp_fancoil_cucina");
    //$pr=mysql_result($risultati,0,"temp_fancoil_camera");
    //$pt=mysql_result($risultati,0,"temp_fancoil_ospiti");
    //$po=mysql_result($risultati,0,"temp_fancoil_soggiorno");

    shell_exec('/opt/owfs/bin/owwrite lcd/LCD_H/clear 1');
    usleep(500);
    shell_exec('/opt/owfs/bin/owwrite lcd/LCD_H/home  1');
    usleep(500);
    shell_exec('/opt/owfs/bin/owwrite lcd/LCD_H/screen "Temp.Cortile $pz"');
    sleep(5);
    endwhile;
    ?>

  4. #4
    Utente di HTML.it L'avatar di Secta
    Registrato dal
    May 2002
    Messaggi
    365
    Ma se i comandi shell_exec presenti nel tuo codice li dai da terminale ottieni qualcosa?

    Per quanto riguarda

    Codice PHP:
    shell_exec('/opt/owfs/bin/owwrite lcd/LCD_H/screen "Temp.Cortile $pz"'); 
    prova questa e vedi se va

    Codice PHP:
    shell_exec("/opt/owfs/bin/owwrite lcd/LCD_H/screen \"Temp.Cortile $pz\""); 
    "Dai diamanti non nasce niente, dal letame nascon fiori."
    Fabrizio De Andrè

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    13
    Originariamente inviato da Secta
    Ma se i comandi shell_exec presenti nel tuo codice li dai da terminale ottieni qualcosa?

    Per quanto riguarda

    Codice PHP:
    shell_exec('/opt/owfs/bin/owwrite lcd/LCD_H/screen "Temp.Cortile $pz"'); 
    prova questa e vedi se va

    Codice PHP:
    shell_exec("/opt/owfs/bin/owwrite lcd/LCD_H/screen \"Temp.Cortile $pz\""); 
    Ciao, allora da terminale ottieni se valorizzi la variabile "$pz", comunque dopo essere impazzito ho trovato il problema:

    codice:
    shell_exec('/opt/owfs/bin/owwrite lcd/LCD_H/screen "Temp.Cortile '.$pz.'"');
    Come puoi vedere la variabile andava chiusa tra due punti singoli e a loro volta chiusi in apice singolo

    Grazie per l'aiuto.

  6. #6
    Utente di HTML.it L'avatar di Secta
    Registrato dal
    May 2002
    Messaggi
    365
    Ma infatti ti avevo detto di fare in quel modo per passare la variabile $pz... come ti avevo suggerito io non lo faceva?

    Cmq l'importante è che tu abbia risolto
    "Dai diamanti non nasce niente, dal letame nascon fiori."
    Fabrizio De Andrè

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.