小编Joh*_* M.的帖子

MySQL多个左连接

我正在尝试为我正在处理的网站创建新闻页面.我决定使用正确的MySQL查询(意思是COUNT(id)和连接而不是多个查询或num_rows.)我正在使用一个PDO包装器,它应该运行正常,直到通过运行时仍然会失败MySQL CLI应用程序.

基本上,我有3张桌子.一个持有新闻,一个持有评论,一个持有用户.我的目标是创建一个页面,显示所有(稍后将分页)新闻帖子标题,正文,作者和日期.当我使用第二个查询来获取用户名时,这工作正常,但后来我决定使用JOIN.

所以有什么问题?好吧,我需要两个连接.一个是获取作者的用户名,另一个是获取评论的数量.当我只是找到作者的用户名时,一切都按预期工作.显示新闻表中的所有行(有2个).但是,当我为评论行添加第二个LEFT JOIN时,我最终只从新闻中收到一行(记住,有2个),COUNT(comments.id)给我2个(它应该显示1,因为我有每个帖子的评论.)

我究竟做错了什么?为什么它只显示一个新闻帖子,并说它有两个评论,当有两个新闻帖子,每个都有一个评论?

SELECT news.id, users.username, news.title, news.date, news.body, COUNT(comments.id)
FROM news
LEFT JOIN users
ON news.user_id = users.id
LEFT JOIN comments
ON comments.news_id = news.id
Run Code Online (Sandbox Code Playgroud)

另外,为了确定另一件事,我的左边加入评论是获取所有帖子的正确方法,无论他们是否有评论,对吗?或者这是一个正确的加入?哦,最后一件事......如果我将comments.news_id = news.id切换到news.id = comments.news_id,我得到0结果.

mysql join

56
推荐指数
2
解决办法
20万
查看次数

C++ Qt多重定义

我正在尝试使用MinGW编译器在Qt中使用C++创建一个简单的GUI应用程序(到目前为止).然而,编译器,通知我有一个multiple definition of 'WiimoteScouter::WiimoteScouter(QWidget*)'line 4wiimotescouter.cpp.我正在使用检查以确保标题不会被多次包含,但显然它不起作用,我不知道为什么.

这是头文件:

#ifndef WIIMOTESCOUTER_H
#define WIIMOTESCOUTER_H

#include <QWidget>

class QLabel;
class QLineEdit;
class QTextEdit;

class WiimoteScouter : public QWidget
{
    Q_OBJECT

public:
    WiimoteScouter(QWidget *parent = 0);

private:
    QLineEdit *eventLine;
};

#endif // WIIMOTESCOUTER_H
Run Code Online (Sandbox Code Playgroud)

这是cpp文件:

#include <QtGui>
#include "wiimotescouter.h"

WiimoteScouter::WiimoteScouter(QWidget *parent) :
    QWidget(parent)
{
    QLabel *eventLabel = new QLabel(tr("Event:"));
    eventLine = new QLineEdit;

    QGridLayout *mainLayout = new QGridLayout;
    mainLayout->addWidget(eventLabel, 0, 0);
    mainLayout->addWidget(eventLine, 0, 1);

    setLayout(mainLayout);
    setWindowTitle(tr("Wiimote Alliance Scouter"));
}
Run Code Online (Sandbox Code Playgroud)

最后,main.cpp:

#include …
Run Code Online (Sandbox Code Playgroud)

c++ qt multiple-definition-error

12
推荐指数
1
解决办法
2万
查看次数

如何检索使用PDO删除的行数?

好的,所以我一直在为我正在研究的项目使用PDO包装器,而我正试图找出DELETE查询是否成功.这是我正在使用的代码:

/**
* A pretty straight-forward query to delete a row from the verification
* table where user_id is $user_id and code is $code
*/
$result = $this->database->query("DELETE FROM verification " .
                                 "WHERE user_id = %u AND code = %s",
                                 $user_id,
                                 $code);

/**
 * This function will grab the PDO's exec() return, which should
 * return the number of rows modified.
 */
if($this->database->getNumAffected($result) > 0)
    return true;
else
    return false;
Run Code Online (Sandbox Code Playgroud)

问题是,无论DELETE查询是否实际删除了一行,$ this-> database-> getNumAffected($ result)总是返回'0'.

你可以查看包装器,但基本上$ this-> database-> …

php mysql pdo

8
推荐指数
2
解决办法
8424
查看次数

为什么使用MySQL而不是flatfiles?

一位朋友和我正在讨论他是否应该使用MySQL或flatfile数据库作为他网站的后端.我告诉他要使用MySQL,因为它是结构化的,记录良好,并且是一致的.另一方面,他说他宁愿追求速度.读取文件比连接MySQL要快得多,这让我想知道他是否是对的.例如,为什么不创建一个文件夹中的每个表,就像这样:users/ groups/ posts/,内夹有(按ID命名的文件1,2,3),然后对数据使用的格式,像这样:username: John\npassword: e2fc714c4727ee9395f324cd2e7f331f\nemail: example@example.com

