Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: Problema con una JOIN

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    153

    Problema con una JOIN

    Salve, la query in questione è la seguente:
    Codice PHP:
    SELECT a.nome AS a_nome FROM sessions s LEFT JOIN autore a ON a.id s.session_id  WHERE s.session_id '$session_id' 
    La eseguo salvo le informazioni su un array:
    Codice PHP:
    $autore=mysql_fetch_assocmysql_query'la query sopra' ) ); 
    Come faccio a stampare a video le informazioni prelevate???
    Vi dico che con
    Codice PHP:
    echo "$autore[a_nome]"
    Non mi stampa niente.

  2. #2
    potrebbe benissimo che la query non prelevi dati; per sincerartene dopo mysql_query metti

    print_r($autore) per controlalre se la query ha restituito qualcosa

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    153
    Mi mostra:

    Resource id #7

    Quindi penso che trovi qualcosa!

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    153
    Se può essere di aiuto la query in questione serve a verificare se un utente è loggato oppure no. Nel frattempo estrae delle informazioni sull'utente, in questo caso solo il nome, ma potrei aggiungere anche gli altri campi!

    A me servono quelle informazioni, come l'id dell'utente, il suo nome, la sua mail, che sono nel db!

    Ho fatto questa prova prelevando solo il nome, ma non so come utilizzarlo dopo, con
    Codice PHP:
    echo "$autore[a_nome]"
    non funziona, non stampa null a video!

    Cosa ci sarà di sbagliato?

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    153
    Ragazzi non so cosa sia successo... lo script mi ha funzianato per un oretta... cioè... dando il codice:
    Codice PHP:
    echo "$autore[a_nome]"
    mi stapava a video il nome!

    Non so come mai dopo un po non mi ha funzionato più... allora ho provato a caricarlo sul server dove ho l'hosting, ma anche li ha continuato a non funzionare!

    Non so più cosa fare!

  6. #6
    mmm...ho fatto una pèrova in locale e in remoto su due server con PHP 5 e va tutto..non sarà davvero mica questione della versione di PHP usata? invece di scrivere come fai tu prova così

    echo $autore['a_nome'];

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    153
    Ciao Emulman
    Ho dato un occhiata ed ho php 5 sia in locale con xampp che sull'hosting.

    Ho provato il codice che mi hai suggerito ma niente...

    Ma la cosa assurda è che nel pomeriggio per un tratto mi ha funzionato!

    Ti posto la funzione per intero!
    Codice PHP:
    function auth_check_user() {     
    global 
    $_COOKIE;      
    if (isset(
    $_COOKIE[COOKIE_NAME])) {         
    $session_id $_COOKIE[COOKIE_NAME];          
    $sql "SELECT a.nome AS a_nome FROM sessions s  LEFT JOIN autore a ON a.id = s.session_id  WHERE s.session_id = '$session_id'";         
    $result = @mysql_query($sql);         
    if (!
    $result) {             
    die(
    'Si è verificato un errore nella verifica della sessione.'); 
    }  
    if (
    mysql_num_rows($result) == 1) {             
    $user_info mysql_fetch_assoc($result); 
    return 
    $user_info
    }         
    else  {             
    /* * C'è il cookie ma non c'è la sessione nel db     
    * molto strano meglio uscire.              
    */                 
    exit;         
    }     
    }     
    else     {         
    header('Location: 'LOGIN_PAGE);         
    exit;
     } 

    Poi nella pagina faccio
    Codice PHP:
    $autore=auth_check_user();

    echo 
    $autore['a_nome']; 
    Ma non stampa nulla

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    153
    In realtà poi i campi estratti non mi servono per stamparli a video, ma per utilizzarli all'interno delle pagine, li volevo stampare per verificare che li tirasse fuori correttamente!

  9. #9
    vedo che tu come prima riga della function metti global $_COOKIE, in pratica tu crei una variabile globale $_COOKIE ma il fatto che questa variabile è GIA' globale e rpedefinita dal sistema, è un array che contiene appunto i cookie! nell'if isset chiaramente la variabile COOKIE non eseguirà la query perchè è vuota..

    tanto per capire, quando tu definsici un cookie lo fai così:

    setcookie('session_id', 5);

    poi richiami quel cookie con

    echo $_COOKIE['session_id']

    perciò la tua funzione deve essere come quanto segue (+ o -):

    Codice PHP:
    function auth_check_user() {           
    if (isset(
    $_COOKIE[COOKIE_NAME])) {                   
    $sql "SELECT a.nome AS a_nome FROM sessions s  LEFT JOIN autore a ON a.id = s.session_id  WHERE s.session_id = ".$_COOKIE[COOKIE_NAME];          
    $result = @mysql_query($sql) || die('Si è verificato un errore nella verifica della sessione.');
    if (
    mysql_num_rows($result) == 1) {
      
    // $user_info è un array             
      
    $user_info mysql_fetch_assoc($result); 
    }          
    else  {              
    /* * C'è il cookie ma non c'è la sessione nel db      
    * molto strano meglio uscire.              
    */                  
    exit;          
    }      
    }


  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    153
    Ho provato con degli aggiustamenti come mmi hai consigliato, ma nulla!

    Ho provato questo codice, con e senza l'alias nella query:
    Codice PHP:
    $autore auth_check_user();    

    extract($autore);   

    echo 
    $nome
    Ma non mi ha dato nessun risultato...

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.