Bonjour,
Je fais un inventaire sur un parc informatique d'un établissement scolaire et je veux lier deux listboxs avec une base de données.
En utilisant ceci : or die(mysql_error()), j'ai un message d'erreur qui apparaît :
B002 étant la valeur d'une de mes tables SQL et représente un numéro de salle.
Voici ma page PHP
A la base mes erreurs m'affichent :
Sauriez-vous trouver une solution ?
Cordialement,
lizeal
Modifié par lizeal (21 Jun 2013 - 10:52)
Je fais un inventaire sur un parc informatique d'un établissement scolaire et je veux lier deux listboxs avec une base de données.
En utilisant ceci : or die(mysql_error()), j'ai un message d'erreur qui apparaît :
Unknown column 'B002' in 'where clause'
B002 étant la valeur d'une de mes tables SQL et représente un numéro de salle.
Voici ma page PHP
<?php
echo("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n");
/* 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 */
$idr = isset($_POST['liste_salle'])?$_POST['liste_salle']:null;
?>
<body style="font-family: verdana, helvetica, sans-serif; font-size: 85%">
<h3>Version 100% PHP</h3>
<p>Vous constaterez qu'il y a un délai de latence entre la sélection et la mise à jour.</p>
<?php
if(isset($_POST['ok']) && isset($_POST['liste_materiel']) && $_POST['liste_materiel'] != "")
{
$salle_selectionnee = $_POST['liste_salle'];
$mat_selectionnee = $_POST['liste_materiel'];
?>
<p>Vous avez sélectionné le matériel <?php echo($mat_selectionnee); ?> dans la salle <?php echo($salle_selectionnee); ?></p>
<?php
}
?>
<h3>Trouver un matériel</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);
$sql1 = "SELECT `id_salle`, `nom_salle`".
" FROM `salle`".
" ORDER BY `id_salle`";
$rech_salles = mysql_query($sql1);
$code_salle = array();
$salle = array();
/* On active un compteur pour les salles */
$nb_salles = 0;
if($rech_salles != false)
{
while($ligne = mysql_fetch_assoc($rech_salles))
{
array_push($code_salle, $ligne['id_salle']);
array_push($salle, $ligne['nom_salle']);
/* On incrémente de compteur */
$nb_salles++;
}
}
?>
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgmat">
<fieldset style="border: 3px double #333399">
<legend>Sélectionnez une salle</legend>
<select name="liste_salle" id="liste_salle" onchange="document.forms['chgmat'].submit();">
<option value="-1">- - - Choisissez une salle - - -</option>
<?php
for($i = 0; $i < $nb_salles; $i++)
{
?>
<option value="<?php echo($code_salle[$i]); ?>"<?php echo((isset($idr) && $idr == $code_salle[$i])?" selected=\"selected\"":null); ?>><?php echo($salle[$i]); ?></option>
<?php
}
?>
</select>
<?php
mysql_free_result($rech_salles);
/* On commence par vérifier si on a envoyé un numéro de salle et le cas échéant s'il est différent de -1 */
if(isset($idr) && $idr != -1)
{
/* Cération de la requête pour avoir les matériels de cette salle */
$sql2 = "SELECT id_salle_contenir, id_mat_contenir
FROM contenir
WHERE id_salle_contenir = ".$idr." ";
if($connexion != false)
{
$rech_mat = mysql_query($sql2, $connexion) or die(mysql_error());
/* Un petit compteur pour les matériels */
$nd = 0;
/* On crée deux tableaux pour les numéros et les noms des matériels */
$code_mat = array();
$nom_mat = array();
/* On va mettre les numéros et noms des matériels dans les deux tableaux */
[b]while($ligne_mat = mysql_fetch_assoc($rech_mat))[/b]
{
array_push($code_mat, $ligne_mat['id_salle_contenir']);
array_push($nom_mat, $ligne_mat['id_mat_contenir']);
$nd++;
}
/* Maintenant on peut construire la liste déroulante */
?>
<select name="liste_materiel" id="liste_materiel">
<?php
for($d = 0; $d<$nd; $d++)
{
?>
<option value="<?php echo($code_mat[$d]); ?>"<?php echo((isset($mat_selectionnee) && $mat_selectionnee == $code_mat[$d])?" selected=\"selected\"":null); ?>><?php echo($nom_mat[$d]." (". $code_mat[$d] .")"); ?></option>
<?php
}
?>
</select>
<?php
}
/* Un petit coup de balai */
[b]mysql_free_result($rech_mat);[/b]
}
?>
<br /><input type="submit" name="ok" id="ok" value="Envoyer" />
</fieldset>
</form>
<?php
/* Terminé, on ferme la connexion */
mysql_close($connexion);
}
else
{
/* Si on arrive là, c'est pas bon signe, il faut vérifier les
* paramètres de connexion, mot de passe, serveur pas démarré etc... */
?>
<p>Un incident s'est produit lors de la connexion à la base de données, veuiillez essayer à nouveau ultérieurement.</p>
<?php
}
?>
A la base mes erreurs m'affichent :
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\wamp\www\tests\php_listes_liees.php on line 83
Warning: mysql_free_result() expects parameter 1 to be resource, boolean given in C:\wamp\www\tests\php_listes_liees.php on line 104
Sauriez-vous trouver une solution ?
Cordialement,
lizeal
Modifié par lizeal (21 Jun 2013 - 10:52)