I have a MySQL database table, where are configured all needed colors in hexadecimal, rgb decimal and cmyk color models. All I wanna do is storing all suitable results according to the query to variables. Please show newbie how can he do that right and effectively... Thanks in advance
DB
My disgrace
$result=$mysqli->query("SELECT * FROM config_colors WHERE `color_model_type`='hex' OR `color_model_type`='rgb'" );
while ($row=mysqli_fetch_array($result)) {
if (($row['color']==='white') || ($row['color']==='black')) {
if ($row['color_model_type']==='hex') {
print_r ('$c_h_'.$row['color'].' = '.$row['color_value']);
}
else if ($row['color_model_type']==='rgb') {
print_r ('$c_r_'.$row['color'].' = '.$row['color_value']);
}
else {}
}
else {
if ($row['color_model_type']==='hex') {
if ($row['monochromatic_level']==='lightest') {
print_r ('$c_h_lt_'.$row['color'].' = '.$row['color_value']);
}
else if ($row['monochromatic_level']==='lighter') {
print_r ('$c_h_lr_'.$row['color'].' = '.$row['color_value']);
}
else if ($row['monochromatic_level']==='light') {
print_r ('$c_h_l_'.$row['color'].' = '.$row['color_value']);
}
else if ($row['monochromatic_level']==='medium') {
print_r ('$c_h_m_'.$row['color'].' = '.$row['color_value']);
}
else if ($row['monochromatic_level']==='dark') {
print_r ('$c_h_d_'.$row['color'].' = '.$row['color_value']);
}
else if ($row['monochromatic_level']==='darker') {
print_r ('$c_h_dr_'.$row['color'].' = '.$row['color_value']);
}
else if ($row['monochromatic_level']==='darkest') {
print_r ('$c_h_dt_'.$row['color'].' = '.$row['color_value']);
}
else {}
}
else if ($row['color_model_type']==='rgb') {
if ($row['monochromatic_level']==='lightest') {
print_r ('$c_r_lt_'.$row['color'].' = '.$row['color_value']);
}
else if ($row['monochromatic_level']==='lighter') {
print_r ('$c_r_lr_'.$row['color'].' = '.$row['color_value']);
}
else if ($row['monochromatic_level']==='light') {
print_r ('$c_r_l_'.$row['color'].' = '.$row['color_value']);
}
else if ($row['monochromatic_level']==='medium') {
print_r ('$c_r_m_'.$row['color'].' = '.$row['color_value']);
}
else if ($row['monochromatic_level']==='dark') {
print_r ('$c_r_d_'.$row['color'].' = '.$row['color_value']);
}
else if ($row['monochromatic_level']==='darker') {
print_r ('$c_r_dr_'.$row['color'].' = '.$row['color_value']);
}
else if ($row['monochromatic_level']==='darkest') {
print_r ('$c_r_dt_'.$row['color'].' = '.$row['color_value']);
}
else {}
}
else {}
}
}
Additional questions about query: Is query written in terms of safety against SQL injection? What if my WHERE clause contains an integer?
You can use variable variables to dynamically assign values to new variables
instead of
print_r ('$c_h_'.$row['color'].' = '.$row['color_value']);
try
$var = 'c_h_'.$row['color'];
$$var = $row['color_value'];