Aide SQL

  • vegancoder
  • Graduate
  • Graduate
  • No Avatar
  • Inscription: Juil 28, 2004
  • Messages: 176
  • Status: Offline

Message Juin 4th, 2009, 3:56 pm

Bonjour les gens, je me demandais si quelqu'un pouvait expliquer quelque chose à moi, j'ai cette requête SQL:

Code: [ Select ]
SELECT p.*, p.creator AS creator_id, u.username AS creator_name, c.username AS clients_name, c.id AS client_id
FROM " . MODULE_PROJECTS_TABLE . " p
LEFT JOIN " . CORE_USERS_TABLE . " c ON p.client_id = c.id
LEFT JOIN " . CORE_USERS_TABLE . " u ON p.creator = u.id
ORDER BY created DESC
  1. SELECT p.*, p.creator AS creator_id, u.username AS creator_name, c.username AS clients_name, c.id AS client_id
  2. FROM " . MODULE_PROJECTS_TABLE . " p
  3. LEFT JOIN " . CORE_USERS_TABLE . " c ON p.client_id = c.id
  4. LEFT JOIN " . CORE_USERS_TABLE . " u ON p.creator = u.id
  5. ORDER BY created DESC


Supposons que les variables sont correctes et que ce qu'elle retourne quelques lignes. Elle retourne un tableau comme ceci:

Code: [ Select ]
array(
['id'] => 59
['title'] => 'Test'
['details'] => 'test'
['image'] => '7c8fc4f2b6836727e6cb40a95116fe98.jpg'
['created'] => 1244150298
['creator'] => 6
['client_id'] => 35
['progress'] => 50
['status'] => 'Midway'
['creator_id'] => 6
['creator_name'] => 'Liam'
)
  1. array(
  2. ['id'] => 59
  3. ['title'] => 'Test'
  4. ['details'] => 'test'
  5. ['image'] => '7c8fc4f2b6836727e6cb40a95116fe98.jpg'
  6. ['created'] => 1244150298
  7. ['creator'] => 6
  8. ['client_id'] => 35
  9. ['progress'] => 50
  10. ['status'] => 'Midway'
  11. ['creator_id'] => 6
  12. ['creator_name'] => 'Liam'
  13. )


Quelqu'un peut-il me dire pourquoi le clients_name caractéristique "" n'est pas là?

Merci
  • Anonymous
  • Bot
  • No Avatar
  • Inscription: 25 Feb 2008
  • Messages: ?
  • Loc: Ozzuland
  • Status: Online

Message Juin 4th, 2009, 3:56 pm

  • UPSGuy
  • Lurker ಠ_ಠ
  • Web Master
  • Avatar de l’utilisateur
  • Inscription: Juil 25, 2005
  • Messages: 2735
  • Loc: Nashville, TN
  • Status: Offline

Message Juin 4th, 2009, 4:09 pm

Pourriez-vous nous indiquer le code de votre requête, et la ligne de sortie que vous tiré de ce tableau? Theres quelques possibilités.
I'd love to change the world, but they won't give me the source code.
  • vegancoder
  • Graduate
  • Graduate
  • No Avatar
  • Inscription: Juil 28, 2004
  • Messages: 176
  • Status: Offline

Message Juin 4th, 2009, 4:15 pm

Il s'agit de ma fonction entière. Il utilise phpBBs dbal pour envelopper db.

Code: [ Select ]
    function get_projects($num_projects = 'all', $start_from = 0){
        global $fb, $db;

        $sql = "SELECT p.*, p.creator AS creator_id, u.username AS creator_name, c.username AS clients_name, c.id AS client_id
                FROM " . MODULE_PROJECTS_TABLE . " p
                LEFT JOIN " . CORE_USERS_TABLE . " c ON p.client_id = c.id
                LEFT JOIN " . CORE_USERS_TABLE . " u ON p.creator = u.id
                ORDER BY created DESC";
            
        if($num_projects == 'all'){
            $result = $db->sql_query($sql);
        }else{
            $result = $db->sql_query_limit($sql, $num_projects, $start_from);
        }
        
        $projects = $db->sql_fetchrowset($result);
                
        //garbage collection
        $db->sql_freeresult($result);
        
        return $projects;         
    }
  1.     function get_projects($num_projects = 'all', $start_from = 0){
  2.         global $fb, $db;
  3.         $sql = "SELECT p.*, p.creator AS creator_id, u.username AS creator_name, c.username AS clients_name, c.id AS client_id
  4.                 FROM " . MODULE_PROJECTS_TABLE . " p
  5.                 LEFT JOIN " . CORE_USERS_TABLE . " c ON p.client_id = c.id
  6.                 LEFT JOIN " . CORE_USERS_TABLE . " u ON p.creator = u.id
  7.                 ORDER BY created DESC";
  8.             
  9.         if($num_projects == 'all'){
  10.             $result = $db->sql_query($sql);
  11.         }else{
  12.             $result = $db->sql_query_limit($sql, $num_projects, $start_from);
  13.         }
  14.         
  15.         $projects = $db->sql_fetchrowset($result);
  16.                 
  17.         //garbage collection
  18.         $db->sql_freeresult($result);
  19.         
  20.         return $projects;         
  21.     }


Le code qui génère le tableau est simplement

Code: [ Select ]
$fb->log($project);


Im FirePHP poursuit pour faire mon debuggin.

Je ne pense pas que ce sera beaucoup vous aider Tho :(
  • UPSGuy
  • Lurker ಠ_ಠ
  • Web Master
  • Avatar de l’utilisateur
  • Inscription: Juil 25, 2005
  • Messages: 2735
  • Loc: Nashville, TN
  • Status: Offline

Message Juin 5th, 2009, 6:22 am

Votre déclaration journal affiche $ alors que votre projet de code montre $ projet [s], mais je figure thats just a typo. Je ne vois rien qui aurait immédiatement supprimer la colonne supplémentaire. Essayez d'échanger un var_dump pour votre ligne de journal FirePHP et voir ce qu'elle montre:

Code: [ Select ]
var_dump($projects);


Comme les bonnes pratiques, mai aussi vous voulez construire dans certaines vérifications d'erreur SQL / manutention. À tout le moins, je voudrais exécuter la requête manuellement contre la DB et de voir ce qui sort, juste pour s'assurer que son un problème et code pas une table de concertation.
I'd love to change the world, but they won't give me the source code.

Afficher de l'information

  • Total des messages de ce sujet: 4 messages
  • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 157 invités
  • Vous ne pouvez pas poster de nouveaux sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas éditer vos messages
  • Vous ne pouvez pas supprimer vos messages
  • Vous ne pouvez pas joindre des fichiers
 
 

© 2011 Unmelted, LLC. Ozzu® est une marque déposée de Unmelted, LLC