Modifier un élément à partir de deux autres éléments

Résolu
morpheus22170 Messages postés 99 Date d'inscription vendredi 20 janvier 2006 Statut Membre Dernière intervention 8 septembre 2009 - 2 mars 2006 à 12:05
sam_12_3 Messages postés 34 Date d'inscription dimanche 9 janvier 2005 Statut Membre Dernière intervention 26 mars 2006 - 2 mars 2006 à 14:50
j'ai repris l'exemple dans un livre php pour les débutants une méthode pour modifier un élément à partir de deux autres éléments
je veux modifier le nombre de postes a partir du batiment et du numéro de salle
voila en la table en MLD:
labo(IdentLabo, Nbre_de_postes, Batiment, NumSalle)

voila le code en vrac en php.merci de bien m'aider.

modificationsalle.php
<html>

<?php
$user= "root";
$host="Localhost";
$password="";
$database="gestion_laboratoire";

$connexion = mysql_connect($host, $user, $password) or die ("Connexion au serveur impossible");
$db = mysql_select_db($database, $connexion) or die ("Sélection de la base de données impossible");
$take = "SELECT * FROM labo";
$resultat = mysql_query($take) or die ("Exécution de la requête impossible");

$tph = strip_tags(trim($_POST['Nbre_de_postes']));
$tph = ereg_replace("/[)( .-]","",$Nbre_de_postes);
$prénom = $_POST['Batiment'];
$nom = $_POST['NumSalle'];

// Controle des informations du formulaire

//Définition des étiquettes des variables $étiquettes array ("Batiment"> "Batiment", "NumSalle" => "NumSalle", "Nbre_de_postes" => "Nbre_de_postes");
foreach ($_POST as $clé => $valeur)
{
//Tester les champs vides
if ($valeur == "")
{
$champVide[$clé] = "blanc";
}
elseif (ereg("(Batiment)",$clé))
{
if(!ereg("^[A-Za-z' -]{1,50}$",$_POST[$clé]) )
{
$mauvaisFormat[$clé] = "mauvais";
}
}
elseif ($clé == "Nbre_de_postes")
{
if(!ereg("^[0-9)( -]{7,20}(([xX]|(ext)|(ex))?[ -]?[0-9]{1,7})?$",$valeur))
{
$mauvaisFormat[$clé] = "mauvais";
}
}
}
//En cas d'erreur, afficher un message et réafficher le formulaire
if (@sizeof($champVide) > 0 or @sizeof($mauvaisFormat) > 0)
{
if (@sizeof($champVide) > 0)
{
//Message signalant qu'il manque quelque chose
echo " Vous avez omis de remplir un ou plusieurs champs obligatoires. Vous devez saisir :
";
//Afficher la liste de valeurs absentes
foreach($champVide as $clé => $valeur)
{
echo "&nbsp;&nbsp;&nbsp;{$étiquettes[$clé]}
";
}
}
if (@sizeof($mauvaisFormat) > 0)
{
//Afficher un message signalant des informations invalides
echo "Un ou plusieurs champs contiennent une information incorrecte. Corrigez les champs :
";
//Afficher la liste des informations invalides
foreach($mauvaisFormat as $clé => $valeur)
{
echo "&nbsp;&nbsp;&nbsp;{$étiquettes[$clé]}
";
}
}
//Réafficher le formulaire
echo "<hr>
<form action='modificationsalle.php' method='POST'>
<center>
{$étiquettes['Batiment']}:,
,

----
{$étiquettes['NumSalle']}:,
,

----
{$étiquettes['Nbre_de_postes']}:,


</form>
</center>";
exit();
}
else // Si tout est OK
{
$user="root";
$host="Localhost";
$password="";
$database="gestion_laboratoire";

$connexion = mysql_connect($host, $user, $password) or die ("Connexion au serveur impossible");
$db = mysql_select_db($database, $connexion) or die ("Sélection de la base de données impossible");
$req = "UPDATE labo SET Nbre_de_postes='$Nbre_de_postes' WHERE Batiment='$Batiment' AND NumSalle='$NumSalle'";
$result = mysql_query ($req) or die ("Impossible d'exécuter la requête" . mysql_error());
echo "Le nombre de cette salle a été modifiée
";
}
?>

</html>

1 réponse

sam_12_3 Messages postés 34 Date d'inscription dimanche 9 janvier 2005 Statut Membre Dernière intervention 26 mars 2006
2 mars 2006 à 14:50
Salut



alors d'apres ce que jai comprie tu veut modifier le nombre de
place dans la bdd selon le numero du batiment et du numero de salle

labo(IdentLabo, Nbre_de_postes, Batiment, NumSalle)



Alors comme ta fait du doit te connecter a la base apres tu fait ton select

alors je sais pas si ta deja une restriction a faire dans ton select ou
i tu recupere tout les enregistrement de ta table(dans ce cas apres tu
devra faire une boucle pour parcourir tout tes enregistrement et
verifier le batiment et la num de la classe que tu veut)

alors tu fait ton select

$requete = "select * from labo";

ou

$requete = "select * from labo where batiment='...' and NumSalle=...";

apres tu execute ta requete

$resultat = mysql_db_query("BDD", $requete, $maConnexion) or die ("echo
Erreur : ".mysql_error($maConnexion));

apres tu met le resultat dans un tableau et tu recupere tes valeur

$ligne =mysql_fetch_array($resultat);

$id=$ligne['batiment'];

apres une fois que ta recuperer ta valeur comme jtai di tout a lheure soi tu fait une boucle avec un while

while($row=mysql_fetch_array($resultat))

{

$batiment=$row['batiment'];

$salle=$row['salle'];



// la tu fait ta condition

exemple tu teste

if (($batiment 'A') && ($salle 1) )

{

$req = "UPDATE labo SET Nbre_de_postes='$Nbre_de_postes' WHERE Batiment='$Batiment' AND NumSalle='$NumSalle'";
$result = mysql_query ($req) or die ("Impossible d'exécuter la requête" . mysql_error());


}



voila je pense que tu devrai faire comme ca.

j'espere que sa va t'aider

++



,
3
Rejoignez-nous