Bonjour à tous,

Je suis complètement largué sur ce point et je ne vois absolument pas comment faire.
Je vais essayé d'être plus précis possible,

J'ai plusieurs tables dont voici celle qui intéresse cette problématique:

Nom : color.png
Affichages : 654
Taille : 284,7 Ko

Celles qui nous intéresses se sont les tables
sensors
chart_backgroundColor
chart_borderColor
colors
Je fais actuellement cette jointures, ou on va dire, des jointures, et ca marche très bien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
$sql_select = 'SELECT se.sensor_longname, se.chart_pointStyle_id_chart_pointStyle, se.chart_pointRadius, se.chart_fill, se.chart_showLine, se.chart_borderWidth, se.chart_pointHoverRadius, se.id_sensor, fi.field_name, st.station_name, st.station_longname, sfam.sensor_family_name, stype.measure_unit, stype.id_sensor_type, m.value, c.id_collection,c.ttn_m_time FROM fields AS fi 
	INNER JOIN stations AS st ON fi.id_field = st.fields_id_field
	INNER JOIN sensors AS se ON st.id_station = se.stations_id_station
	INNER JOIN sensor_types AS stype ON se.sensor_types_id_sensor_type = stype.id_sensor_type
	INNER JOIN sensor_families AS sfam ON stype.sensor_families_id_sensor_family = sfam.id_sensor_family
	INNER JOIN measures AS m ON se.id_sensor = m.sensors_id_sensor
	INNER JOIN collections AS c ON m.collections_id_collection = c.id_collection
	WHERE st.station_name = "st-'.$station.'" AND se.sensor_active = 1
	'.$clauseAND.'	
	'.$clauseAND2.'
	ORDER BY c.ttn_m_time, c.id_collection , se.id_sensor ASC';
 
	$sql_result = $connect->query($sql_select);
et plus bas, je récupère les valeurs
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
 
$color=array(
		'255, 99, 132', //red.
		'255, 159, 64',	//orange.
		'255, 205, 86',	//yellow.
		'75, 192, 192',	// green
		'54, 162, 235',	//blue.
		'153, 102, 255',//purple.
		'201, 203, 207', //grey.
		'15, 37, 172', 	//darkBlue
		'15, 109, 169',	//lightblue
		'103, 22, 9',	//darkred
		'251, 49, 22',	//lightred
		'13, 45, 4', 	//darkgreen
		'15, 37, 172',	//darkgreen
		'45, 188, 16', 	//lightgreen
		'20, 237, 133' //light2green
	);
while($row = $sql_result->fetch_assoc())
			{
 
 
 
				/*
				foreach($row as $r => $rr){
					echo $row['id_sensor']."=> ".$r.": ".$rr."<br>";
				}
 
				$j++;
				*/
 
 
				$data[$row['id_sensor']]['unit'] = $row['measure_unit'];
				//$data[$row['id_sensor_type']]['name'] = $row['sensor_type_name'];
				$data[$row['id_sensor']]['station'] = $row['station_longname']." [".$row['station_name']."]";
				$data[$row['id_sensor']]['time'][] = $row['ttn_m_time'];
				//$data[$row['id_collection']][$row['id_sensor_type']]['collection_id'][] = $row['id_collection'];
				$data[$row['id_sensor']]['datasets']['label'] = $row['sensor_longname']." [".$row['measure_unit']."]";
				$data[$row['id_sensor']]['datasets']['fill'] = $row['chart_fill'];
				$data[$row['id_sensor']]['datasets']['data'][] = $row['value'];
				$data[$row['id_sensor']]['datasets']['type'] = "line";
				$data[$row['id_sensor']]['datasets']['borderWidth'] = $row['chart_borderWidth'];
				$data[$row['id_sensor']]['datasets']['pointRadius'] = $row['chart_pointRadius'];
				$data[$row['id_sensor']]['datasets']['pointHoverRadius'] = $row['chart_pointHoverRadius'];
 
				//$data[$row['id_sensor']]['datasets']['pointStyle'] = $row['chart_pointStyle_id_chart_pointStyle'];
				$data[$row['id_sensor']]['datasets']['pointStyle'] = "rectRot";
				$data[$row['id_sensor']]['datasets']['showLine'] = $row['chart_showLine'];
				//$data[$row['id_sensor_type']]['datasets']['borderColor'] = $color[$row['id_sensor_type']];
				$data[$row['id_sensor']]['datasets']['borderColor'] = 'rgba('.$color[$row['id_sensor']].', 1)';
				//$data[$row['id_sensor_type']]['datasets']['backgroundColor'] = $color[$row['id_sensor_type']];
				$data[$row['id_sensor']]['datasets']['backgroundColor'] = 'rgba('.$color[$row['id_sensor']].', 1)';
			} // End while
Jusqu'à là tout fonction bien car les valeurs des couleurs sont "prises" dans l'array $color. Ca fonction jusqu'à ce que je découvre qu'en réalité les valeurs de couleurs ne sont pas "prises" depuis la DB, mais depuis un array "bébile". Évidemment, il n'y a pas de sense de garder cette array $color, puisque j'utilise une base de données où sont informés les couleurs, dans la tables sensors.

En d'autres mots, la tables 'sensors' contient des informations sur des capteurs, dont la couleur de fond et du bord, qui varie pour chaque capteurs.

Ce que je ne sais pas faire, est comment ajouter une nouvelles jointures de sensors à colors

Jursqu'à maintenant, j'ai fais des jointures d'une table à une autre, mais la, je dois faire une jointures de sensors en passant par chart_backgroundColor et/ou char_borderColor pour récupérer la valeur du champ color_value de la table colors.

En fait, je devrais ajouter deux jointures????
Une de sensors à chart_backgroundColor
et une autre de sensors $ chart_borderColor?
et après, de ces deux dernières table à colors???

Avez-vous besoin de plus de précisions?
Merci beaucoup pour vos lumières!!!!