2017-10-09 5 views
0

J'ai une table créée avec tous les champs nécessaires comme (ID, nom, prénom, etc.)Récupérer les résultats de la recherche | PHP & SQL

Dans la recherche de fichier php, lorsque vous tapez l'ID, il vous montre toutes les informations correspondant à cet ID , par exemple (ID = 1, nom = Jack)

MY IDÉE: Lorsque je fais une recherche personnalisée, dans le php, je veux ajouter un lien vers un autre fichier php qui affiche le même résultat de recherche mais avec des informations supplémentaires.

QUESTION: Comment puis-je appeler un résultat de recherche personnalisé à partir d'un autre fichier php? En ce qui concerne cet exemple, Si je recherche ID = 2, je veux lier à un autre fichier php "Extrainfo.php" qui montre plus d'informations de cette recherche personnalisée.

Voici le code je:

//database connection 

global $conn; 
$servername = "localhost"; //host name 
$username = "root"; //username 
$password = ""; //password 
$mysql_database = "info"; //database name 

//mysqli prepared statement 

$conn = mysqli_connect($servername, $username, $password) or die("Connection failed: " . mysqli_connect_error()); 

mysqli_select_db($conn,$mysql_database) or die("Opps some thing went wrong"); 

if(isset($_GET['idNumber'])) 
{ 
    $IDNUMBER =$_GET['idNumber']; 
    $stmt = $conn->prepare("select * from madea where idNumber=? "); 
    $stmt->bind_param('s',$IDNUMBER); 
    $stmt->execute(); 
    $val = $stmt->get_result(); 
    $row_count= $val->num_rows; 

    if($row_count>0) 
    { 
     $result =$val->fetch_assoc(); 
     echo $result['idNumber']; 
     echo $result['name']; 
    } 
    else 
    { 
     echo "identification_number not Match"; 
    } 

    $stmt->close(); 
    $conn->close(); 

    // Probably need to save the variable to call in the other php file? 

    $idNumber = $result['idNumber']; 

} 

?> 

<a href="extrainfo.php">Extrainfo</a> 
+0

'QUESTION: Comment puis-je appeler un résultat de recherche personnalisé à partir d'un autre fichier php?' Eh bien, vous envoyez des choses sur $ _GET, ce qui n'est pas conseillé. Mais vous devriez 'header (" Location: page.php? IdNumber = terme de recherche ")' – IsThisJavascript

+0

@ WillParky93 Dois-je utiliser post method alors? Ou de quelle manière me suggérez-vous son meilleur choix. Un grand merci :) – Dann

+0

Oui utiliser poster.Si vous utilisez post, vous ne pourrez pas en-tête suffisamment, mais vous pouvez toujours utiliser 'ajax' pour interroger vos pages php. – IsThisJavascript

Répondre

0

Eh bien, je le fais enfin par un autre moyen. Result.php n'a ajouté qu'un href qui redirige vers moreinfo.php mais avec la chaîne de requête du numéro d'identification.

<a href="moreinfo.php?idNumber=<?php echo $idNumber?>" class="moreInfo" id="<?php echo $result['idNumber']; ?>" target="_blank">Download PDF INFO</a> 

Et ici vient l'autre partie du code dans moreinfo.php

Dans un premier temps, obtenir le numéro d'identification sur la chaîne de requête que précédemment redirigé par le lien et le faire entrer dans une variable pour l'utiliser après dans la requête SQL

$reportNumber = $_GET['idNumber']; 

$result = mysqli_query($con,"SELECT * FROM madea where reportNumber='".$idNumber."'"); 

Et le reste, les résultats montrent que ce que j'ai vraiment besoin:

while($row = mysqli_fetch_array($result)) 
{ 
$html .= '<td>'.$row['idNumber'].'</td><td>' . $row['Name']. '</td>'; 
} 

Espérons que cela aide à résoudre d'autres problèmes. Donc apprécié pour toute l'aide !! :)

0

C'est ce que je peux vous montrer.

Vous 1er php,

if(isset($_GET['idNumber'])) 
{ 
    $IDNUMBER =$_GET['idNumber']; 
    $stmt = $conn->prepare("select * from madea where idNumber=? "); 
    $stmt->bind_param('s',$IDNUMBER); 
    $stmt->execute(); 
    $val = $stmt->get_result(); 
    $row_count= $val->num_rows; 

    if($row_count>0) 
    { 
     $result =$val->fetch_assoc(); 
     echo $result['idNumber']; 
     echo $result['name']; 
     echo "<a href="#" id=".$result['idNumber']." class="moreInfo">More Info</a>"; 
    } 
    else 
    { 
     echo "identification_number not Match"; 
    } 

    $stmt->close(); 
    $conn->close(); 

    // Probably need to save the variable to call in the other php file? 

    $idNumber = $result['idNumber']; 

} 

Maintenant, je suis en utilisant AJAX et JQuery donc s'il vous plaît relier les bibliothèques appropriées.

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $(document).on('click', '.moreInfo', function(){ 
      $.ajax({ 
      url: 'moreInfo.php', 
      type: 'post', 
      data: { 
       'idNumber': $('.moreInfo').prop('id') 
      } 
      }).then(function (response) { 
      $('#morInfoDiv').html(response); 
      }); 
     }) 
    }) 
</script> 

Le moreInfo.php,

if(isset($_POST['idNumber'])) 
{ 
    $IDNUMBER =$_GET['idNumber']; 
    $stmt = $conn->prepare("select * from madea where idNumber=? "); 
    $stmt->bind_param('s',$IDNUMBER); 
    $stmt->execute(); 
    $val = $stmt->get_result(); 
    $row_count= $val->num_rows; 

    if($row_count>0) 
    {?> 
     Name:<? echo $result['Name']; ?><br>   
     Address:<? echo $result['address']; ?><br> 
     Date of Birth:<? echo $result['dob']; ?><br> 
    <?php } 
    else 
    { 
     echo "identification_number not Match"; 
    } 

    $stmt->close(); 
    $conn->close(); 
} 

maintenant dans votre fichier php 1er peut avoir un DIV qui montrera la réponse du moreInfo.php

<html> 
<body> 
    <div id="morInfoDiv"></div> 
</body> 
</html> 

scénario AJAX envoyer les données dans la méthode post capturent alors le texte de réponse du 2ème PHP et l'ajoutent au DIV identifié comme "moreInfo".

+0

Tout d'abord, merci pour votre aide. J'ai essayé de le faire mais cela me montre Indéfini (idNumber): $ IDNUMBER = $ _ GET ['idNumber']; Variable indéfinie (conn): $ stmt = $ conn-> prepare ("select * from madea où idNumber =?"); – Dann