Bonjour,
Je travail sur un projet d'inventaire de parc informatique d'un établissement scolaire. Je cherche à rendre plus performante ma page dédiée aux recherches, cependant j'ai un problème :
Sur cette page j'ai déjà une listbox qui m'affiche un tableau si l'on choisit une valeur.
[u]Exemple :[/u] Je choisis une salle dans la listbox et un tableau m'affiche tout le matériel contenu dans cette salle.
J'ai essayé en vain, je refaire ce même principe pour effectuer une recherche par ordinateurs pour que le tableau affiche les logiciels installés sur l'ordinateur.
Voici mon code :
La listbox apparaît bien avec le contenu de ma base de données, mais aucun tableau n'apparaît.
[u]Ma base de données: [/u]
- installer : id_log_install, id_mat_install
==> clés étrangères de :
- logiciel : id_log [CLE ETRANGERE], designation_log
et de
- materiel : id_mat [CLE ETRANGERE], marque_mat, ...
J'aimerai qu'en sélectionnant dans la listbox un ordinateur, ça m'affiche les logiciels installés dans la machine.
La listbox doit m'afficher les ordinateur selon leur marque et leur identifiant...
Le tableau doit m'afficher la designation (voir l'identifiant...) du logiciel.
Je n'arrive pas à trouver mon erreur, si quelqu'un de sympathique avec du temps libre pourrait m'aider j'en serais ravie.
Cordialement et bon courage à toute personne qui voudrait m'aider,
lizeal
Modifié par lizeal (27 Jun 2013 - 10:21)
Je travail sur un projet d'inventaire de parc informatique d'un établissement scolaire. Je cherche à rendre plus performante ma page dédiée aux recherches, cependant j'ai un problème :
Sur cette page j'ai déjà une listbox qui m'affiche un tableau si l'on choisit une valeur.
[u]Exemple :[/u] Je choisis une salle dans la listbox et un tableau m'affiche tout le matériel contenu dans cette salle.
J'ai essayé en vain, je refaire ce même principe pour effectuer une recherche par ordinateurs pour que le tableau affiche les logiciels installés sur l'ordinateur.
Voici mon code :
<!-- ********** RECHERCHER PAR MATERIEL LES LOGICIELS INSTALLES/ ********** -->
<?php
/* Variables de connexion : ajustez ces paramètres selon votre propre environnement */
$serveur = "localhost";
$admin = "root";
$mdp = "";
$base = "inventaire_parc_info";
/* On récupère si elle existe la valeur de la salle envoyée par le formulaire */
$idm = isset($_POST['liste_mat'])?$_POST['liste_mat']:null;
if(isset($_POST['ok']) && isset($_POST['liste_log']) && $_POST['liste_log'] != "")
{
$mat_selectionnee = $_POST['liste_mat'];
$log_selectionnee = $_POST['liste_log'];
?>
<p>Vous avez sélectionné le logiciel <?php echo($mat_selectionnee); ?> dans le matériel <?php echo($log_selectionnee); ?></p>
<?php
}
?>
<h3>Trouver les logiciels d'un ordinateur</h3>
<?php
/* On établit la connexion à MySQL avec mysql_pconnect() plutôt qu'avec mysql_connect()
* car on aura besoin de la connexion un peu plus loin dans le script */
$connexion = mysql_connect($serveur, $admin, $mdp);
if($connexion != false)
{
$choixbase = mysql_select_db($base, $connexion);
$sql11 = "SELECT id_mat, marque_mat, id_type_mat FROM materiel WHERE id_type_mat='pc'";
$rech_mat_log = mysql_query($sql11);
$code_mat_log = array();
$materiel = array();
/* On active un compteur pour les ordinateurs */
$nb_mat = 0;
if($rech_mat_log != false)
{
while($ligne = mysql_fetch_assoc($rech_mat_log))
{
array_push($code_mat_log, $ligne['id_mat']);
array_push($materiel, $ligne['marque_mat']);
/* On incrémente de compteur */
$nb_mat++;
}
}
?>
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chglog">
<fieldset style="border: 3px double #333399">
<legend>LOGICIELS</legend>
<select name="liste_mat" id="liste_mat" onchange="document.forms['chgmat'].submit();">
<option value="-1">- - - Choisissez un ordinateur - - -</option>
<?php
for($i = 0; $i < $nb_mat; $i++)
{
?>
<option value="<?php echo($code_mat_log[$i]); ?>"<?php echo((isset($idm) && $idm == $code_mat_log[$i])?" selected=\"selected\"":null); ?>><?php echo($materiel[$i]); ?></option>
<?php
}
?>
</select>
<?php
mysql_free_result($rech_mat_log);
/* On commence par vérifier si on a envoyé un ordinateur et le cas échéant s'il est différent de -1 */
if(isset($idm) && $idm != -1)
{
/* Cération de la requête pour avoir les logiciels du materiel */
$sql21 = "SELECT id_log, designation_log FROM logiciel INNER JOIN installer ON id_log = id_log_install WHERE id_mat_install = '".$idm."' ";
if($connexion != false)
{
$rech_mat_log = mysql_query($sql21, $connexion) or die(mysql_error());
echo '<table>
<tr>
<th>Logiciels</th>
</tr>';
while ($ligne=mysql_fetch_array($rech_mat_log))
{
echo '<tr>
<td>'.$ligne['id_log'].'</td>
<td>'.$ligne['designation_log'].'</td>
</tr>';
}
echo '</table>';
?>
<?php
}
?>
</select>
<?php
}
/* Un petit coup de balai */
//mysql_free_result($rech_mat_log);
}
?>
</fieldset>
</form>
<?php
/* Terminé, on ferme la connexion */
mysql_close($connexion);
?>
<!-- ********** /RECHERCHER PAR MATERIEL LES LOGICIELS INSTALLES ********** -->
La listbox apparaît bien avec le contenu de ma base de données, mais aucun tableau n'apparaît.
[u]Ma base de données: [/u]
- installer : id_log_install, id_mat_install
==> clés étrangères de :
- logiciel : id_log [CLE ETRANGERE], designation_log
et de
- materiel : id_mat [CLE ETRANGERE], marque_mat, ...
J'aimerai qu'en sélectionnant dans la listbox un ordinateur, ça m'affiche les logiciels installés dans la machine.
La listbox doit m'afficher les ordinateur selon leur marque et leur identifiant...
Le tableau doit m'afficher la designation (voir l'identifiant...) du logiciel.
Je n'arrive pas à trouver mon erreur, si quelqu'un de sympathique avec du temps libre pourrait m'aider j'en serais ravie.
Cordialement et bon courage à toute personne qui voudrait m'aider,
lizeal
Modifié par lizeal (27 Jun 2013 - 10:21)