HTML — другой стиль для одних данных Php / SQL

Я пытаюсь создать облако слов с помощью PHP, CSS и SQL. Пользователь может ввести любое слово, и оно будет интегрировано в облако слов.

Проблема в том, что слово облако работает с CSS li класс (слова разделяются преобразованием текста, цветом, размером и т. д.).

Ниже моя попытка. Проблема в том, что все повторяется, и я не знаю, как я могу поместить каждое слово из моей базы данных SQL в другой класс <li> (см. скриншот).

<!DOCTYPE html>
<html>
<head><link rel="stylesheet" type="text/css" href="wordcloud.css">
<title>Nuage de mot</title>
</head>
<body>
<?php
$bdd = new PDO('mysql:host=localhost;dbname=wordcloud', 'root', 'root');

$reponse = $bdd->query('SELECT * FROM form_element');
$donnees = $reponse->fetch();

?>
<ul class="word-cloud">
<?php while ($donnees = $reponse->fetch())
{
?>
<li class="word-cloud__word  word-cloud__word--x-small"><?php echo $donnees['mot']?></li>
<li class="word-cloud__word  word-cloud__word--small"><?php echo $donnees['mot']?></li>
<li class="word-cloud__word  word-cloud__word--large"><?php echo $donnees['mot']?></li>
<li class="word-cloud__word"><?php echo $donnees['mot']?></li>
<?php
}
$reponse->closeCursor();
?>
</ul>
<div>
<a href="form.html"><input type="button" value="Ajouter un nouveau mot"></a>
</div>
</body>
</html>

введите описание изображения здесь


Эта часть в порядке, когда я помещаю слово в форму, они находятся в облаке.

Но теперь вы были правы, я должен интегрировать понятие происшествий …

Слова повторяются хх раз должны быть больше …

Я должен изменить свою базу данных?

Я думал, чтобы создать столбец «повторяющиеся слова» и создать if функция в моей форме. Но я не знаю, может ли сценарий распознать слово, например, «привет», сколько раз оно присутствует в моем столбце «повторное слово».

-1

Решение

Вот только идея, как можно это сделать.

$counter = 0;
<?php while ($donnees = $reponse->fetch())
{

$counter++;

if($counter == 1) { ?>
<li class="word-cloud__word  word-cloud__word--x-small"><?php echo $donnees['mot']?></li>
<?php }
if($counter == 2) { ?>
<li class="word-cloud__word  word-cloud__word--small"><?php echo $donnees['mot']?></li>
<?php }
if($counter == 3) { ?>
<li class="word-cloud__word  word-cloud__word--large"><?php echo $donnees['mot']?></li>
<?php }
if($counter == 4) { ?>
<li class="word-cloud__word"><?php echo $donnees['mot']?></li>
<?php $counter = 0;
}
?>

Может быть, есть некоторые синтаксические ошибки с <?php ?> не проверил это. Но я думаю, вы должны знать, что я имею в виду, и вы найдете ошибку самостоятельно, если они есть. 😉

0

Другие решения

Предположим, следующий случай:

row < 10 then small font
row > 10 and row < 20 then medium font
row > 20 then large font

Шаг 1:

Подсчитайте общую строку из базы данных, которую вы хотите классифицировать.
Например :

$response = $bdd->query('SELECT count(id) AS total_row FROM form_element');

Теперь предположим, что вы получите 17 записей.

Так и в PHP. Сделай это так ;

Шаг 2 :

if($donnees['total_row'] < 10 ){
echo "<li class="word-cloud__word  word-cloud__word--x-small"><?php echo $donnees['mot']?></li>";    // Output Small Font
}
else if($donnees['total_row'] > 10 && $donnees['total_row'] < 10 ){
echo " <li class="word-cloud__word  word-cloud__word--small"><?php echo $donnees['mot']?></li>";    // Output Medium Font
}
else if($donnees['total_row'] > 20 ){
echo " <li class="word-cloud__word  word-cloud__word--large"><?php echo $donnees['mot']?></li>";    // Output Large Font
}
else{
echo " <li class="word-cloud__word "><?php echo $donnees['mot']?></li>";    // Output Same Font
}
0

По вопросам рекламы [email protected]