Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    36

    Funzione PHP non ottiene nomi da puntatori

    Ciao Ragazzi! io ho questo problema, in questa pagina io non riesco a far funzionare i puntatori correttamente... a questo stadio la funzione ottiene correttamente i dati "Cliente" dalla tabella Users, Utilizzando la concat del f_name e del l_name dalla tabella users, quindi associando all'id presente nella mia tabella apparecchi (client_id) al nome+cognome della tabella users, e fin qui tutto ok.
    ho ripercorso gli stessi passi per fare la medesima cosa sia con marca_app e tipo_apparecchio, che utilizzano la stessa identica struttura di tabelle di quella users (Entrambe al suo interno hanno 2 campi Id, e Title), le relazione viene effettuata tramite i campi tipo_apparecchio e marca_apparecchio nella mia tabella apparecchi, che si collegano ai rispettivi campi id delle tabella tipo_apparecchio e marca

    questa è la funzione php che richiamo:
    Codice PHP:
           /**
           * Content::getApparecchi()
           * 
           * @return
           */
          
    public function getApparecchi()
          {
              
    $sort sanitize(get('sort'));
              
    $access '';
              
    $order '';
              if (
    Registry::get("Users")->userlevel == 5) {
                  
    $extra = ($sort) ? "AND" "WHERE";
                  
    $access "$extra app.staff_id='" Registry::get("Users")->uid "'";
                  
    $counter countEntries("permissions""staff_id"Registry::get("Users")->uid);
              } else {
                  
    $counter countEntries("apparecchi");
              }

              
    $pager Paginator::instance();
              
    $pager->items_total $counter;
              
    $pager->default_ipp Registry::get("Core")->perpage;
              
    $pager->paginate();

              (
    $sort) ? $order "WHERE app.client_id = '" . (int)$sort "'" null;
             
             
    $sql "SELECT app.id as appid, u.id as uid, app.tipo_apparecchio, app.modello, app.seriale, app.marca_app,"
                      
    "\n CONCAT(u.fname,' ',u.lname) as clientname"
                      
    "\n FROM apparecchi as app"
                      
    "\n LEFT JOIN users as u ON u.id = app.client_id"
                      
              
    $pager->limit;
                        
    $row self::$db->fetch_all($sql);

              return (
    $row) ? $row 0;
          } 
    La parte Users funziona corettamente e nella pagina, invece che comparirmi il numero dell'id del cliente, mi appare il nome + cognome, invece per marca e tipo apparecchio continua a comparire solo e soltanto il numero...

    Dove diavolo sto sbagliando??

    Grazie Mille

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    stampa le query prima di eseguirle... nello snippet non vedo la parte con gli INSERT: prova a guardare il contenuto della tabella (es. da phpmyadmin)... è correttamente popolata? magari nel campo testuale stai inserendo l'id...

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    36
    Tabella controllata ed é correttamente popolata... Per il campo cliente appare nome e cognome, per gli altri invece appaiono i numeri! É la relazione é come se non avvenisse!

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    come dicevo: stampa a video la query prima che sia eseguita per vedere cosa viene esattamente generato e poi controlla/verifica su phpmyadmin o simile

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    36
    Se eseguo la querula a video, dal phpmyadmin mi da un errore generico di sintassi, ma nemmeno quella funzionante funziona sul
    Php my admin...

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    36
    Rileggendo adesso... Cosa intendi x stampare a video prima che sia eseguita?

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    dove hai una riga tipo $sql = "..." inserisci subito dopo qualcosa come var_export($sql); in modo da avere a video l'output della query effettivamente composta e che sarà eseguita: questa è da verificare/testare

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    36
    Ecco l'output della Query:

    Codice PHP:
    'SELECT app.id as appid, u.id as uid, app.tipo_apparecchio, app.modello, app.seriale, app.marca_app, CONCAT(u.fname,\' \',u.lname) as clientname FROM apparecchi as app LEFT JOIN users as u ON u.id = app.client_id LIMIT 0,10' 

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    ecco... se esegui questa query su phpmyadmin il risultato è quello desiderato? posta un record di risposta precisando gli eventuali valori che non corrispondono a ciò che vuoi

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    36
    Phpmyadmin restituisce questo errore: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''SELECT app.id as appid, u.id as uid, app.tipo_apparecchio, app.modello, app.ser' at line 1

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.