UDT die met Database communiceerd

Nederlandse ondersteuning voor CMS Made Simple

Moderator: velden

Post Reply
HarmO
Power Poster
Power Poster
Posts: 251
Joined: Thu Jan 26, 2012 3:22 pm

UDT die met Database communiceerd

Post by HarmO »

hey

Ik gebruik momenteel nog versie 1.11.13 voor enkele sites omdat ik LISTIT2 gebruik en updaten te veel werk is. :-[

Nu zit er in de laatste versie van LISTIT2 een fout als je de search_* functionaliteit wilt gebruiken lukt dit niet bij "textarea"-velden.

dus heb ik mijn SQL-kennis nog is aangesproken en zelf de query geschreven voor de info die ik wil.

Code: Select all

SELECT cms_module_listit2contacts_item.alias 
FROM cms_module_listit2contacts_fieldval 
JOIN cms_module_listit2contacts_item ON cms_module_listit2contacts_item.item_id = cms_module_listit2contacts_fieldval.item_id 
WHERE (cms_module_listit2contacts_fieldval.fielddef_id = 11) AND (cms_module_listit2contacts_fieldval.value LIKE '%xxxxx"%')
In mijn HeidiSQL werkt dit perfect.
en dus wil ik nu mijn UDT schrijven die deze query gaat uitvoeren, xxxxx vervangend door een waarde die ik meegeef.

Maar ik kan niet direct informatie vinden hoe men vanuit een udt een query kan doen.
ik vind soms iets over gCMS(), maar dat blijkt depricated te zijn....

Mss ook iets om in de wiki te zetten?
Kind regards,
HarmO
Jos
Support Guru
Support Guru
Posts: 4020
Joined: Wed Sep 05, 2007 8:03 pm

Re: UDT die met Database communiceerd

Post by Jos »

UDT's zijn niet bedoeld om iets met databases te doen. Maar als je dat toch perse wilt, dan heeft Rolf al een voorbeeld op zijn blog staan:
http://www.cmscanbesimple.org/blog/movi ... ook-module
HarmO
Power Poster
Power Poster
Posts: 251
Joined: Thu Jan 26, 2012 3:22 pm

Re: UDT die met Database communiceerd

Post by HarmO »

Net wat ik zocht! ik probeer het uit.
Kind regards,
HarmO
HarmO
Power Poster
Power Poster
Posts: 251
Joined: Thu Jan 26, 2012 3:22 pm

Re: UDT die met Database communiceerd

Post by HarmO »

Dat heeft gewerkt.

Hierbij mijn UDT "contactAPI"

Code: Select all

$db = cmsms()->GetDb();
$PLZ = $_GET['r'];  
if (!preg_match('/^\d{5}$/', $PLZ)) { 
    header('Location: /');
    exit;
}
$query= "
SELECT ". cms_db_prefix() ."module_listit2contacts_item.alias 
FROM ". cms_db_prefix() ."module_listit2contacts_item 
JOIN ". cms_db_prefix() ."module_listit2contacts_fieldval ON ". cms_db_prefix() ."module_listit2contacts_item.item_id = ". cms_db_prefix() ."module_listit2contacts_fieldval.item_id 
WHERE (". cms_db_prefix() ."module_listit2contacts_fieldval.fielddef_id = 11) AND (". cms_db_prefix() ."module_listit2contacts_fieldval.value LIKE '%". $PLZ ."%')";
$dbresult = $db->Execute($query);
$entries = [];
while ($dbresult && $row = $dbresult ->FetchRow()){
   $entries[] = $row['alias'];
}
$smarty->assign('aliasentries', $entries);
en vervolgens kan ik op mijn pagina mijn udt oproepen en een gewone ListIt2 call doen met de include_items.

Code: Select all

{contactAPI}
{ListIt2Contacts include_items="{','|implode:$aliasentries}"}
Kind regards,
HarmO
Post Reply

Return to “Dutch - Nederlands”