Mysidia Adoptables Support Forum

Mysidia Adoptables Support Forum (http://www.mysidiaadoptables.com/forum/index.php)
-   Questions and Supports (http://www.mysidiaadoptables.com/forum/forumdisplay.php?f=18)
-   -   Joining Tables (http://www.mysidiaadoptables.com/forum/showthread.php?t=3574)

SilverDragonTears 04-10-2012 12:38 AM

One more thing and then I surely will. This sort script worked fine on my old site... Now it's telling me Fatal error: Call to a member function fetchObject() on a non-object in /home/taleofdr/public_html/sort.php on line 51

Code:

<?php

include("functions/functions.php");
include("functions/functions_users.php");
include("functions/functions_adopts.php");
include("classes/class_pagination.php");
include("css/pagination.css");
include("inc/sort.php");
include("inc/lang.php");

//***************//
//  START SCRIPT //
//***************//
$id = $_GET["id"];
$act = $_GET["act"];
$more = $_GET["more"];
$page = $_GET["page"];




if($isloggedin == "yes")
{
$article_content = "<p id='activate_sort' style='cursor: pointer'>
                                Click here to sort your dragons
                            </p>
                            <table>";

        // We need to get all of the user's adoptables from the database and display them...
        $query = "SELECT * 
                    FROM {$prefix}owned_adoptables 
                    LEFT JOIN {$prefix}sort_adoptables 
                        ON {$prefix}owned_adoptables.aid = {$prefix}sort_adoptables.adoptable_id 
                    INNER JOIN {$prefix}levels 
                        ON {$prefix}levels.thisislevel = {$prefix}owned_adoptables.currentlevel 
                    INNER JOIN {$prefix}adoptables 
                        ON {$prefix}owned_adoptables.type = {$prefix}adoptables.type 
                    WHERE {$prefix}owned_adoptables.owner = '{$loggedinname}' 
                    AND {$prefix}levels.adoptiename = {$prefix}adoptables.type 
                    ORDER BY {$prefix}sort_adoptables.sorting_id";
        $stmt = $adopts->query($query);
       

$cols = 6; //the number of columns

        do{
        $article_content .= "<tr>";
        for($i=1;$i<=$cols;$i++){ 
       

        if($row = $stmt->fetchObject()){
            if($row->usealternates == 'yes') $image = $row->alternateimage; 
            else $image = $row->primaryimage; 
            if($row->currentlevel == 0) $image = $row->eggimage; 
            if($image=='') $image = $row->primaryimage; 
                         
            $article_content .= " <td class='sortable_adoptables' style='width: 40px;'>
                        <table id='orderaid_{$row->aid}'><tr>
<td><img src='{$image}' width='30px' height='30px'><br>{$row->name}</td> 
                          </tr> </table></td>";   
        }
else{
            $article_content .= "<td>&nbsp;</td>";    //If there are no more records at the end, add a blank column
            }
        }
    } while($row);
        $article_content .= "</table>"; 
         
      } 
       
//***************//
//  OUTPUT PAGE  //
//***************//

echo showpage($article_title, $article_content, $date);

?>


Hall of Famer 04-10-2012 12:51 AM

Well replace every {$prefix} by ".constant('PREFIX')." and it should work for you. The reason why we are using PHP constants is that we do not need to define superglobals for database information used in functions and classes. You do not see $GLOBALS['prefix'] anymore from functions in Mys v1.3.1. Once the User class is available we will get rid of more superglobals, although some superglobals will always remain, such as $GLOBALS['adopts'] since you cannot define a constant object.

SilverDragonTears 04-10-2012 12:54 AM

See, I must be tired. I tried that before I posted and I must have missed one b.c it still wasn't working. Thank you for all your help tonight HoF :) My members will thank you!

Hall of Famer 04-10-2012 01:08 AM

Still the same error? Post your script file after you've modified the SQL query using constants, I will see if something else is wrong.

SilverDragonTears 04-10-2012 01:14 AM

No it's working now :) The only issue I'm having now is I don't think that the sort id's are updating into the db

Code:

<?php

include("functions/functions.php");
include("functions/functions_users.php");
include("functions/functions_adopts.php");
include("classes/class_pagination.php");
include("css/pagination.css");
include("inc/lang.php");


//***************//
//  START SCRIPT //
//***************//

if ($_POST)
{
       
        $userID = $_COOKIE['auid'];

        foreach($_POST['orderaid'] as $orderID => $aid)
        {
               
                $adopts->query('REPLACE INTO ' . $prefix . 'sort_adoptables (`user_id`, `adoptable_id`, `sorting_id`)
                                                                        VALUES ("' . addslashes($userID) . '", "' . addslashes($aid) . '", "' . addslashes($orderID) . '")');

               
        }
       
        echo '<p>Adoptables have been rearranged</p>';
       
}
?>


Hall of Famer 04-10-2012 01:19 AM

Of course its not updating the database when you still use $prefix in your sql query. XD

SilverDragonTears 04-10-2012 01:19 AM

I changed it to
Code:

$adopts->query('REPLACE INTO ' . ".constant('PREFIX')." . 'sort_adoptables (`user_id`, `adoptable_id`, `sorting_id`)
                                                                        VALUES ("' . addslashes($userID) . '", "' . addslashes($aid) . '", "' . addslashes($orderID) . '")');

               
        }

and still not working. I pasted the wrong one!

Hall of Famer 04-10-2012 01:26 AM

Well the cookie definition has changed, use $_COOKIE['mysuid'] instead of $_COOKIE['auid']. Honestly the code you posted above should not even work in Mys v1.3.0 security release. I strongly recommend you not to use cookie superglobals to convey information, since I may end up encrypting cookies in future to improve security(so if a hacker steals your cookie, he still gets nothing out of it but a string that makes no sense). When this happens, you will not get anything out of it. Theres no way to decrypt by writing a PHP script.

SilverDragonTears 04-10-2012 01:29 AM

lol, Still not working :catfish:

Hall of Famer 04-10-2012 01:32 AM

Well try to debug by echoing the $COOKIE['mysuid'] to the screen, see what it stores. Theres a chance I already encrypted uid in cookies, and if this happens you cannot hope to use cookies as information. Like I said before, its bad practice to use cookies to fetch information such as user id, username and password unless its used internally by the script to compare hashes.


All times are GMT -5. The time now is 10:23 PM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.