PHP ve MySQL kullanarak bir MySQL veritabanı içine girdi kaç kez göre daha büyük metin görüntülemek nasıl?

2 Cevap php

Tamam, ben daha kat daha büyük ve belirli bir soru için az daha küçük girilen etiketleri girilen etiketlerini görüntülemek gereken bu komut dosyası var. Ama nedense bu son etiket büyük girilen ve girilen tüm etiketleri görüntüler görüntüler önce küçük aşağı sayma olsaydı gibi. Ben bu sorunu düzeltmek gerekir.

Ben bu hakkı açıkladı umut?

Burada MySQL tablo olduğunu.

CREATE TABLE questions_tags (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
tag_id INT UNSIGNED NOT NULL,
users_questions_id INT UNSIGNED NOT NULL,
PRIMARY KEY (id)
);

CREATE TABLE tags (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
tag VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);

İşte benim PHP betik.

<?php

$db_host = "localhost";
$db_user = "root";
$db_pass = "";
$db_name = "sitename";

mysql_connect($db_host, $db_user, $db_pass) or die(mysql_error());
mysql_select_db($db_name);

function tag_info() {
$result = mysql_query("SELECT questions_tags.*, tags.* FROM questions_tags INNER JOIN tags ON tags.id = questions_tags.tag_id WHERE questions_tags.users_questions_id=3 ORDER BY users_questions_id DESC");
while($row = mysql_fetch_array($result)) {
$arr[$row['tag']] = $row['id'];
}
ksort($arr);
return $arr;
}

function tag_cloud() {

$min_size = 10;
$max_size = 30;

$tags = tag_info();

$minimum_count = min(array_values($tags));
$maximum_count = max(array_values($tags));
$spread = $maximum_count - $minimum_count;

if($spread == 0) {
$spread = 1;
}

$cloud_html = '';
$cloud_tags = array();

foreach ($tags as $tag => $count) {
$size = $min_size + ($count - $minimum_count)
* ($max_size - $min_size) / $spread;
$cloud_tags[] = '<a style="font-size: '. floor($size) . 'px'
. '" class="tag_cloud" href="http://www.example.com/tags/' . $tag .'/'
. '" title="\'' . $tag . '\' returned a count of ' . $count . '">'
. htmlspecialchars(stripslashes($tag)) . '</a>';
}
$cloud_html = join("\n", $cloud_tags) . "\n";
return $cloud_html;

}

?>

<div id="wrapper">
<?php print tag_cloud(); ?>
</div>

2 Cevap

Lütfen etiketler aşamalı küçük olsun, neden dizideki değer thats Sizin etiket id girme.

Tag.id göre gruplandırma ve bir sayım çalışan sorguyu düzeltmek gerekir.

$result = mysql_query("SELECT tag, count(*) as tagcount, tags.id FROM tags, questions_tags WHERE questions_tags.tag_id = tags.id AND questions_tags.users_questions_id=3 GROUP BY tags.id");

ve sadece dizi değeri olarak tagcount atamak

while($row = mysql_fetch_array($result)) {
$arr[$row['tag']] = $row['tagcount'];
}

Belki de sorun WHERE yan tümcesinde kodlanmış kimliği nedir?

questions_tags.users_questions_id=3