MyBB.de Forum

Normale Version: Custom Search mit Thread-IDs - SQL Fehler
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich versuche derzeit eine custom-search zu machen, bei der nur eine bestimmte Menge an threads ausgegeben werden soll. Die Thread-IDs sind vorhanden und ich würde diese in das searcharray schreiben.
Code:
$sid = md5(uniqid(microtime(), 1));
    $searcharray = array(
        "sid" => $db->escape_string($sid),
        "uid" => $mybb->user['uid'],
        "dateline" => TIME_NOW,
        "ipaddress" => $db->escape_string($session->ipaddress),
        "threads" => $db->escape_string($tids),
        "posts" =>  '',
        "resulttype" => "threads",
        "querycache" => '',
        "keywords" => ''
    );


    
    print_r ($searcharray);
    $plugins->run_hooks("search_do_search_process");
    echo $tids;
  $db->insert_query("searchlog", $searcharray);
    
   //redirect("search.php?action=results&sid=".$sid, $lang->redirect_searchresults);

Testausgabe des Array

Code:
Array ( [sid] => c2949bcd7a787c1270f90b29f7010afa [uid] => 1 [dateline] => 1374150941 [ipaddress] => 92.42.225.1 [threads] => 4260,4261,4262,4263,4268,4269,4270,4271,4223,4228,4234,4265 [posts] => [resulttype] => threads [querycache] => [keywords] => )

Sobald ich redirect und das schreiben in die DB aktiv habe kommt folgender Fehler

Code:
MyBB has experienced an internal SQL error and cannot continue.

SQL Error:
    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 ') AND t.visible>-1 AND t.closed NOT LIKE 'moved|%'' at line 1
Query:
    SELECT COUNT(t.tid) AS resultcount FROM testboardmybb_threads t WHERE t.tid IN () AND t.visible>-1 AND t.closed NOT LIKE 'moved|%'

Evtl. kann mir einer auf die Spürnge helfen was ich falsch mache
Wenn ein SQL-error ausgegeben wird, dann wäre es u.U. hilfreich, Deinen Query zu kennen....
da ich die Threads direkt übergebe, dachte ich, dass keine weitere query mehr notwendig ist. Es wird ja die standard-db insert verwendet. War der meinung das reicht um nur die angegeben Threads in den Suchergebnisse anzeigen zu lassen
Da kein Edit mehr möglich ist, hier ein Update. Es geht, wenn ich die zeile

"threads" => $db->escape_string($tids),

durch

"threads" => $tids,

ersetze. Smile
Sicher, dass es daran lag? escape_string sollte bei einer mit Kommas getrennten Liste nichts ändern.
habe jetzt extra nochmal nachgesehen und du hast recht. Es lag am plugin-hook. Dieser wird von einem anderen plugin verwendet und das searcharray wird abgeändert. Daher keine tids und daher keine Suchergebnisse. Danke