Welcome to the Question2Answer Q&A. There's also a demo if you just want to try it out.
+1 vote
197 views
in Q2A Core by

 https://github.com/NoahY/q2a-featured/blob/master/qa-featured-layer.php

<?php

class qa_html_theme_layer extends qa_html_theme_base {

var $featured_questions;

function doctype(){

$featured = qa_db_read_one_assoc( qa_db_query_sub('SELECT * FROM ^posts q INNER JOIN ^posttags t ON q.postid=t.postid INNER JOIN ^words w ON t.wordid=w.wordid WHERE q.type="Q" AND w.word=$ ORDER BY rand() LIMIT 1', "tag" ));

if($featured && (!$this->request || $this->request=='questions') && !qa_get('sort') && isset($this->content['q_list'])) {

$featured = explode(',',$featured);

foreach($this->content['q_list']['qs'] as $idx => $question) {

if(in_array($question['raw']['postid'],$featured)) {

unset($this->content['q_list']['qs'][$idx]);

}

}

foreach($featured as $id) {

$userid = qa_get_logged_in_userid();

$selectspec=qa_db_posts_basic_selectspec($userid,true);

$selectspec['source'].=" JOIN (SELECT postid FROM ^posts WHERE postid=$) y ON ^posts.postid=y.postid";

$selectspec['arguments'][] = $id;

$question = qa_db_select_with_pending($selectspec);

$usershtml=qa_userids_handles_html(qa_any_get_userids_handles($question));

$options=qa_post_html_defaults('Q');

$q_item = qa_any_to_q_html_fields($question[$id], $userid, qa_cookie_get(), $usershtml, null, $options);

array_unshift($this->content['q_list']['qs'],$q_item);

}

$this->featured_questions = count($featured);

}

qa_html_theme_base::doctype();

}

// theme replacement functions

function q_list($q_list) {

if(isset($q_list['qs']))

foreach ($q_list['qs'] as $idx => $q_item)

if($idx < $this->featured_questions)

$q_list['qs'][$idx]['classes'] = @$q_list['qs'][$idx]['classes'].' qa-q-list-item-featured';

else

break;

qa_html_theme_base::q_list($q_list);

}

function head_custom() {

$this->output('<style>',qa_opt('featured_question_css'),'</style>');

qa_html_theme_base::head_custom();

}

}

Warning: in_array() expects parameter 2 to be array, null given in  (720) : eval()'d code on line 14

Warning: in_array() expects parameter 2 to be array, null given in  : eval()'d code on line 14

Warning: in_array() expects parameter 2 to be array, null given in : eval()'d code on line 14

Warning: in_array() expects parameter 2 to be array, null given in  : eval()'d code on line 14

Warning: in_array() expects parameter 2 to be array, null given in  : eval()'d code on line 14

Warning: in_array() expects parameter 2 to be array, null given in: eval()'d code on line 14

Warning: Invalid argument supplied for foreach() in : eval()'d code on line 18

Warning: count(): Parameter must be an array or an object that implements Countable in  : eval()'d code on line 33 

1 Answer

0 votes
by

Looks like your variable $featured doesn't have a value (null) when it's supposed to be an array, i.e. your database query did not return any results. Do you actually have a tag "tag" in your database? Or should the argument to the database query have been a variable rather than a string?

by
I have a tag "tag" in my questions
by
Can you help me in this ?
I am trying to implement this query

qa_db_read_one_assoc( qa_db_query_sub('SELECT * FROM ^posts q INNER JOIN ^posttags t ON q.postid=t.postid INNER JOIN ^words w ON t.wordid=w.wordid WHERE q.type="Q" AND w.word=$ ORDER BY rand() LIMIT 1', "tag" ));

in this plugin https://github.com/NoahY/q2a-featured/blob/master/qa-featured-layer.php
by
edited by
The first step to debugging this would be to run the query directly on the database and see what that returns: SELECT * FROM qa_posts q INNER JOIN qa_posttags t ON q.postid=t.postid INNER JOIN qa_words w ON t.wordid=w.wordid WHERE q.type="Q" AND w.word="tag" ORDER BY rand() LIMIT 1;

If the query doesn't return a result you need to check the data in your database.

If the query does return a result check what is being assigned to the variable $featured in your code (if you don't have a debugger to directly check variable values during execution you can use the approach I outlined here: https://systemrequest.net/index.php/23/#a24).
by
Current selection does not contain a unique column. Grid edit, checkbox, Edit, Copy and Delete features are not available.
by
I'm sorry, what? What does that have to do with the error in your question?
by
I got this error when I run the SQL in database
by
I will try to debug it. Sorry
by
+1
Ah, that seems to be an error from PHPMyAdmin, not from the database itself (see https://stackoverflow.com/q/40520180). Apparently you need to set "$cfg['RowActionLinksWithoutUnique'] = true" in the PHPMyAdmin config to get around the issue.
Please don't just post an error message with not explanation that it is an error message and where it comes from.
by
It is difficult for me bro. I am a electrical and electronics engineer. It is tough for me to figure this out. That's why I need expert help bro.
by
Well, I'm trying to help, but like I said, providing more context makes things easier for the people trying to help you.
Anyway, did the config change I mentioned above get rid of that error message? And does the query return the result you expected?
by
No.............................
https://github.com/NoahY/q2a-featured
https://github.com/teddydoors/q2a-question-list-details
Can you look at this plugin ?
I am trying to show random questions in a widget or in question list with image preview with particular tag. Like when a user open the home page everytime he must see a new funny image which contain a tag as "funny"
do you got my point ?
by
+1
"No" the config change did not get rid of the error message, or "no" the query did not return the result you expected?
Also, if you're asking me to patch/write the plugin for you, the answer is no. I'm willing to help you fix an issue you have with the code you're writing, but I'm not going to write your code for you.
...