2016-05-06 4 views
0

Hallo Ich mache eine Abfrage für die Suche mit Like-Klausel funktioniert es und ich möchte einen Link auf das Ergebnis hinzufügen, und wenn ich auf den Link klicken, wird es jede Datei angezeigt. Ich verwende Sitzung für den Link, aber wenn drei Datensätze, die auf der Suche angezeigt werden, die ich wie am Beispiel bin:Put Link und Sitzung auf Array

ich Gnade suchen und es 3 Datensätze angezeigt, die

  1. 1 Grace starten - Grace Napoles
  2. 2 - Grace Urgel
  3. 3 - Grace Smith

Und ich möchte einen Link hinzufügen, wenn ich auf den Klick klicke, wird es eine andere Seite umleiten, die dort individuellen Datensatz anzeigen A benutze den unten stehenden Code 3 - Grace Smith wird angezeigt, selbst wenn ich auf die 1 klicke oder 2 ich brauche Ihre Hilfe, wenn ich die 1 oder 2 oder 3 klicken Sie jede Datensätze dank Anzeige

<?php 
 
session_start(); 
 
include'database.php'; 
 
$ssmain = $_SESSION['sessionsmain']; 
 
$conn = mysqli_connect($server, $dbusername, $dbpassword, $database); 
 
if (!$conn) { 
 
    die("Connection failed: " . mysqli_connect_error()); 
 
} 
 
$sql = "SELECT * FROM employee where E_ID = '$ssmain' || LastName like '%$ssmain' || FirstName like '%$ssmain'"; 
 
$no=0; 
 
$result = mysqli_query($conn, $sql); 
 
if (mysqli_num_rows($result) > 0) { ?> 
 

 

 
<table class="table table-hover"> 
 
     <thead> 
 
      <tr> 
 
\t \t 
 
\t \t <th>ID</th> 
 
\t \t <th>Last Name</th> 
 
     <th>First Name</th> 
 
\t \t 
 
    \t \t 
 
      </tr> 
 
     </thead> 
 
     <tbody> 
 

 
<?php 
 
while($row = mysqli_fetch_assoc($result)) { 
 
$no++; 
 
?> 
 
    \t <tr> 
 
\t \t 
 
\t \t <td><a href="employeerecord.php"><?php $_SESSION['ttid'] = $row['E_ID']; echo"{$row['E_ID']}"; ?></a></td> 
 
\t \t 
 
     <td><?php echo"{$row['FirstName']}"; ?></td> 
 
\t  <td><?php echo"{$row['LastName']}"; ?></td> 
 
    
 
     </tr> 
 

 
    <?php 
 
} 
 
} 
 
else 
 
{ 
 
header('location: error404.php'); 
 
} 
 

 
?> 
 

 
     </tbody> 
 

 

 
    </table>

+0

** WARNUNG: ** Sie scheinen anfällig für SQL-Injection .. Betrachten Sie [Bindungsparameter] (http://php.net/manual/en/mysqli-stmt.bind-param.php) in Ihrem Abfragen. –

+0

Der Link bringt Sie immer zu employeerecord.php (siehe die Eigenschaft href von a). Auf diese Weise geben Sie keine Informationen an diese Seite weiter. Vielleicht müssen Sie den Link zu employeerecord.php ändern? id = someid, wobei someid von Ihrer Schleife abhängt ($ row ['E_ID']) – Danilo

Antwort

0

Sie immer nur das letzte Ergebnis in Gang zu bringen (dh: 3 - Grace Smith) weil Sie den $_SESSION['ttid'] Wert in überschreiben jede Iteration.

Sie sollten eine GET Abfragezeichenfolge an Ihren Link anhängen und Ihren Code anpassen. Beispielsweise;

<td><a href="employeerecord.php?id=<?php echo $row['E_ID']; ?>"> 
     <?php echo $row['E_ID']; ?> - <?php echo implode(" ", array($row['FirstName'], $row['LastName'])); ?> 
    </a> 
</td> 

Suchen Sie jetzt in Ihrer Abfrage nach der Abfragezeichenfolge.

if(isset($_GET['id']) AND ctype_digit($_GET['id'])) { 
    //Query for the specific E_ID 
    $sql = "SELECT `FirstName`,`LastName` FROM employee where E_ID = ?"; 
    $objGet = mysqli_prepare($conn, $sql); 
    mysqli_stmt_bind_param($objGet, 'i', $_GET['id']); 
    mysqli_stmt_execute($objGet); 
    mysqli_stmt_bind_result($objGet, $strFirstName, $strLastName); 

    echo 'Viewing: '. $strFirstName .' '. $strLastName; 
} else { 
    //Query all records to show to the user 
}