Code : Tout sélectionner
<tr>
<td><?php echo($row['id_machine']); ?></td>
<td><?php echo($row['model']); ?></td>
<td><?php echo($row['course']); ?></td>
<td><label><input type="checkbox" name="<?php echo($row['id_machine']); ?>" value="<?php echo($_SESSION['id_machine'] = $row['id_machine']); ?>" /></label></td>
</tr><td><label><input type="checkbox" name="<?php echo($row['id_machine']); ?>" value="<?php echo($_SESSION['id_machine'] = $row['id_machine']); ?>" /></label></td>
L'attribut name de ton champ prend le nom de ... l'identifiant extrait de la base de données qui n'est donc pas "id_machine" mais l'identifiant lui même.<td><label><input type="checkbox" name="id_machine" value="<?php echo($row['id_machine']); ?>" /></label></td>
Essaye déjà ça.Code : Tout sélectionner
<?php
session_start();
$_SESSION['id_machine'] = $_POST['id_machine'];
require_once('admin/connect.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
</head>
<body>
<?php
$sql=" SELECT * FROM machine WHERE id_machine = '".$_SESSION['id_machine']."' ";
echo($sql);
$result = mysql_query($sql) or die('Erreur SQL !<br />\n'.$sql.'<br />\n'.mysql_error());
if(!mysql_query($sql,$db))
{
print "erreur ". $sql ."<br />\n";
}
$nb_resultat = mysql_num_rows($result);
if ($nb_resultat == 0)
{
?>
<p>Pas de selection</p><? echo($nb_resultat); ?>
<?php
}
else
{
?>
<? echo($nb_resultat); ?>
<table cellspacing="3">
<tr>
<th class="thead">id_machine</th>
<th class="thead">model</th>
<th class="thead">course</th>
</tr>
<?php
while($row = mysql_fetch_array($result))
{
?>
<tr>
<td><?php echo($_SESSION[$row['id_machine']]); ?></td>
<td><?php echo($_SESSION[$row['model']]); ?></td>
<td><?php echo($_SESSION[$row['course']]); ?></td>
</tr>
<?php
}
?>
</table>
<?php
}
?>
</body>
</html>
<?
mysql_close($db);
?>$id_machine = isset($_POST['id_machine']) ? $_POST['id_machine'] : "";
Ensuite, $id_machine est un tableau s'il y a des cases cochées, tu dois donc pointer en utilisant $id_machine[0], $id_machine[1], $id_machine[2], etc... tant qu'il y en a.$sql = "SELECT champ_1, champ_2 FROM table_xyz ".
"WHERE champ_z = ". $nom[0] ." ".
"OR champ_z = ". $nom[1] .";";
Est-ce que c'est plus clair comme ça ?<?php
/* Récupération des identifiants */
$nom = isset($_POST['nom']) ? $_POST['nom'] : "";
/* On compte combien de valeurs ont été envoyées */
if(!empty($nom))
{
$nb = count($nom);
}
/* On crée les clauses de tri */
$clauses = array();
for($i = 0; $i < $nb; $i++)
{
$clauses[] = "champ_z = ". $nom[$i];
}
/* On concatène les clauses */
$where = implode(" OR ", $clauses);
$sql = "SELECT champ_1, champ_2 FROM table_xyz ".
"WHERE ". $where .";";
?>
Qu'est-ce que ça va faire : supposons que nous ayons trois valeurs identifiant qui soient envoyées : 12, 26 et 47. Le tableau $nom va donc correspondre à :
$nom = array("12", "26", "47");
Passons ce code pour le test dans le code montré ci-dessus:
<?php
/* Récupération des identifiants */
//$nom = isset($_POST['nom']) ? $_POST['nom'] : "";
$nom = array("12", "26", "47");
/* On compte combien de valeurs ont été envoyées */
if(!empty($nom))
{
$nb = count($nom);
}
/* On crée les clauses de tri */
$clauses = array();
for($i = 0; $i < $nb; $i++)
{
$clauses[] = "champ_z = ". $nom[$i];
}
/* On concatène les clauses */
$where = implode(" OR ", $clauses);
$sql = "SELECT champ_1, champ_2 FROM table_xyz ".
"WHERE ". $where .";";
/* Affichage de contrôle */
echo("<p>". $sql ."</p>\n");
?>
Le résultat de l'affichage de contrôle va montrer :
SELECT champ_1, champ_2 FROM table_xyz WHERE champ_z = 12 OR champ_z = 26 OR champ_z = 47;
Code : Tout sélectionner
<?php
/* Récupération des identifiants */
$nom = isset($_POST['id_machine']) ? $_POST['id_machine'] : "";
/* On compte combien de valeurs ont été envoyées */
if(!empty($nom))
{
$nb = count($nom);
}
/* On crée les clauses de tri */
$clauses = array();
for($i = 0; $i < $nb; $i++)
{
$clauses[] = "champ_xyz = ". $nom[$i];
}
/* On concatène les clauses */
$where = implode(" OR ", $clauses);
$sql = "SELECT id_machine FROM table_xyz ".
"WHERE ". $where .";";
/* Affichage de contrôle */
echo("<p>". $sql ."</p>\n");
?>
<? $result = mysql_query("SELECT * FROM machine WHERE id_machine = '". $where ."'" ); ?>
<table cellspacing="3">
<tr>
<th class="thead">id_machine</th>
<th class="thead">model</th>
<th class="thead">course</th>
</tr>
<?php
while($row = mysql_fetch_array($result))
{
?>
<tr>
<td><?php echo($_SESSION[$row['id_machine']]); ?></td>
<td><?php echo($_SESSION[$row['model']]); ?></td>
<td><?php echo($_SESSION[$row['course']]); ?></td>
</tr>
<?php
}
?>
</table>
<?php
/* Récupération des identifiants */
$nom = isset($_POST['id_machine']) ? $_POST['id_machine'] : "";
$where = "";
/* On compte combien de valeurs ont été envoyées */
if(!empty($nom))
{
$nb = count($nom);
/* On crée les clauses de tri */
$clauses = array();
for($i = 0; $i < $nb; $i++)
{
$clauses[] = "id_machine = ". $nom[$i];
}
/* On concatène les clauses */
$where = "WHERE ". implode(" OR ", $clauses);
}
$sql = "SELECT id_machine, model, course FROM machine ". $where .";";
/* Affichage de contrôle */
echo("<p>". $sql ."</p>\n");
/* Exécution de la requête */
$result = mysql_query($sql);
?>
<table cellspacing="3">
<tr>
<th class="thead">id_machine</th>
<th class="thead">model</th>
<th class="thead">course</th>
</tr>
<?php
while($row = mysql_fetch_assoc($result))
{
?>
<tr>
<td><?php echo($row['id_machine']); ?></td>
<td><?php echo($row['model']); ?></td>
<td><?php echo($row['course']); ?></td>
</tr>
<?php
}
?>
</table>
Si tu exécute la requête affichée ensuite, est-ce que tu obtiens le résultat voulu dans phpMyAdmin ?<?php
/* Récupération des identifiants */
$nom = isset($_POST['id_machine']) ? $_POST['id_machine'] : "";
$where = "";
/* On compte combien de valeurs ont été envoyées */
if(!empty($nom))
{
$nb = count($nom);
/* On crée les clauses de tri */
$clauses = array();
for($i = 0; $i < $nb; $i++)
{
$clauses[] = "id_machine = ". $nom[$i];
}
/* On concatène les clauses */
$where = "WHERE ". implode(" OR ", $clauses);
}
$sql = "SELECT id_machine, model, course FROM machine ". $where .";";
/* Affichage de contrôle */
echo("<p>". $sql ."</p>\n");
if ( $nb == 0 ) {
echo 'pas de selection' ;
}
else
{
/* Exécution de la requête */
$result = mysql_query($sql);
?>
<table cellspacing="3">
<tr>
<th class="thead">id_machine</th>
<th class="thead">model</th>
<th class="thead">course</th>
</tr>
<?php
while($row = mysql_fetch_assoc($result))
{
?>
<tr>
<td><?php echo($row['id_machine']); ?></td>
<td><?php echo($row['model']); ?></td>
<td><?php echo($row['course']); ?></td>
</tr>
<?php
}
?>
</table><?php
}
?>
Aprés test ça marche, mais est ce que c'est correct ?