Я пытаюсь создать облако слов с помощью 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
функция в моей форме. Но я не знаю, может ли сценарий распознать слово, например, «привет», сколько раз оно присутствует в моем столбце «повторное слово».
Вот только идея, как можно это сделать.
$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 ?>
не проверил это. Но я думаю, вы должны знать, что я имею в виду, и вы найдете ошибку самостоятельно, если они есть. 😉
Предположим, следующий случай:
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
}