2010-03-26 5 views
0

J'essaye de faire fonctionner ceci et la requête s'exécute mais rien ne revient. J'ai essayé tout ce que je peux penser, pouvez-vous repérer ce que je fais mal? EDIT - J'ai trié quelques bits, mais la sortie est toujours vide!Drupal db_query_range Requête SQL

EDIT - c'est le code de travail:

$nodeid = $node->nid; 
$get_image = db_query(' 
    SELECT p.filepath as imagefilename 
    FROM {image_attach} i 
    LEFT JOIN {image} a ON i.iid = a.nid 
    LEFT JOIN {files} p ON a.fid = p.fid 
    WHERE i.nid = %d AND p.filename = "recipe_thumb"', $nodeid); 
$obj_image = db_fetch_object($get_image); 
$imagefilename = $obj_image->imagefilename; 

Répondre

2

$result est un mysql (i) la seule ressource. Vous devez d'abord aller chercher la ligne/l'objet.

$result = db_query_range(....); 
$object = db_fetch_object($result); 
print_r $object; 
+0

hmm qui ne semble pas avoir aidé ... peut-être il y a quelque chose dans le SQL .. Je suis fortement tentée d'abandonner le DAL Drupal et devez le faire en simple PHP/SQL tbh! – MrFidge

+0

hiya - ça marche, merci pour votre conseil :) – MrFidge

0

En supposant que vous ayez une portée ob, aucun résultat ne devrait fonctionner. Vous devez stocker les résultats dans un tableau ou les traiter d'une manière différente. pour un seul résultat voir DB_result()

$nodeid = $node->nid; 

$get_image = db_query(' 
    SELECT p.filepath as imagefilename 
    FROM {image_attach} i 
    LEFT JOIN {image} a ON i.iid = a.nid 
    LEFT JOIN {files} p ON a.fid = p.fid 
    WHERE i.nid = %d AND p.filename = "recipe_thumb"', $nodeid); 

while(($obj_image = db_fetch_object($obj_image)) == TRUE){ 
    $imagefilename[] = $obj_image->imagefilename; 
}