Моя таблица базы данных выглядит так:

enter image description here

В поле «чистая математика A2» столбца «course_name» пустое место. Я хочу получить имя курса в значении переключателя.

Мой запрос mysql был:

<?php
    $result2 = mysql_query("SELECT * FROM tbl_course WHERE label_id= 1");
    while($row = mysql_fetch_array($result2))
    {
    echo "<input type='radio' value='".$row['course_name']."' ".$class." name='vh_course_radio' >" .$row['course_name'];
    } 
?>

Но есть некоторые проблемы. В переключателе значение разбито, как на этом изображении:

enter image description here

Любое тело может мне помочь? Пожалуйста, дайте мне решение. Я хочу, чтобы значение было похоже на (значение = "чистая математика A2").

3
Rajib.Hassan 27 Окт 2015 в 13:31

4 ответа

Лучший ответ

Используйте mysql REPLACE() или замените ' ' to '_'

SELECT *,REPLACE(course_name,' ','_') as course_name 
FROM tbl_course WHERE label_id= 1 

Выход: - pure_math_A2

1
Abhishek Sharma 27 Окт 2015 в 10:41

Вместо того

while($row = mysql_fetch_array($result2))
{
    echo "<input type='radio' value='".$row['course_name']."' ".$class." name='vh_course_radio' >" .$row['course_name'];
}

Используйте метод ниже, он может вам помочь,

<?php while($row = mysql_fetch_array($result2)):  ?>
    <input type='radio' value="<?php echo $row['course_name'];?>" name=' vh_course_radio' ><?php echo $row['course_name']; ?>
<?php endwhile; ?>
0
NaijaProgrammer 27 Окт 2015 в 12:27

Вам нужно replace space, чтобы "_" (что-то еще)

<input type='radio' value='pure_math_A2'>pure math A2

А с другой стороны, после отправки вы можете replace "_" в space, чтобы ваша проблема была решена

0
Abhishek Sharma 27 Окт 2015 в 10:43

Я полагаю, вы надеетесь вставить заменяющее значение там, где отсутствует значение столбца. Существует два способа, по которым значение может отсутствовать в столбце. Один - когда столбец имеет значение NULL, а другой - когда все пробелы. Вы не сказали, как ваша таблица записывает недостающие значения, поэтому я предложу решение, которое обрабатывает и то, и другое.

Таким образом, вы можете изменить свой SQL-запрос, чтобы определить ситуацию.

IFNULL(course_name,'') 

Преобразует значение NULL в пустую строку (без пробелов). потом

TRIM(IFNULL(course_name,''))

Генерирует текстовую строку, не содержащую символов, если значение столбца содержит пробелы или NULL. В заключение,

 CASE WHEN LENGTH(TRIM(IFNULL(course_name,''))) = 0 THEN 'substitute'
      ELSE                                               course_name
  END 

Сгенерирует ваше замещающее значение. Так что используйте этот SQL-запрос

SELECT col, col, 
       CASE WHEN LENGTH(TRIM(IFNULL(course_name,''))) = 0 THEN 'substitute'
            ELSE                                               course_name
       END AS course_name
  FROM tbl_course
 WHERE label_id= 1 
1
O. Jones 27 Окт 2015 в 10:47