Filtres tableau php

Fermé
cansert Messages postés 1 Date d'inscription lundi 10 avril 2023 Statut Membre Dernière intervention 10 avril 2023 - Modifié le 10 avril 2023 à 15:54
jordane45 Messages postés 38400 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 31 janvier 2025 - 10 avril 2023 à 23:22

Bonjour,

Je suis étudiant en école d'ingé et je travaille actuellement sur un petit projet. Sur mon site, j'aimerais filtrer un tableau à l'aide d'une barre de recherche.
En clair, si dans mon tableau je veux filtrer une colonne (ici supplier), je dois appuyer sur le filtre supplier et entrer une valeur (ce que j'ai aussi réussi à faire jusqu'à présent) afin de n'afficher que la ligne correspondante.
Vous l'aurez compris, au niveau de l'interface j'arrive à entrer les affichages. Mais là où ça bloque c'est lorsque je dois faire la connexion entre les fonctions. Bref, compliqué.

Est-il possible de m'indiquer quelles sont mes grosses erreurs ? (En espérant que mon code ne vous fera pas mal aux yeux)
Il est + long mais je l'ai racourci pour le forum. Le debut du code est normalement ok. Merci :love5:

<html>
<head>
	<title>Divalto App</title>
	<link rel="stylesheet" type="text/css" href="testcss.css">
</head>

<body>
	<nav class="menu">
		<form action="welcome.php" method="post"> 	<!--faire ref à la page suivante-->
			<input type="submit" value="All Products"><br> 	<!--bouton-->
		</form>	
	</nav>

	<h1>All Products</h1>
	
	<nav class="menu">
		<form action="welcome.php" method="post">
			<select name="filterSelect" size="1">
				<option value="">--- Choose the filter to use ---</option>
				<option value="prodRef">Product Reference</option>
				<option value="date">Date</option>
				<option value="prodCate">Product Category</option>
				<option value="supplier">Supplier</option>
			</select>
			<select name="filterSelect1" size="1">
				<option value="">--- Choose the filter to use ---</option>
				<option value="prodRef">Product Reference</option>
				<option value="date">Date</option>
				<option value="prodCate">Product Category</option>
				<option value="supplier">Supplier</option>
			</select>	
			<select name="filterSelect2" size="1">
				<option value="">--- Choose the filter to use ---</option>
				<option value="prodRef">Product Reference</option>
				<option value="date">Date</option>
				<option value="prodCate">Product Category</option>
				<option value="supplier">Supplier</option>
			</select>			
			<select name="filterSelect3" size="1">
				<option value="">--- Choose the filter to use ---</option>
				<option value="prodRef">Product Reference</option>
				<option value="date">Date</option>
				<option value="prodCate">Product Category</option>
				<option value="supplier">Supplier</option>
			</select>					
			<input type="submit" name="validate_filter" value="Validate filters"><br> 	<!--bouton-->
		</form>
	</nav>

<?php

//check the connection to the database
$server = "127.0.0.1";
$username = "root";
$password = "";
$database = "projetbdd";

$link = mysqli_connect ($server, $username, $password, $database);

if(!$link) {
    echo "Error: Unable to connect to MySQL." . PHP_EOL;
    echo "Debugging error:" . mysqli_get_host_info($link) . "<br>". PHP_EOL;
    echo "Debugging error:" . mysqli_get_host_info($link) . "<br>". PHP_EOL;
    exit;
}

//display all products
$query = "SELECT * FROM `stock`";

echo "<table class='table-style'>";
echo "<tr><th>Reference</th><th>Designation</th><th>Category</th><th>Quantity</th><th>Supplier</th><th>Unity cost</th><th>Low level indicator</th></tr>";
		
if ($result = mysqli_query($link, $query)){    
    if (mysqli_num_rows($result) > 0){
        $i = 0;
        while(($row = mysqli_fetch_assoc($result)) && $i<100){
            echo "<tr>";
			echo '<td><a href="history.php?id=' . $row["ref_product"] . '">' . $row["ref_product"] . '</a></td>';
			echo "<td>" . $row["name_product"] . "</td>";
			echo "<td>" . $row["product_category"] . "</td>";
			echo "<td>" . $row["product_quantity"] . "</td>";
			echo '<td><a href="supplier.php?supplier=' . urlencode($row["supplier_id"]) . '">' . $row["supplier_id"] . '</a></td>';
			echo "<td>" . $row["unity_cost"] . "</td>";
			echo "<td>" . $row["low_level_indicator"] . "</td>";
			echo "</tr>";
			$i = $i+1;
        }
     }else{
         echo "0 results";
     }
              
     mysqli_free_result($result);
}
else {
    $message = 'Invalid query:' . mysql_error() . "\n";
    $message .= 'Whole query: ' . $query;
    die($message);
}



//C'est à partir de là que ca coince ! 


if (isset($_POST['validate_filter'])){
	$filter_chosen = $_POST['filterSelect'];


if($filter_chosen == 'supplier'){
		echo
		'<nav class="menu">
			<form action="welcome.php" method="post">			
				<input type="text" name="validate_filter" placeholder="Supplier">
				<input type="submit" name="validate_filter2" value="Validate filters"><br> 	<!--bouton-->
			</form>
		</nav>';

				// Query database to select rows matching filter
				$sql = "SELECT * FROM supplier WHERE supplier_id='3';
				$result = mysqli_query($conn, $sql);
		
		// Check if rows were found
		if (mysqli_num_rows($result) > 0) {
			// Output data of each row
			while ($row = mysqli_fetch_assoc($result)) {
				echo "ID: " . $row["supplier_id"] . "<br>";
			   
			}
		} else {
			echo "0 results";
		}
		
		
	}
?>

</body>
</html>
A voir également:

1 réponse

jordane45 Messages postés 38400 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 31 janvier 2025 4 732
10 avril 2023 à 23:22

Bonjour

Déjà ligne 119 tu n'as pas fermé la string (il manque des " )


0