Reputation: 335
I have taken values from a MySQL query into an array so that I can sort them. It all works well except I am getting lots of errors
Warning: Creating default object from empty value
This is so that I can sort the array based on post_id and quality
$count = 0;
$searcharticles = new stdClass();
$postid = 0;
while ($row = mysqli_fetch_object($result1) ) {
$postid = $row->ID;
$title = $row->post_title;
$titlescore = $row->titlescore;
$quality = $row->quality;
$searcharticles->$postid->post_id =$postid;
$searcharticles->$postid->title =$title;
$searcharticles->$postid->titlescore = $titlescore;
$searcharticles->$postid->quality =$quality;
$count ++;
}
Some posts on Stackexchange indicated that I should add in $searcharticles = new stdClass();
But this has not solved the problem
I am looking to remove the errors and not just suppress the warnings.
Any ideas?
Upvotes: 6
Views: 14906
Reputation: 1104
Maybe your problem is not $searcharticles, could be $row.
Try
$searcharticles = new stdClass; AND $row = new stdClass;
Good luck!
Upvotes: 0
Reputation: 317049
You get the warning
Warning: Creating default object from empty value
because you do
$searcharticles->$postid->post_id = $postid;
Your $searcharticles
is a StdClass. You assign the property $postId
and then immediately chain off another property post_id
, which forces PHP to create a new default object.
To avoid it, put this before the chained method calls:
$searcharticles->$postid = new StdClass;
$searcharticles->$postid->post_id =$postid;
$searcharticles->$postid->title =$title;
$searcharticles->$postid->titlescore = $titlescore;
$searcharticles->$postid->quality =$quality;
Upvotes: 10