换句话说,MySQL相对于flatfiles有什么优势?

mysql database flat-file

7
推荐指数
2
解决办法
5551
查看次数

字符串中的PHP&符号

我有一点问题.我正在尝试创建一个IRC机器人,其密码中有一个&符号.但是,我无法将&符号放入字符串中.例如...

<?php

$var = "g&abc123";

echo $var;

?>
Run Code Online (Sandbox Code Playgroud)

我相信这应该打印出来g&abc123.然而它正在打印g.

我也试过这个:

<?php
$arr = array("key" => "g&abc123");
print_r($arr);
?>
Run Code Online (Sandbox Code Playgroud)

这样可以正确地打印出来g&abc123,但是当我说echo $arr['key'];再打印g时.任何帮助,将不胜感激.我正在运行PHP5.3.1.

编辑:另外,我只是注意到,如果我使用g&abc123&abc123它打印g&abc123.有什么建议?

php string echo

7
推荐指数
2
解决办法
1万
查看次数

Javascript getDay返回4月,6月,9月,11月的错误值

我正在使用此脚本:http://www.javascriptkit.com/script/script2/dyndateselector.shtml

如果您尝试使用,并进入4月,6月,9月或11月的任何一个,您会注意到星期几列不正确.这是一个不正确的数据列表(x开始的东西显示在下个月.)

错误的月份:4月/ 4月(周日而不是周五开始)5月周日开始

6月6日(星期五而不是星期三)7月星期五开始

9月9日(星期六而不是星期四)10月星期六开始

11月11日(星期四而不是星期二)12月开始星期四

您会注意到每个错误的月份都是从下个月的某一天开始,但所有其他月份似乎都是正确的.

我在这个问题上找不到任何东西.有人能帮忙吗?可以在这里找到实际的Javascript,并且getDay()方法出现在第125行:http://pastebin.com/0zuBYrzv

我已经在Firefox和Chrome中进行了测试.

这里有一些非常简单的代码来演示这个问题:

<script>
var d = new Date();
d.setMonth(5);
d.setFullYear(2011);
d.setDate(1);
alert(d.getDay());
</script>
Run Code Online (Sandbox Code Playgroud)

这将创建一个警告,其中包含消息"5",表示星期五(5 + 1 = 6,星期五是一周的第6天),而实际上星期三是本周的开始.

javascript

7
推荐指数
1
解决办法
2875
查看次数

PHP PDO扩展无法在IIS上运行

我有一个脚本,它使用__autoload()来加载类(愚蠢,我知道,这是我过去常用于娱乐/测试的旧代码),它似乎试图自动加载PDO.这让我相信它不应该找到PDO类.我已经检查了php.ini并启用了php_pdo.dll,以及php_pdo_mysql.dll等.dd文件中存在.dll文件,我已经多次重启Web服务器.

我对IIS没有太多经验,但我从来没有在Linux上遇到过这个问题,所以我不确定是什么问题.

任何帮助将不胜感激.

编辑:PDO不在phpinfo().我知道它没有正确加载,我正在试图找出原因.这是我的php.ini文件:Pasebin上的php.ini

C:\ Program Files(x86)\ PHP\ext是扩展目录,并在php.ini和phpinfo().中列出.

php iis pdo

5
推荐指数
1
解决办法
7389
查看次数

在 Dreamweaver 中显示列号?

我不太确定这会在 SU 还是在这里进行,但我认为这里的人更有可能得到答案。

每个人都知道80个字符的列规则,对吧?我希望能够遵循这一点,但我使用的是 Dreamweaver,直到此时我还无法找到一种方法来打开我所在文本中当前列的显示。

有谁知道这可能在哪里找到?

编辑:这个问题的另一种答案是一个替代程序,它具有与 Dreamweaver 的资源管理器模块一样好的功能。(我不喜欢 Eclipse 或 Notepad++ 的资源管理器窗口。)

dreamweaver

2
推荐指数
1
解决办法
6623
查看次数

call_user_function_array()和__construct

我正在研究一个简单的框架,我遇到了一个小问题.我想使用call_user_function_array()将参数传递给函数.这很好,除了我要传递给它的函数是__construct.我无法使用cufa()创建对象的实例,并通过实例化一个对象,然后使用cufa来调用该实例的__construct(),我遇到了一个破坏类的问题因为我正在调用构造函数两次(有一次它被称为错误.)

php constructor frameworks

1
推荐指数
1
解决办法
432
查看次数

是否有一个Git命令来显示分支创建的分支?

让我们说你在master,并做git checkout -B bugfix/user-profiles-nonexistent.现在有什么方法可以找出你的分支master,或者Git不跟踪它吗?

git git-branch

1
推荐指数
1
解决办法
103
查看次数