[gelöst] SQL Abfrage zeigt nur ein Ergebnis statt allen
Eingetragen von pencilneck (4)
am 11.10.2010 - 15:21 Uhr in
am 11.10.2010 - 15:21 Uhr in
Hi,
bin gerade dabei ein Modul zu schreiben das es Usern ermöglicht Experte bei bestimmten Nodes zu sein. Im Profil sollen dann alle Nodes aufgelistet werden bei denen der User Experte ist.
Allerdings bringt mich der Code den ich dazu verwende zur Verzweiflung, weil er statt der Liste aller Nodes nur einen Node Zeigt.
Zuerst rufe ich in der Experts Tabelle die Node Ids für das angezeigte Profil ab ($usersid ist die UID des aufgerufenen Profils):
<?php
$expert_nid = db_result(db_query('SELECT nid FROM products_experts WHERE uid = %d', $usersid));
?>
Danach frage ich alle weiteren Informationen ab die ich benötige und gebe sie aus:
<?php
$query = "SELECT * FROM products_node WHERE nid = $expert_nid";
$pager_num = 0;
$queryResult = pager_query(db_rewrite_sql($query), 10, $pager_num, NULL);
$page_content .= '<ul>';
while ($expert = db_fetch_object($queryResult)) {
$page_content .= '<li>'.'<a href="http://example.com/node/'.$expert_nid.'">'.$expert->title.'</a>'.'</li>';
}
$page_content .= '</ul>'.theme ('pager', NULL, 10, $pager_num);
?>
Weiß jemand wie man das Problem lösen kann, sodass alle Nodes angezeigt werden?
Gruß,
Pencilneck
- Anmelden oder Registrieren um Kommentare zu schreiben
<?php$expert_nid =
am 11.10.2010 - 16:02 Uhr
<?php
$expert_nid = db_result(db_query('SELECT nid FROM products_experts WHERE uid = %d', $usersid));
?>
Damit rufst Du aber nur eine einzige Node aus der DB, wenn musst Du das über eine Schleife laufen lassen, also so:
<?php
$result = db_query('SELECT nid FROM products_experts WHERE uid = %d', $uid);
while($row = db_fetch_object($result)) {
$nids[] = $row->nid;
}
?>
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
Danke für deine Antwort
am 12.10.2010 - 10:04 Uhr
Danke für deine Antwort Sense, so hats endlich funktioniert.
Gruß,
Pencilneck