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:
Celles qui nous intéresses se sont les tables
Je fais actuellement cette jointures, ou on va dire, des jointures, et ca marche très biensensors
chart_backgroundColor
chart_borderColor
colors
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 $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);
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.
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
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!!!!
Partager