2016-03-09 2 views
0

Я пытаюсь добиться следующего. На домашней странице запрос MySQL возвращает результаты из таблицы «parcid» (но ограниченные результаты). Следующим шагом я хотел бы гиперссылки поля (желательно «ID»), чтобы открыть новую страницу с использованием того же идентификатора, но возвращая более подробные результаты. Код ниже работает, но, очевидно, я что-то пропускаю, поскольку он возвращает все результаты, а не только результаты для щелчка по идентификатору. Любая помощь будет оценена.Показать подробный MySQL Результат при нажатии гиперссылки

Домашний URL: "http://localhost/"

Pdetail URL: "http://localhost/pdetail/"

Query on "Home" page

<?php 

// set database server access variables: 
$host = "localhost"; 
$user = "root"; 
$pass = ""; 
$db = "wordpress"; 

// open connection 
$connection = mysql_connect($host, $user, $pass) or die ("Unable to connect!"); 

// select database 
mysql_select_db($db) or die ("Unable to select database!"); 

// create query 
$query = "SELECT * FROM parcid"; 

// execute query 
$result = mysql_query($query) or die ("Error in query: $query. ".mysql_error()); 

// see if any rows were returned 
if (mysql_num_rows($result) > 0) { 
    // yes 
    // print them one after another 
    echo "<table cellpadding=1 >"; 
     echo "<tr>"; 
     echo "<td>"."ID"."</td>"; 
     echo "<td>"."City"."</td>";   
     echo "<td>"."Destination City"."</td>"; 
     echo "<td>"."Weight"."</td>"; 
     echo "<td>"."Length"."</td>"; 
     echo "<td>"."Width"."</td>"; 
     echo "<td>"."Height"."</td>"; 
     echo "<td>"."Type"."</td>"; 
     echo "<td>"."Courier Option"."</td>"; 
     echo "</tr>"; 
    while($row = mysql_fetch_row($result)) { 
     echo "<tr>"; 
     echo '<td><a href="http://localhost/pdetail/'.$row[0].'">'.$row[0].'</a></td>'; 
     echo "<td>" . $row[6]."</td>";  
     echo "<td>" . $row[12]."</td>"; 
     echo "<td>" . $row[14]."</td>"; 
     echo "<td>" . $row[15]."</td>"; 
     echo "<td>" . $row[16]."</td>"; 
     echo "<td>" . $row[17]."</td>"; 
     echo "<td>" . $row[18]."</td>"; 
     echo "<td>" . $row[19]."</td>"; 
     echo "<td>" . $row[20]."</td>"; 
     echo "</tr>"; 
    } 
    echo "</table>"; 
} 
else { 
    // no 
    // print status message 
    echo "No rows found!"; 
} 

// free result set memory 
mysql_free_result($result); 

// close connection 
mysql_close($connection); 

?> 

Query on"pdetailed" page.

<?php 

// set database server access variables: 
$host = "localhost"; 
$user = "root"; 
$pass = ""; 
$db = "wordpress"; 

// open connection 
$connection = mysql_connect($host, $user, $pass) or die ("Unable to connect!"); 

// select database 
mysql_select_db($db) or die ("Unable to select database!"); 

$ID = $_GET['ID']; 

// create query 
$query = "SELECT * FROM parcid WHERE ID LIKE '%$ID%'"; 

// execute query 
$result = mysql_query($query) or die ("Error in query: $query. ".mysql_error()); 

// see if any rows were returned 
if (mysql_num_rows($result) > 0) { 
    // yes 
    // print them one after another 
    echo "<table cellpadding=1 >"; 
     echo "<tr>"; 
     echo "<td>"."ID"."</td>"; 
     echo "<td>"."CID"."</td>"; 
     echo "<td>"."From"."</td>"; 
     echo "<td>"."Street"."</td>"; 
     echo "<td>"."Suburb"."</td>"; 
     echo "<td>"."Post Code"."</td>"; 
     echo "<td>"."City"."</td>"; 
     echo "<td>"."Province"."</td>"; 
     echo "<td>"."Receiver"."</td>"; 
     echo "<td>"."Destination Street"."</td>"; 
     echo "<td>"."Destination Suburb"."</td>"; 
     echo "<td>"."Destination Postcode"."</td>"; 
     echo "<td>"."Destination City"."</td>"; 
     echo "<td>"."Destination Province"."</td>"; 
     echo "<td>"."Weight"."</td>"; 
     echo "<td>"."Length"."</td>"; 
     echo "<td>"."Width"."</td>"; 
     echo "<td>"."Height"."</td>"; 
     echo "<td>"."Type"."</td>"; 
     echo "<td>"."Courier Option"."</td>"; 
     echo "</tr>"; 
    while($row = mysql_fetch_row($result)) { 
     echo "<tr>"; 
     echo "<td>" . $row[0]."</td>"; 
     echo "<td>" . $row[1]."</td>"; 
     echo "<td>" . $row[2]."</td>"; 
     echo "<td>" . $row[3]."</td>"; 
     echo "<td>" . $row[4]."</td>"; 
     echo "<td>" . $row[5]."</td>"; 
     echo "<td>" . $row[6]."</td>"; 
     echo "<td>" . $row[7]."</td>"; 
     echo "<td>" . $row[8]."</td>"; 
     echo "<td>" . $row[9]."</td>"; 
     echo "<td>" . $row[10]."</td>"; 
     echo "<td>" . $row[11]."</td>"; 
     echo "<td>" . $row[12]."</td>"; 
     echo "<td>" . $row[13]."</td>"; 
     echo "<td>" . $row[14]."</td>"; 
     echo "<td>" . $row[15]."</td>"; 
     echo "<td>" . $row[16]."</td>"; 
     echo "<td>" . $row[17]."</td>"; 
     echo "<td>" . $row[18]."</td>"; 
     echo "<td>" . $row[19]."</td>"; 
     echo "<td>" . $row[20]."</td>"; 
     echo "</tr>"; 
    } 
    echo "</table>"; 
} 
else { 
    // no 
    // print status message 
    echo "No rows found!"; 
} 

// free result set memory 
mysql_free_result($result); 

// close connection 
mysql_close($connection); 

?> 
+2

** Стоп ** используя устаревший 'mysql_ *' API. используйте 'mysqli_ *' или 'PDO' с подготовленными операторами – Jens

ответ

1

Если вы хотите только одну строку, идентифицированный $ ID, то этот запрос is

$query = "SELECT * FROM parcid WHERE ID = '$ID'"; 

Также, когда вы знаете, что вы должны получать только одну строку результата из запроса, вам не нужно запускать mysql_fetch_row($result) в цикле while.

Please dont use the mysql_ database extension , it is deprecated (gone for ever in PHP7) Especially if you are just learning PHP, spend your energies learning the PDO or mysqli_ database extensions, and here is some help to decide which to use

Если вы не используете рамки это утверждение может быть неправильным

echo '<td><a href="http://localhost/pdetail/'.$row[0].'">'.$row[0].'</a></td>'; 

Может быть, это должно быть

echo '<td><a href="http://localhost/pdetail?ID='.$row[0].'">'.$row[0].'</a></td>'; 
+0

Благодарим вас за рекомендацию RiggsFolly. При попадании на зацепку он не возвращает строки на странице при использовании этого запроса. Когда вы нажимаете на гиперссылку, это выглядит так: «http: // localhost/pdetail/2 /» – Venom791

+0

Никто, кроме вы можете использовать url 'localhost' по определению, определяет этот аппарат, и мы не используем вашу машину. – RiggsFolly

+0

Выводит сообщение об ошибке или просто ничего – RiggsFolly