在PHP中 我的SQL写法是否正确?

$sql ="select a.name name1,a.*,b.* from piwik_site a,piwik_archive_numeric_2013_10 b where a.idsite=b.idsite and b.name='nb_visits' and b.period in (1,2,3) order by b.value desc";$res = mysql_query($sql);?>
<?phpwhile($row = mysql_fetch_array($res)){?> <tr>
<td><div align="left"><?php echo $row['name1']?></div></td> <td><div align="left"><?php echo $row['main_url']?></div></td><?php if($result['period'] == 1){ echo '<td><div align="center">'.$row['value'].'</div></td>';} ?><?php if($result['period'] == 2){ echo '<td><div align="center">'.$row['value'].'</div></td>';} ?><?php if($result['period'] == 3){ echo '<td><div align="center">'.$row['value'].'</div></td>';} ?> </tr> <?php }?>
我要把表一里面的数据和对应的表二里面根据 period=(1,2,3)时 nb_visits 对应的 value 值 查询出来

假设你的第一图为A表,第二图为b表
$sql="SELECT b.value from piwik_archive_numeric_2013_10 as b LEFT JOIN piwik_site as a ON a.name=b.name WHERE b.period IN (1,2,3) order by b.value DESC";追问

你好! 我的SQL语句正确, 最主要的是输出的时候 怎么写value这块的输出值,我给period=1下面的可以直接输出的,因为period这块是变量,所以要判断,输出这块就不会写了!

追答

你在循环里边先打印数据看看到底有没有数据,你的SQL根本读出来是空数组才对
while($row = mysql_fetch_array($res))
{
print_r($row);
}
=================
另外,根据你period的字段类型,多个数值应该是 period IN (1,2,3) 而不是直接用等号

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-11-22
看你的PHP代码貌似是查询出来的结果有多个相同的字段value,然后不知道怎么去区分每个value。如果是这样的话,你可以在写sql的时候把字段重命名下就OK了:
select a.value as value1,b.value as value2 from ..本回答被网友采纳

在PHP中 我的SQL写法是否正确?
sql="SELECT b.value from piwik_archive_numeric_2013_10 as b LEFT JOIN piwik_site as a ON a.name=b.name WHERE b.period IN (1,2,3) order by b.value DESC";

PHP判断sql语句是否执行成功
你可以直接把执行sql语句的函数执行的结果保存为变量,然后判断 例:我这里用的mysql_query函数哦:?php \/\/\/...坑爹的代码 res=mysql_query($sql);if($res)echo '执行成功';else echo '执行失败';?但是这样的执行成功只是你的语句正确的执行,但是不代表100%可以成功执行对数据库的操作,比如说你...

PHP写入MySQL时候语法总是错误
因为你的变量没加单引号,正确的写法是$sql = "INSERT INTO users (userId, password, gender, regDate) VALUES (‘$userId’, '$pass_md5’, '$gender’, '$date’)";

这句PHP代码写法有问题吗?foreach(page1($sql) AS $k => $row)_百度...
面的括号里必须带一个参数,是一个合法的SQL语句 才行。第二个错是说你的 foreach 后面的第一个参数 必须是一个数组 。造成以上错误 的原来主要是你没有查看手册 ,弄清楚 mysql_query 的返回值是什么类型,它如果 成功返回一个 resource (资源类型),如果失败则返回false。正确的写法应该这样:res ...

sql语句在sql语句中能执行在php中不能执行?
sql = "insert into adminU( uId, uUser, uPassword, uName, uCompany, uTel, uFax, uEmail, uRegTime )VALUES ('','" . $_POST[uUser] . "','" . $pwd . "','" . $_POST[uName] . "','" . $_POST[uCompany] . "','" . $_POST[uTel] . "','" . $_POST[uFax...

mysqli_query错误
1. **SQL语句是否正确**:确保你的查询语句与数据库表结构匹配,包括字段名、表名和操作符。2. **字段名一致性**:确认在查询中使用的字段名是否与数据库中实际的字段名完全一致,大小写敏感。3. **数据库连接**:检查数据库连接是否正确,包括主机名、用户名、密码和数据库名。4. **SQL注解和...

帮我看看这句sql错哪儿了?在php里不行 INSERT INTO lysan_blog (gid...
回答:呵呵,这个语句太长了, 我就不一一看了, 出现这样的问题我总结几点: 1,你看看数据库的表中字段的属性的创建是否有问题。 2,看看数据库字段的长度的问题。

php 在操作数据库的时候大多数是写sql还是orm
大多都是写sql的,但是不是直接写sql,而是封装过的sql类,帮你解决了一些xss和注入,类似于 this->sqldb->select("*")->from("user")->where("id", "1")->do();\/\/select * from `user` where `id`="1";php也有orm框架,sql简单的比较好弄,复杂的就不行了。orm其实就是降低灵活性...

...infos: You have an error in your SQL syntax; check the manual...
检查你的SQL语句是否遵循正确的语法结构,包括但不限于括号的正确使用、关键字的大小写、以及参数的正确引用。错误的语法结构可能导致查询执行失败,从而引发上述错误提示。同时,检查你的PHP代码中调用SQL语句的部分,确保在执行查询前对所有输入参数进行了适当的验证和转义。使用预处理语句(如PDO的prepare...

在MySQL语句执行SQL语句,绝对成功,但是在PHP里执行报错。
你应该把这个插入代码做成存储过程,把数据作为参数,不需要每次插入数据都生成一个存储过程。exec是执行单条语句的,应该只执行了第一条,后面多的都没有执行。你可以看下数据库里是否成功插入了数据

相似回答
大家正在搜