Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [PHP + MySql] Problema con sintassi query

    Ciao ragazzi ho un semplice script che nn mi vuole funzionare ma sicuramente ho sbagliato qualcosa nella sintassi che nn riesco a capire

    Ho un file friendly.php che richiama un altro file,fondamentalmente dovrei vedere 2 utenti random dal db e un numero generato casualmente dal sito random.com

    innanzitutto vediamo il file friendly.php
    Codice PHP:
    <?php
        
    require_once('error_handler.php');
        require_once(
    'friendly.class.php');
        
        
    //non facciamo memorizzare il risultato in cache
        
    header('Expires: Wed, 23 Dec 1980 00:30:00 GMT');
        
    header('Last-Modified: ' gmdate('D, d M Y H:i:s') . ' GMT');
        
    header('Cache-Control: no-cache, must revalidate');
        
    header('Pragma: no-cache');

        
    //leggiamo il parametro action
        
    $action $_GET['action'];
        
        
    //recuperiamo la news
        
    if($action=='GetNews')
        {
            
    //creiamo una nuova istanza della classe Friendly
            
    $friendly = new Friendly();
            
            
    //usiamo le funzioni di friendly per recuperare le news
            
    $news $friendly->getNews();
            
            
    //restituiamo il messaggio da far leggere il server
            
    echo "$news";
        }
        else
        {
            echo 
    'Errore di comunicazione: il server non comprende il comando.';
        }
        
    ?>
    ora vi mostro il file friendly.class.php e sicuramente l'errore sarà qui

    Codice PHP:
    <?php
    require_once('error_handler.php');
    require_once(
    'config.php');

    //la classe memorizza le funzionalità dell'applicazione web Friendly
    class Friendly
    {

        
    //MEMORIZZA LA CONNESSIONE AL DB
        
    private $mMysqli;
        
        
    //il costruttore apre la connessione al db
        
    function __construct()
        {
            
    $this->mMysqli = new mysqli(DB_HOSTDB_USERDB_PASSWORDDB_DATABASE);
        }
        
    //generiamo il messaggio delle news
        
    public function getNews()
        {
            
            
    //questa memorizza una linea di news
            
    $news 'Nessuna notizia per oggi.';
            
            
    $query 'SELECT user_name FROM users ORDER BY RAND() LIMIT 2';
            
            
    //eseguiamo la query
            
    $result $this->mMysqli->query($query);
            
            
    //recuperiamo le righe degli utenti
            
    $row1 $result->fetch_array(MYSQLI_ASSOC);
            
    $row2 $result->fetch_array(MYSQLI_ASSOC);
            
            
    //chiudiamo lo stream di input
            
    $result->close();
            
            
    //generiamo le news
            
    if(!$row1 || !$row2)
            {
                
    $news 'Il progetto ha bisogno di più utenti!';
            }
            else
            {
                
    //creiamo il messaggio delle news formattato in HTML
                
    $name1 '[b]' $row1['user_name'] . '[b]';
                
    $name2 '[b]' $row2['user_name'] . '[b]';
                
    $randNum $this->getRandomNumber();
                
    $news 'l utente' $name1 ' lavora con l utente' $name2 'al progetto #' $randNum '.';
            }
            
            
    //restituiamo la linea di news
            
    return $news;
        }
        
        
    //restituisce un numero casuale tra 1 e 100
        
    private function getRandomNumber()
        {
            
    //ritarda l'esecuzione per un quarto di secondo
            
    usleep(250000);
            
            
    //contiene l'indirizzo del server remoto e i parametri
            
    $serverAddress 'http://www.random.org/cgi-bin/randnum';
            
    $serverParams 'num=1&min=1&max=100';
            
            
    //recupera il numero casuale dal server remoto
            
    $randomNumber file_get_contents($serverAddress '?' $serverParams);
            
            
    //restituisce il numero casuale
            
    return trim($randomNumber);
        }
        
        
    //il distruttore chiude la connessione al db
        
    function __destruct()
        {
            
    $this->mMysqli->close();
        }
    }
    ?>
    non mi vuole mostrare niente! (non fate caso che in friendly.php c'è il $_GET per recuperare il valore di action..)

    confido in voi!!

  2. #2
    Ti stampa il resto del codice senza problemi?
    Hai provato a generare tu un numero casuale al posto della funzione?

    Magari il problema non è la sintassi ma la private function che va a chiedere un numero casuale su un sito esterno.

  3. #3
    prova ad attivare la visualizzazione degli errori:

    Codice PHP:
    ini_set(‘error_reporting’E_ALL);
    ini_set(‘display_errors’1); 
    ed eventualmente post il problema

    ps. queste due righe di codice mettile prima di ogni altra sulla tua pagina php

  4. #4
    Originariamente inviato da maje
    prova ad attivare la visualizzazione degli errori:

    Codice PHP:
    ini_set(‘error_reporting’E_ALL);
    ini_set(‘display_errors’1); 
    ed eventualmente post il problema

    ps. queste due righe di codice mettile prima di ogni altra sulla tua pagina php
    Avevo dato per scontato che mostrasse tutti gli errori di base, son proprio arruginito

  5. #5
    Ho testato la funzione che genera i numeri casuali e funziona perfettamente... praticamente è solo la query che nn riesco a capire dove sbaglio se nel richiamo di mysqli oppure quando estraggo le righe...

    ho un modulo di gestione errori chiamato error_handler scritto in questo modo:

    Codice PHP:
    set_error_handler('error_handler'E_ALL);

    function 
    error_handler($errNo$errStr$errFile$errLine)
    {
        if(
    ob_get_length())    ob_clean();
        
        
    $error_message 'ERRNO: ' $errNo chr(10) .
                          
    'TEXT: ' $errStr chr(10) .
                          
    'LOCATION: ' $errFile 
                          
    ', line' $errLine;
                          
        echo 
    $error_message;
        exit;


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.