Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 3 Gast/Gäste
Custom Search mit Thread-IDs - SQL Fehler
#1
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
Zitieren
#2
Wenn ein SQL-error ausgegeben wird, dann wäre es u.U. hilfreich, Deinen Query zu kennen....
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren
#3
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
Zitieren
#4
Sicher, dass es daran lag? escape_string sollte bei einer mit Kommas getrennten Liste nichts ändern.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#5
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
Zitieren