从WHERE查询中选择不起作用

时间:2013-07-24 08:34:37

标签: php mysql

谢谢大家的回答。它爆炸了。我更改了拼写,现在它正在工作 - 它显示特定用户帐户的记录。现在的问题是它不执行查询,但我会为此创建一个新问题以避免混淆。

感谢每个人的帮助:)


我在这个领域完全是自制的,当时有些东西不起作用我不知道在哪里看。我想知道是否有人能发现是什么让这些代码无效。

目前,我有一个非常简单的查询,我的网站上的用户可以在桌面上查看他们的结算历史摘要。我希望他们能够点击一行以显示完整的发票,但它没有发生。我拿了一个可以进行此类查询的代码,但是当我添加uid ='和paid = Y的那一刻停止工作时。

这是代码。谁能发现错误?

谢谢! 欧仁妮

<?php

include("mainfile.php");
include(XOOPS_ROOT_PATH."/header.php");


$host="localhost"; // Host name 
$username="username"; // Mysql username 
$password="password"; // Mysql password 
$db_name="db name"; // Database name 
$tbl_name="tbl name"; // Table name 

// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

$sql="SELECT * FROM $tbl_name  WHERE uid='";
$Sql=$Sql .  $xoopsUser->uid("s") . "'  AND Paid='Y'";


$result=mysql_query($sql);
?>

<table width="400" border="0" cellspacing="1" cellpadding="0">
<tr>
<td>
<table width="400" border="1" cellspacing="0" cellpadding="3">
<tr>
<td colspan="4"><strong>List data from mysql </strong> </td>
</tr>

<tr>
<td align="center"><strong>Billing Date</strong></td>
<td align="center"><strong>Invoice Number</strong></td>
<td align="center"><strong>Description</strong></td>
<td align="center"><strong>Total GBP</strong></td>
<td align="center"><strong>View</strong></td>
</tr>

<?php
while($rows=mysql_fetch_array($result)){
?>

<tr>
<td><? echo $rows['date']; ?></td>
<td><? echo $rows['TicketID']; ?></td>
<td><? echo $rows['project']; ?></td>
<td><? echo $rows['grandTotal']; ?></td>


<td align="center"><a href="http://website.co.uk/site/viewInvoice.php?TicketID=<? echo     $rows['TicketID']; ?>">View</a></td>
</tr>

<?php
}
?>

</table>
</td>
</tr>
</table>

<?php
mysql_close();
include(XOOPS_ROOT_PATH."/footer.php");
?>    

4 个答案:

答案 0 :(得分:3)

在PHP中,变量区分大小写。你使用的是$ sql,然后是$ Sql。

尝试:

$sql="SELECT * FROM $tbl_name  WHERE uid='";
$sql = $sql .  $xoopsUser->uid("s") . "'  AND Paid='Y'";

答案 1 :(得分:1)

您可以直接添加

$Sql = "SELECT * FROM $tbl_name  WHERE uid='" .$xoopsUser->uid("s") . "'  AND Paid='Y'";

这是你正在使用的变量的问题。试试这个

$sql="SELECT * FROM $tbl_name  WHERE uid='";
$Sql=$sql .  $xoopsUser->uid("s") . "'  AND Paid='Y'";

使用小''

答案 2 :(得分:0)

Gautam说了什么,但也作为对你要做的事情的评论:你把

$Sql = $Sql . 'blah blah blah';

而不是

$Sql = $sql . 'stuff'

这是您查询的原始变量。无论哪种方式,将它直接放入一个变量就更有意义了。

答案 3 :(得分:0)

编辑并试试这个:

$link = mysql_connect($host, $username, $password);
mysql_select_db($db_name,$link)or die("cannot select DB");

&安培;

$sql="SELECT * FROM $tbl_name  WHERE uid='".$xoopsUser->uid('s')."'  AND Paid='Y'";