'php retrieve specific data onclick from database in a list format

    <?php include ("../navbar.php"); ?>
    
    <?php include("../conn.php"); 
        $query = "select * from semi_synthetic";
            $result = mysqli_query($conn,$query);
     ?>
    
    
    
    <div class="container">
    <div class="compound_report_card">
        <h2>Compound Report</h2>
        
        <div class="card-content">
        
    <?php
    //Check If Id Isset.
    
        if(isset($_GET["CHIHBT_ID"]))
    
       //Display Id On A Webpage.
       echo "<p>Calculated Properties of : " . $_GET[ "CHIHBT_ID" ] . "</p>"; 
    
       $result = mysqli_query($conn, $query);
        
    ?>
    
    
     <?php
                    while($row = mysqli_fetch_assoc($result )) {
                    ?>
    
             <ul>
                 <li>Canonical smiles :   <?php echo $row['smile_notation']; ?> </li>
                 <li> Molecular weight :   <?php echo $row['molecular_weight']; ?></li>
                 <li> Heavy atoms :    <?php echo $row['number_of_heavy_atoms']; ?></li>
                 <li> Aeromatic heavy atoms :   <?php echo $row['number_of_aeromatic_heavy_atoms']; ?></li>
                 <li> Rotatable bonds :  <?php echo $row['number_of_rotatable_bonds']; ?></li>
                 <li> H bond acceptors :  <?php echo $row['number_of_h_bond_acceptors']; ?></li>
                 <li> H bond donors:    <?php echo $row['number_of_h_bond_donors']; ?></li>
                 <li> Tpsa A**2 :   <?php echo $row['tpsa']; ?></li>
    
                </ul>
    
    
    <?php } ?>     
    
     </div>            
    </div>
    </div>
    
    
    <?php include ("../footer.php");   ?>

    

so this is my new code and i am displaying data on web from my database and . So what i am trying to do is i have a lot of id's and i want that when i click on any id the data of that id from database should get displayed. So the current situation is that when i am clicking on one id whole data from that table is getting displayed and i want only one to get displayed. I want onlyspecific data from every id that i click. So the problem i think is in while loop so please see that also



Solution 1:[1]

The problem: Your code is getting all records and isn't querying against your selected ID.

What you need to do: Add selected ID in query to get specific result. Like shown below:

Update: From What I understand $_GET["CHIHBT_ID"] is your ID, right? Change this code in your script:

<?php include("../conn.php");
$query = "select * from semi_synthetic";
$result = mysqli_query($conn, $query);
?>

To

<?php include("../conn.php");
$query = "select * from semi_synthetic";
?>

Then, change the following code:

<?php
//Check If Id Isset.

if (isset($_GET["CHIHBT_ID"]))

    //Display Id On A Webpage.
    echo "<p>Calculated Properties of : " . $_GET["CHIHBT_ID"] . "</p>";

$result = mysqli_query($conn, $query);

?>

With this:

<?php
//Check If Id Isset.

if (isset($_GET["CHIHBT_ID"])) {
    $query .= ' WHERE CHIHBT_ID = ' . $_GET["CHIHBT_ID"]; // add selected id in query

    //Display Id On A Webpage.
    echo "<p>Calculated Properties of : " . $_GET["CHIHBT_ID"] . "</p>";
}


$result = mysqli_query($conn, $query); // run query

?>

and that's it.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1