1

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, ";

}
?>
4

8 に答える 8

1

私が何かを誤解していない限り...

<?
$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++;

}
?>
于 2012-03-21T00:34:21.857 に答える
0

データが最初の文字を大文字にしてデータベースに保存されている場合(どのように使用しますか?)、クエリで意図的に小文字にするのはなぜですか?

私が完全に混乱している場合、あなたが望む関数はucfirstです:

echo ucfirst($keyword);

編集

$index = strpos($word, ' ');
echo ucfirst(substr($word,0,$index)) . substr($word, $index);
于 2012-03-21T00:30:30.530 に答える
0

私があなたを正しく理解しているなら、phpメソッドucfirst($ string)を使用してください

于 2012-03-21T00:33:37.207 に答える
0

なぜこれが必要なのか混乱していますが、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:小文字の文字列全体

于 2012-03-21T00:33:53.570 に答える
0
$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, ";

}
于 2012-03-21T00:38:15.237 に答える
0

次のように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, ";
}
?>
于 2012-03-21T02:52:22.087 に答える
0

解決策は次のようになりました。

$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で印刷されないようにします。

于 2012-03-21T10:16:41.620 に答える
-1

あなたが使用することができます

ucwords(-yourdata-);

これにより、データのすべての単語が大文字になります。

于 2012-05-23T05:31:19.140 に答える