Используйте только первое слово, выведенное из MySQL. - PullRequest
1 голос
/ 21 марта 2012

Я хочу использовать заглавные буквы в каждом слове первого слова, представленного MySQL и PHP, а остальные слова в нижнем регистре. Как это могло быть достигнуто?

Он хранится в базе данных только с заглавной первой буквы, поэтому реальная хитрость заключается в том, чтобы оставить остальные слова строчными.

Вот код, извлекающий слова из базы данных на сегодняшний день:

<?php

$query0  = "SELECT LCASE(ord) FROM `keywords` ORDER BY RAND()";
$result0 = mysql_query($query0);

while($row0 = mysql_fetch_array($result0, MYSQL_ASSOC))
{
$keyword = $row0['LCASE(ord)'];

echo "$keyword, ";

}
?>

Ответы [ 8 ]

1 голос
/ 21 марта 2012

Если я что-то не так понимаю ...

<?
$count = 0;
while($row0 = mysql_fetch_array($result0, MYSQL_ASSOC))
{
    if ($count == 0) {
        $keyword = ucfirst($row0['LCASE(ord)']); // this will capitalize just the first letter
        $keyword = strtoupper($row0['LCASE(ord)']); // this will make the first word in all CAPS (choose which one you want)
    }
    else
        $keyword = strtolower($row0['LCASE(ord)']);

    echo "$keyword, ";
    $count++;

}
?>
0 голосов
/ 23 мая 2012

вы можете использовать

ucwords(-yourdata-);

, это запечатлеть каждое слово данных.

0 голосов
/ 21 марта 2012

Решение закончилось так:

$query0  = "SELECT LCASE(ord) FROM `keywords` ORDER BY RAND()";
$result0 = mysql_query($query0);

while($row0 = mysql_fetch_array($result0, MYSQL_ASSOC))
{
$keywords[] = $row0['LCASE(ord)'];
}
echo ucfirst(implode(', ', $keywords));
echo ".";
?>

Это представляет собой строку слов, которая выглядит следующим образом:

Deltagende, Sosial, Pragmatisk, Kunnskapsrik, Løsningsorientert, Samarbeidende, Engasjert.

Вместо:

deltagende, sosial, pragmatisk, kunnskapsrik, løsningsorientert, samarbeidende, engasjert,

Это решение было результатом модификации решения другого вопроса относительно того, как удалить последнюю запятую, которую я написал здесь Удалить последнюю запятую или предотвратить ее печать вообще MySQL / PHP

0 голосов
/ 21 марта 2012

Попробуйте создать псевдоним LCASE (ord) следующим образом:

<?php

$query0  = "SELECT LCASE(ord) LCaseValue FROM `keywords` ORDER BY RAND()";
$result0 = mysql_query($query0);

while($row0 = mysql_fetch_array($result0, MYSQL_ASSOC))
{
    $keyword = $row0['LCaseValue'];
    echo "$keyword, ";
}
?>
0 голосов
/ 21 марта 2012
$query0  = "SELECT LCASE(ord) FROM `keywords` ORDER BY RAND()";
$result0 = mysql_query($query0);

$i=0;
while($row0 = mysql_fetch_array($result0, MYSQL_ASSOC))
{
   if($i == 0){
      $keyword = ucfirst(strtolower($row0['LCASE(ord)']));
      $i++;
   }
   else
      $keyword = strtolower($row0['LCASE(ord)']);

   echo "$keyword, ";

}
0 голосов
/ 21 марта 2012

Я не понимаю, зачем вам это нужно, но лучше с PHP:

$query0  = "SELECT ord FROM `keywords` ORDER BY RAND()";
$result0 = mysql_query($query0);

while($row0 = mysql_fetch_array($result0, MYSQL_ASSOC))
{
$keyword = ucfirst(strtolower($row0['ord']));

echo "$keyword, ";

}

ucfirst: заглавная первая буква
strtolower: вся строка в нижнем регистре

0 голосов
/ 21 марта 2012

Если я вас правильно понимаю, используйте метод php ucfirst ($ string)

0 голосов
/ 21 марта 2012

Если данные хранятся в базе данных с первой заглавной буквой (как вы хотите?), Почему вы намеренно понижаете их в своем запросе?

Если я полностью сбит с толку, вам нужна функция ucfirst:

echo ucfirst($keyword);

Редактировать

$index = strpos($word, ' ');
echo ucfirst(substr($word,0,$index)) . substr($word, $index);
...