MAX et MIN mysql sur plusieurs columns

Par azizs, il y a 10 ans


Base de données MySQL

Bonjour,<br />

Comme j'ai des problème dans mon dev j'ai changer de direction, j'ai crée la valeur min et max dans ma bdd .<br />

Mais quant j'ai crée mon formulaire avec la demande d'un budget on peux cocher plusieurs choix de budget de 1-3 de 3_6 de 6-9 etc...
Cela donne dans ma table<br />

budget <br />
1-3<br />
budget_1 <br />
3_6 <br />
budget_2 <br />
6-9 <br />
budget_3<br />
9-12 ...... <br />

Quant on crée une fiche client je recuperer le information du budget, ou je cherche son min et son max.
budget_min <br />
1-3 <br />
budget_max <br />
9-12<br />

Je voudrai recuperer la valeur MAX et MIN sur plusieurs column, mais cela ne fonctionne pas. je n'arrive pas a récuperer son max et son min et a l'écrire dans la bonne column budget_min et budget_max.<br />

je fait cela :<br />
........<br />
$budget = trim($_POST['budget']);<br />
$budget_1 = trim($_POST['budget_1']);<br />
$budget_2 = trim($_POST['budget_2']);<br />
$budget_3 = trim($_POST['budget_3']);<br />
$budget_4 = trim($_POST['budget_4']);<br />
$budget_5 = trim($_POST['budget_5']);<br />
$budget_6 = trim($_POST['budget_6']);<br />
$budget_7 = trim($_POST['budget_7']);<br />
$budget_8 = trim($_POST['budget_8']);<br />
$budget_9 = trim($_POST['budget_9']);<br />
$budget_10 = trim($_POST['budget_10']);<br />
$budget_11 = trim($_POST['budget_11']);<br />
........<br />
$valmin = min(array($budget, $budget_1, $budget_2, $budget_3, $budget_4, $budget_5, $budget_6, $budget_7, $budget_8, $budget_9, $budget_10, $budget_11,));<br />
<br />
$sql='UPDATE db_purchaser SET budget_min=$val_min WHERE id_custo='. $_GET['id_custo'] .'';
$pdo->exec($sql);
<br />
pour le max
<br />
$val_max = max(array($budget, $budget_1, $budget_2, $budget_3, $budget_4, $budget_5, $budget_6, $budget_7, $budget_8, $budget_9, $budget_10, $budget_11,));
<br />
$sql1='UPDATE db_purchaser SET budget_max=$val_max WHERE id_custo='. $_GET['id_custo'] .'';<br />
$pdo->exec($sql1)<br />
<br />
.......................<br />

j'ai pas tous mie le code.<br />

merci de votre aide.<br />

7 réponses

azizs, il y a 10 ans

J'ai fait cela
quant je teste :
select MAX(greatest (budget, budget_1, budget_2, budget_3, budget_4, budget_5, budget_6, budget_7, budget_8, budget_9, budget_10, budget_11)) FROM db_purchaser WHERE id_custo=8
cela fonctionne très bien mais quant je met cela en php :
<br />
$bud_max ='select MAX(greatest (budget, budget_1, budget_2, budget_3, budget_4, budget_5, budget_6, budget_7, budget_8, budget_9, budget_10, budget_11)) FROM db_purchaser WHERE id_custo='. $_GET['id_custo'] .' ';
<br />
$sql2 =$pdo->prepare('UPDATE db_purchaser SET budget_max = :bud_max WHERE id_custo ='. $_GET['id_custo'] .'');
$sql2->execute(array('budget_max' => $bud_max));
J'ai le champ vide le budget_max de ma column

Et en MIN cela ne focntionne pas :
select MIN(greatest (budget, budget_1, budget_2, budget_3, budget_4, budget_5, budget_6, budget_7, budget_8, budget_9, budget_10, budget_11)) FROM db_purchaser WHERE id_custo=8
Le resultat est le meme quant MAX

Merci de m'aider

azizs, il y a 10 ans

Pouvez-vous m'aider j'arrive pas a trouver de solution.
Je voudrai récupérer le MAX et le MIN d'un id sur plusieurs champs.

exemple
id=8
Il a comme
<b>budget</b> 800
<b>budget_1 </b> 900
<b>budget _2 </b> 1800
<b>budget _3 </b> 2800
<b>budget _4 </b> 0
<b>budget _5 </b> 0

je voudrais récupérer son min 800 et son max 2800
et les écrire dans le column
<b>budget_min </b> 8000
<b>budget_max</b> 2800

Et après je pourrais réaliser mon moteur de recherche.
Merci a vous.

azizs, il y a 10 ans

Bonsoir,
y a t il quelqu'un qui peux m'aider SVP.

Merci,

azizs, il y a 10 ans

Il y a personne j'ai besoin d'aide merci a vous,

Je voudrai extraire le max et le min de plussieur column, et ecrire ces chiffres dans un autre column merci de votre aide.

Merci a vous,

azizs, il y a 10 ans

Bonsoir,

J'ai bien avancer maein encors quelque problème voilà mon code
.........

$max = max($budget, $budget_1, $budget_2, $budget_3, $budget_4, $budget_5, $budget_6, $budget_7, $budget_8, $budget_9, $budget_10, $budget_11);

$sql3 ='UPDATE db_purchaser SET budget_max='. $max .' WHERE id_purchaser='. $_GET['id_purch'] .' ';
$pdo->exec($sql3);

$min = min(array($budget, $budget_1, $budget_2, $budget_3, $budget_4, $budget_5, $budget_6, $budget_7, $budget_8, $budget_9, $budget_10, $budget_11));

$min = min(array($budget_11, $budget_10, $budget_9, $budget_8, $budget_7, $budget_6, $budget_5, $budget_4, $budget_3, $budget_2, $budget_1, $budget));

$sql4 ='UPDATE db_purchaser SET budget_min='. $min .' WHERE id_purchaser='. $_GET['id_purch'] .' ';
$pdo->exec($sql4);
.......

mon problème est que le budget et en IN et null dans ma BDD quant je fait mon teste il m'ecris 0 ou null le plus petiti chiffre( j'ai faity le teste avec les deux variable).
Je voudrais dire en php que 0 ou Null est pas mon resultat est qu'il récupere le chiffre le plus petit.

Merci de votre aide.

Lartak, il y a 10 ans

Bonjour.
Commences déjà par mettre le code PHP dans la balise code s'il te plaît.
Si tu n'as plus accès aux boutons, il te suffit de faire comme ceci :
```
Ton code PHP
```
Touche 7 pour les ```.
Merci.

azizs, il y a 10 ans

Déjà merci pour l'information.

Pour mon problème il est resolut la solution était.

<?php header('Content-Type: text/plain'); $buffer = array(null, budget,budget_1, budget_2, budget_3); $filtered = array_diff($buffer, array(null, 0)); $max = max($filtered); $min = min($filtered); var_dump($max, $min); ?>

Merci a vous