- Home
- Categorie
- Coding e Sistemistica
- PHP
- Select multiplo...
-
Select multiplo...
Scusate ma capendoci poco di php/mysql non so se ho scritto un titolo adatto.
Il mio problema è questo, ovvero far sì che mi peschi tutti i valori prefixid non solo con X ma anche con Y e Z... come si fa?
GrazieWHERE thread.threadid IN(" . implode(',', $newstids) . ") AND thread.prefixid = 'X'
-
Ciao Cerbero,
se ho ben capito il tuo problema, dovresti fare cosi:
WHERE thread.threadid IN(" . implode(',', $newstids) . ") AND (thread.prefixid = 'X' OR thread.prefixid = 'Y' OR thread.prefixid = 'Z')
-
Ho risolto in altro modo, ovvero così:
WHERE thread.threadid IN(" . implode(',', $newstids) . ") AND thread.prefixid IN (''X', 'Y')
Grazie mille comunque...Ora però ho un altro problemino, ovvero vorrei ordinare la lettura dei valori, secondi i valori presenti in un'altra tabella...
Ecco il codice... ho provato ad inserire l'ORDER BY direttamente (prefix.displayorder) ma evidentemente gli manca qualcosa in SELECT...SELECT $ratingsql user.*, thread.threadid, post.title, thread.replycount, postusername, postuserid, thread.dateline AS postdateline, sticky, thread.attach, thread.lastpostid, thread.lastposter, thread.lastpost, IF(views<=thread.replycount, thread.replycount+1, views) AS views, thread.forumid, post.postid, pagetext
$vba_news_fields
FROM " . TABLE_PREFIX . "thread AS thread
LEFT JOIN " . TABLE_PREFIX . "post AS post ON (post.postid = thread.firstpostid)
LEFT JOIN " . TABLE_PREFIX . "user AS user ON (user.userid = post.userid)
$vba_news_join
WHERE thread.threadid IN(" . implode(',', $newstids) . ") AND thread.prefixid IN ('Dicembre_2009', 'Gennaio_2010', 'Febbraio_2010', 'Marzo_2010', 'Aprile_2010', 'Maggio_2010', 'Giugno_2010', 'Luglio_2010', 'Agosto_2010', 'Settembre_2010', 'Ottobre_2010', 'Novembre_2010', 'Dicembre_2010')
" . iif(!$threadsqueried AND $mod_options['portal_news_cutoffdate'], 'AND thread.dateline > ' . (TIMENOW - ($mod_options['portal_news_cutoffdate'] * 86400))) . "
" . iif($ignusers, 'AND thread.postuserid NOT IN(' . $ignusers . ')') . "
" . iif($mod_options['portal_applypermissions'], $forumperms_query) . "
ORDER BY prefix.displayorder
");
-
Nessuno che possa aiutarmi? La credevo una modifica facile per chi ha un pò di dimestichezza con php/sql.
-
Non capisco... è difficile o cosa? Ditemi almeno se dovrei rivolgermi ad un esperto a pagamento.
Grazie
-
In teoria la tabella prefix dovrebbe essere nelle join, si trova in $vba_news_join?
-
Allora:
prefix è una tabella db mysql
displayorder un campo di quest'ultima (ordine dei prefissi delle discussioni vbulletin).
Praticamente è una pagina del cmps vbulletin in cui compaiono unicamente le discussioni con un certo prefisso. Io vorrei che venissero ordinate nella visualizzazione per numero di prefisso (oppure se fosse possibile farlo manualmente tipo ORDER BY a,b,c,d)
Grazie
-
Vediamo se riesco a spiegarmi bene.
Qualsiasi campo che vuoi utilizzare nella SELECT piuttosto che nella WHERE o nella ORDER BY, appartiene ad una tabella particolare che, per causa di forza maggiore, deve essere contenuta nella FROM della query stessa o direttamente o in una JOIN contenuta in essa.
Ora se tu vuoi ordinare i risultati per il campo displayorder che si trova nella tabella prefix, quest'ultima dovrebbe trovarsi in una JOIN della query, cosa che non accade nella query che hai postato a meno che questa JOIN non venga specificata nella variabile $vba_news_join.
Se non si trova nella variabile, significa che devi inserirla a mano con una propria condizione di JOIN.Sono stato spiegato?
-
Ok, è che ne capisco veramente poco di php e mysql... comunque sì... devo creare la JOIN.