PHPBoucle sur un update
artichaulo
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
artichaulo Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
artichaulo Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je travail actuellement sur le formulaire de modification d'une base de données :
Voici l'idée :
L'utilisateur rentre les données à modifier dans un formulaire qui renvoie vers une page qui mettras les données à jour.
J'ai mis une condition à ces updates:
Si la valeur du champ est != "" alors je lance la requête, sinon la base sera mise à jour même avec des champs vides.
En voici un un extrait :
// se connecte à la base
include "connect.php";
// vient chercher le code dans une liste déroulante
$code=$_POST['row'];
if (($_POST[VALEUR1])!="")
{
mysql_query('UPDATE table SET VALEUR1 ="'.$_POST[VALEUR1].'" WHERE code= "'.$code.'" ');
}
if (($_POST[VALEUR2])!="")
{
mysql_query('UPDATE table SET VALEUR2 ="'.$_POST[VALEUR2].'" WHERE code= "'.$code.'" ');
}
if (($_POST[VALEUR3])!="")
{
mysql_query('UPDATE table SET VALEUR3 ="'.$_POST[VALEUR3].'" WHERE code= "'.$code.'" ');
}
[...]
Et il y a 132 valeurs à se suivre... Je précise qu'en réalité ces valeurs sont de la forme:
ad_oxy
ad_vent
s_min
s_hours
etc..
Pas de possibilité de faire une boucle for de 1 à 123
Y aurait il un moyen de rassembler tout ceci en une seule requête?
Avec un boucle peut être mais je ne vois pas du tout comment faire.
Merci d'avance
Je travail actuellement sur le formulaire de modification d'une base de données :
Voici l'idée :
L'utilisateur rentre les données à modifier dans un formulaire qui renvoie vers une page qui mettras les données à jour.
J'ai mis une condition à ces updates:
Si la valeur du champ est != "" alors je lance la requête, sinon la base sera mise à jour même avec des champs vides.
En voici un un extrait :
// se connecte à la base
include "connect.php";
// vient chercher le code dans une liste déroulante
$code=$_POST['row'];
if (($_POST[VALEUR1])!="")
{
mysql_query('UPDATE table SET VALEUR1 ="'.$_POST[VALEUR1].'" WHERE code= "'.$code.'" ');
}
if (($_POST[VALEUR2])!="")
{
mysql_query('UPDATE table SET VALEUR2 ="'.$_POST[VALEUR2].'" WHERE code= "'.$code.'" ');
}
if (($_POST[VALEUR3])!="")
{
mysql_query('UPDATE table SET VALEUR3 ="'.$_POST[VALEUR3].'" WHERE code= "'.$code.'" ');
}
[...]
Et il y a 132 valeurs à se suivre... Je précise qu'en réalité ces valeurs sont de la forme:
ad_oxy
ad_vent
s_min
s_hours
etc..
Pas de possibilité de faire une boucle for de 1 à 123
Y aurait il un moyen de rassembler tout ceci en une seule requête?
Avec un boucle peut être mais je ne vois pas du tout comment faire.
Merci d'avance
A voir également:
- PHPBoucle sur un update
- Windows update bloqué - Guide
- Winget update - Guide
- Asus live update - Télécharger - Utilitaires
- Wsus offline update - Télécharger - Systèmes d'exploitation
- Nettoyage windows update - Guide
5 réponses
Tout simplement :
En séparant les différents champs avec des virgules donc.
if (($_POST[VALEUR1])!="" && $_POST[VALEUR2])!="" && $_POST[VALEUR3])!="") { mysql_query('UPDATE table SET VALEUR1 ="'.$_POST[VALEUR1].'", VALEUR2 ="'.$_POST[VALEUR2].'", VALEUR3 ="'.$_POST[VALEUR3].'" WHERE code= "'.$code.'" '); }
En séparant les différents champs avec des virgules donc.
if (($_POST[VALEUR1])!="" && $_POST[VALEUR2])!="" && $_POST[VALEUR3])!="")
les && sont des and ?
Ca signifierait que pour faire un update il faudrait que VALEUR1 VALEUR2 et VALEUR3 soient != "" ?
Si oui ce n'est pas ce que je recherche.
les && sont des and ?
Ca signifierait que pour faire un update il faudrait que VALEUR1 VALEUR2 et VALEUR3 soient != "" ?
Si oui ce n'est pas ce que je recherche.
Ah je vois ou tu veux en venir, je te propose alors :
Comme ça, seuls les champs non vides sont mis à jour.
if ($_POST[VALEUR1]!="" && $_POST[VALEUR2]!="" && $_POST[VALEUR3]!="") { $query ="UPDATE table SET "; if (($_POST[VALEUR1])!="") $query .= 'VALEUR1 ="'.$_POST[VALEUR1].'",'; if (($_POST[VALEUR2])!="") $query .= 'VALEUR2 ="'.$_POST[VALEUR2].'",'; if (($_POST[VALEUR3])!="") $query .= 'VALEUR3 ="'.$_POST[VALEUR3].'",'; $query = substr($query,0,-1); // pour virer la derniere virgule $query .= ' WHERE code= "'.$code.'" '; mysql_query($query); }
Comme ça, seuls les champs non vides sont mis à jour.
$query = ''; foreach( $_POST as $key => $value){ if($value != ''){ if($query != ''){$query .= ',';} $query .= $key .' = "'.$value.'"'; } } if($query != ''){ $req = 'UPDATE table SET '.$query.' WHERE code= "'.$code.'" '; }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question