簡體   English   中英

從查詢中獲取數據

[英]Grab data from a query

我正在嘗試學習PHP,為此,我嘗試創建一個URL縮短器。 現在,您當前可以輸入一個鏈接並將其輸入數據庫。 它不會隨機化字符串,但是我將在之后進行。 (我自己更改了它們,以避免遇到問題)。

這是我的當前表格(我的表格稱為“網址”):

表

然后,當您轉到(對我來說是本地主機)/ somepath時,它會自動重定向到/process.php?id=somepath

在process.php中,它檢查指定的路徑(somepath)是否存在於數據庫中,然后獲取其原始值。 我遇到的問題是獲取原始值。 同樣,我是PHP新手,在理解查詢的工作方式時遇到了麻煩。

$query = "SELECT original FROM urls WHERE new = '$new'";
$result = $conn->query($query);

如何從$ result獲取信息? 還是我應該在$ result之后從$ query獲取它,因為它基本上可以運行它?

請解釋為什么您使用什么,我不理解這一點。

謝謝,抱歉,如果這是一個非常愚蠢的問題。

在這段代碼中,我使用了object oriented approachprepared statement或者,如果您仍然處於procedural style ,那么仍然可以使用它。

檢查此鏈接: http : //php.net/manual/en/mysqli.prepare.php

因此,基本上,這段代碼中發生的事情是正在准備查詢,然后綁定要使用的參數(這種樣式是避免SQL注入的一種方法,因為輸入會自動轉義)。 結果將首先存儲在變量$original然后計算查詢返回的行數。 如果大於1,則表示存在匹配項;如果大於0,則沒有匹配項。

如果存在匹配項,它將回顯變量$original的值。

<?php

  $stmt = $conn -> prepare("SELECT original FROM urls WHERE new = ?");
  $stmt -> bind_param('s',$new);
  $stmt -> execute();
  $stmt -> bind_result($original);
  $stmt -> fetch();
  $stmt -> store_result();

  $res = $stmt -> num_rows();

  $stmt -> close();

  if($res > 0){
    echo $original;
  }
  else{
    //not found
  }

?>
$query = "SELECT original FROM urls WHERE new = '$new'";
$result = $conn->query($query);    
$rows = mysql_fetch_array($result);
foreach($rows as $row){

     echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}

您可以使用mysql_fetch_arraymysql_fetch_assoc獲取抓取結果

使用fetch_assoc()在面向對象的MySQLi中從表中獲取數據。

嘗試這個:

$query = "SELECT original FROM urls WHERE new = '$new'";
$result = $conn->query($query);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
    echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
    echo "0 results";
}

您還可以將結果放入HTML表中:

 if ($result->num_rows > 0) {
     echo "<table><tr><th>ID</th><th>Name</th></tr>";
     // output data of each row
     while($row = $result->fetch_assoc()) {
         echo "<tr><td>".$row["id"]."</td><td>".$row["firstname"]." ".$row["lastname"]."</td></tr>";
     }
     echo "</table>";
 } else {
     echo "0 results";
 }

暫無
暫無

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

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