刚创建的WordPress表无法获取$wpdb Get Row to Work-需要帮助

时间:2011-11-03 作者:Alan

首先,我要说的是,这还没有完成,我对网络编程还很陌生。话虽如此,我正在尝试创建一个javascript幻灯片,以记住Wordpress(loggedin用户)查看的最后一张幻灯片。

我已经手动将一条记录输入了一个新的Wordpress表格,名为wp\\U slideshow。该表中的列是user和last\\u slide。当前数据是一条记录,user=admin,last\\u slide=3。

我只想获取从wordpress登录的当前用户ID,然后获取最后一张幻灯片的编号。一旦得到它,我需要将最后一张幻灯片集成到javascript代码中,并开始显示最后一张幻灯片。关于为什么我当前的代码(仅用于从我的wp\\U幻灯片放映表中获取一条记录)不起作用,有什么建议吗?

这是我的代码:

    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <div class="post">

        <div class="entry">

            <?php the_content(); ?>
            <?php edit_post_link(\'Edit.\', \'<p>\', \'</p>\');?>

            <?php global $current_user;?>
            <?php get_currentuserinfo();?>
            <?php $user_id = $current_user->ID;?>

            <?php global $wpdb;?>
            <?php 
            $thenbr = $wpdb->get_row( $wpdb->slideshow( "SELECT * FROM $wpdb->slideshow WHERE user = "admin"" ) );
            echo $thenbr->last_slide; 
            ?>

            </div>


        <SCRIPT LANGUAGE="JavaScript">      
        var num=1
        img1 = new Image ()
        img1.src = "http://localhost/wp-content/uploads/2011/11/nervous.gif"
        img2 = new Image ()
        img2.src = "interference.gif"
        img3 = new Image ()
        img3.src = "message.gif"
        img4 = new Image ()
        img4.src = "nervous.gif" 

        text1 = "Text for Picture One"
        text2 = "Text for Picture Two"
        text3 = "Text for Picture Three"
        text4 = "Text for Picture Four"

        function slideshowUp()
        {
        num=num+1
        if (num==5)
        {num=1}
        document.mypic.src=eval("img"+num+".src")
        document.joe.burns.value=eval("text"+num)
        }

        function slideshowBack()
        {
        num=num-1
        if (num==0)
        {num=4}
        document.mypic.src=eval("img"+num+".src")
        document.joe.burns.value=eval("text"+num)
        }

        </SCRIPT>

        <!-- The Image and Form Codes are Below --> 

        <CENTER>
        <IMG SRC="information.gif" NAME="mypic" BORDER=0 HEIGHT="300" WIDTH="300">
        <p>

        <FORM NAME="joe">
        <INPUT TYPE="text" WIDTH="300" NAME="burns" VALUE="Text For Picture One">
        </FORM>

        <A HREF="JavaScript:slideshowBack()"> Back</A>

        <A HREF="JavaScript:slideshowUp()"> Next</A> 







    </div>
    <?php endwhile; endif; ?>

1 个回复
SO网友:EAMann

你做错了

不要为此使用自定义表!

相反,您可以将此信息存储在用户元中(在wp_usermeta 表)。

假设您要存储last_slide=3 在用户元表中。你会use the following:

update_user_meta( $user_id, \'last_slide\', 3 );
要拿回这个,你可以打电话:

get_user_meta( $user_id, \'last_slide\', true );
我建议这样做,这样您就不会试图用自定义表和自定义查询来重新设计轮子。

现在回答实际问题

在代码中,您尝试通过以下调用从自定义表中获取值:

$thenbr = $wpdb->get_row( $wpdb->slideshow( "SELECT * FROM $wpdb->slideshow WHERE user = "admin"" ) );
这基本上行不通。这个$wpdb 对象没有调用的方法slideshow(), 这么说吧$wpdb->slideshow() 将引发错误,不返回任何数据。重读the Codex article 使用此对象选择行时。

您想要的是:

$thenbr = $wpdb->get_row( "SELECT * FROM $wpdb->slideshow WHERE user = \'admin\'" );
但我再次强烈建议不要使用自定义查询和自定义表!

结束

相关推荐

Corrupt Wordpress Database

我认为这是最奇怪的文字印刷问题。一个拥有大量帖子数据库的客户网站已经有了自己的想法。前一分钟一切似乎都很好,接下来的帖子、类别和标签都不见了。此时仪表板告诉我9个类别中有2309个帖子,但当我单击admin中的categories链接时,列表中没有任何帖子。我可以在admin中看到所有帖子,但尽管它们过去被分配到类别并列出标签,但现在它们都“未分类”,没有标签。很明显,wordpress数据库在某种程度上已经损坏,但从哪里开始尝试修复呢!?以下是我迄今为止测试的内容:插件–我关闭了所有当前的插件。主题–我