-1

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

再次感谢大家的帮助:)


我在这方面完全是白手起家,一旦出现问题,我什至不知道该去哪里找。我想知道是否有人能发现是什么导致这段代码不起作用。

目前我有一个非常简单的查询,我网站上的用户可以在表格上看到他们的账单历史摘要。我希望他们能够单击一行以显示完整的发票,但它没有发生。我采用了可以进行此类查询的代码,但是当我添加 where 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

4 回答 4

3

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

尝试:

$sql="SELECT * FROM $tbl_name  WHERE uid='";
$sql = $sql .  $xoopsUser->uid("s") . "'  AND Paid='Y'";
于 2013-07-24T08:37:05.870 回答
1

可以直接加like

$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'";

使用小's'

于 2013-07-24T08:35:47.560 回答
0

Gautam 所说的,也是对你试图做的事情的评论:你把

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

代替

$Sql = $sql . 'stuff'

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

于 2013-07-24T08:38:36.850 回答
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'";
于 2013-07-24T08:41:36.827 回答