morpheus22170
Messages postés99Date d'inscriptionvendredi 20 janvier 2006StatutMembreDernière intervention 8 septembre 2009
-
2 mars 2006 à 12:05
sam_12_3
Messages postés34Date d'inscriptiondimanche 9 janvier 2005StatutMembreDernière intervention26 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.
$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");
//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 " {$é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 " {$é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>
A voir également:
Modifier un élément à partir de deux autres éléments
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());