select 3 champs et update dans un champs

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : select 3 champs et update dans un champs

Re: select 3 champs et update dans un champs

par or 1 » 29 mai 2024, 20:25

alors relire l'intégralité de mon premier message.

Re: select 3 champs et update dans un champs

par surfys » 29 mai 2024, 20:18

j'ai mis le code que j'ai fait plus haut, ça n'update qu'un resultat partour dans la base la même date

Re: select 3 champs et update dans un champs

par or 1 » 29 mai 2024, 19:26

et ?
car les 2 moyens, un update dans le parcours du résultat d'un select, ou une seule requête update, permettent cela.

Re: select 3 champs et update dans un champs

par surfys » 29 mai 2024, 19:22

merci,
mais je veux faire un update de toute la table, copier les champs "jour" "mois" "annee" et faire un update dans un champs date 0000-00-00,

Re: select 3 champs et update dans un champs

par or 1 » 29 mai 2024, 18:43

UPDATE banque SET
date_concat='$date_concat_modif' where idquelquechose = $id

à noter que mysql a les fonctions nécessaires (lpad, concat ...) pour faire la mise à jour de la table en une seule requête.
https://dev.mysql.com/doc/refman/8.0/en ... tions.html

Re: select 3 champs et update dans un champs

par surfys » 29 mai 2024, 18:07

Bon j'arrive pas, un petit exemple serait le bienvenu

$sql ="UPDATE banque SET
$date_concat_modif";
while (SELECT * FROM banque) {

}

Re: select 3 champs et update dans un champs

par surfys » 29 mai 2024, 17:38

Merci je regarde et j'essaye

Re: select 3 champs et update dans un champs

par two3d » 29 mai 2024, 14:37

Je comprends que tu veuille faire un UPDATE de chaque entrée mais tu UPDATE toute la table à chaque itération, il te faut UPDATE seulement l'ID itéré, pas toute la table.
req table
while(req table){
//update entrée avec id itéré
}

Re: select 3 champs et update dans un champs

par surfys » 29 mai 2024, 13:40

Bonjour merci pour la réponse
je veux updater toute la table, c'est pour ça que je n'ai pas de WHERE
J'arrive à transformer ex : 15 dans le champs "jour" 05 dans le champs "mois" et 2024 dans le champs annee
en 2023-05-01 avec CONCAT je met tous dans une variable
$jm_d="0";
$jm_m="0";

if($jour<10) $jour="$jm_d$jour";
if($mois<10) $mois="$jm_m$mois";

" $date_concat_modif ="$annee-$mois-$jour"; " la variable

C'est le update de toute la table que je n'arrive pas à faire il me met le même resultat partout

ID : ... DATE CONCAT : 2024-05-16..... debit:.....Crédit:
modif effectuéeID : ... DATE CONCAT : 2024-05-15..... debit:.....Crédit:
modif effectuéeID : ... DATE CONCAT : 2024-05-14..... debit:.....Crédit:
modif effectuéeID : ... DATE CONCAT : 2024-05-13..... debit:.....Crédit:
modif effectuéeID : ... DATE CONCAT : 2024-05-11..... debit:.....Crédit:
modif effectuéeID : ... DATE CONCAT : 2024-05-11..... debit:.....Crédit:
modif effectuéeID : ... DATE CONCAT : 2024-05-10..... debit:.....Crédit:
modif effectuéeID : ... DATE CONCAT : 2024-05-07..... debit:.....Crédit:
modif effectuéeID : ... DATE CONCAT : 2024-05-07..... debit:.....Crédit:
modif effectuéeID : ... DATE CONCAT : 2024-05-06..... debit:.....Crédit:
modif effectuéeID : ... DATE CONCAT : 2024-05-06..... debit:.....Crédit:
modif effectuéeID : ... DATE CONCAT : 2024-05-06..... debit:.....Crédit:
modif effectuéeID : ... DATE CONCAT : 0-00-04..... debit:.....Crédit:

Re: select 3 champs et update dans un champs

par Spols » 29 mai 2024, 08:30

Hello,

Tu devrais utiliser des champs de date plutot que des champs sépara ou un champs de texte,

mais sinon ton problème vient de ta requète d'UPDATE, il n'y a pas de WHERE du coup tu update toutes les lignes à chaque fois.

select 3 champs et update dans un champs

par surfys » 29 mai 2024, 07:55

Bonjour,
j'ai 3 champs date "jour" "mois" "annee" je voudrais faire un update dans un champs date 0000-00-00,
transformer 1 07 2023 en 2023-07-01.
j'ai fait un code avec "concat" il m'affiche bien dans le résultat ce que je veux après le SELECT, mais dans le update il n'insère que la première date toujours le même.
Le code
$req="SELECT * FROM banque";
$res = $bdd->query($req);//PHP 7 AJOUTER LA CONNEXION BDD DANS LA VARIABLE
// on envoie la requete 
//$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
 
  while ($data = mysqli_fetch_array($res)) {
   $jour = $data["jour"];
   $mois = $data["mois"];
   $annee = $data["annee"];
       
  $jm_d="0";
  $jm_m="0";
   
   if($jour<10) $jour="$jm_d$jour";
   if($mois<10) $mois="$jm_m$mois";   
    
    $date_concat_modif ="$annee-$mois-$jour";  
      
   echo"ID : $id_banque ... DATE CONCAT : $date_concat_modif..... debit:$debit.....Crédit:$credit <br>";

LE UPDATE
$sql ="UPDATE banque SET 
 date_concat='$date_concat_modif'";

 if ($bdd->query($sql) === TRUE) {
    //echo header("Location: affiche_banque.php?mois=$mois");
    echo "modif effectuée";
} else {
    echo "Error: " . $sql . "<br>" . $bdd->error;
}  
 } 
merci pour votre réponse