簡體   English   中英

從數據庫查詢UserID

[英]Querying UserID from database

我一直嘗試解決這個問題,但是我做不到。

$sqluser = "--";
$sqlpass = "--";
$hostname = "localhost"; 

$clientuser = $_COOKIE['user'];
//connection to the database
$dbhandle = mysql_connect($hostname, $sqluser, $sqlpass) 
 or die("Unable to connect to MySQL");
//select a database to work with
$selected = mysql_select_db("clhtechn_si1",$dbhandle) 
  or die("Could not select database!");
//execute the SQL query
$idfinder = mysql_query("SELECT id FROM `si_customers` WHERE username='$clientuser'") or die(mysql_error());
$clientid = mysql_fetch_assoc($idfinder);
$query = "SELECT invoice_id, date, SUM(total) as invoiceTotal
          FROM si_invoices
          LEFT JOIN si_invoice_items ON si_invoices.id = si_invoice_items.invoice_id
          WHERE si_invoices.customer_id='$clientid'
          GROUP BY invoice_id
          ORDER BY invoice_id";
$result = mysql_query($query);

$row=0;
while ($record = mysql_fetch_assoc($result))
{
    $class = 'd' . ($row % 2);
    $inv_date=substr($record['date'], 0, -9);
    $inv_total=$record['invoiceTotal'];
    $invoice_total=number_format($inv_total, 2);

    echo "<tr class=\"{$class}\">";
    echo "<td valign='top'>{$inv_date}</td>";
    echo "<td valign='top'>{$record['invoice_id']}</td>";
    echo "<td valign='top'>$invoice_total</td>";
    echo "<td><a href='invoices/Invoice_{$record['invoice_id']}.pdf' target='_blank'>";
    echo "<img src='urlhere' width='17' height='17' alt='PDF File' border='0' /></a></td>";
    echo "</tr>";
    $row++;
}
//close the connection

mysql_close($dbhandle);

這是我的客戶表對齊方式: 鏈接到圖片。

我的代碼有什么問題,我可以使用哪些代碼進行修復? 感謝幫助。

$ clientid是一個數組,因為mysql_fetch_assoc()返回此類型。

$row = mysql_fetch_assoc($idfinder);
$clientid = $row['id'];

同樣,您需要正確格式化$ clientuser,然后再將其放入查詢中。
因此,完整的代碼將是

$user = mysql_real_escape_string($_COOKIE['user']);
$sql = "SELECT id FROM `si_customers` WHERE username='$user'";
$res = mysql_query($sql) or trigger_error(mysql_error());
$row = mysql_fetch_assoc($res);
$clientid = $row['id'];

要使其成為您想要的方式,您必須使用一些抽象庫
使用它,您的ID將在一行中(實際上,為了便於閱讀,實際上是兩行)

$sql = "SELECT id FROM si_customers WHERE username=?s";
$clientid = $db->getOne($sql,$_COOKIE['user']);

在這里,您可以看到一個這樣的Mysql抽象庫的示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM