Cześć wszystkim, wraz z tym forum oraz manualem udało mi się napisać na pozór dobry skrypt do wyświetlania oraz do wybierania tagów z bazy danych.
Część która odpowiada za wyświetlanie tagów, wraz z ich losowym stylem działa i wygląda tak:
<?php
// tagi z bazy
$tz= 'select * from `wiadomosci` ORDER by `id` DESC';
$tw = mysqli_query($mysql, $tz);
$tag2 = "";
while ($tags = mysqli_fetch_array($tw)) {
$tag = $tags['tagi'];
$tag2 = $tag2.$tag;
}
// tagi do tablicy
array_walk($tablica, function(&$v){ $v = '<a href="?body=search&type='.$v.'">'.$v.'</a>';}); $wielkosc_tablicy = count( $tablica ); $wielkosc_tablicy = $wielkosc_tablicy - 1;
if ($wielkosc_tablicy >= 15) {
$ile_losow = 10;
} else {
$ile_losow = $wielkosc_tablicy;
}
// losowanie tagow z tablicy
for ($i=0; $i<$ile_losow; $i++) {
$font_size = rand (14
, 36
); $font_style = rand (1
, 8
); if ($font_style <= 5) {
$styl = "font-style: normal;";
}
if ($font_style == 6) {
$styl = "font-weight: bold;";
}
if ($font_style == 7) {
$styl = "font-style: italic;";
}
if ($font_style == 8) {
$styl = "text-decoration: underline;";
}
$font_style2 = rand (1
, 3
); if ($font_style2 == 1) {
$styl2 = "text-align: right;";
}
if ($font_style2 == 2) {
$styl2 = "text-align: left;";
}
if ($font_style2 == 3) {
$styl2 = "text-align: center;";
}
echo '<font style="font-size:'.$font_size.'pt; '.$styl.$styl2.'">'.$tablica[$rand_keys[$i]]."</font>\n"; }
?>
a link po kliknięciu takiego tagu wygląda tak:
Kod
?body=search&type=test
i takie zapytanie przechodzi do pliku search.php którego częścią jest kod odpowiadający za GET TYPE:
//type
if ((!empty($_GET['type'])) && (empty($_GET['kat'])) && (empty($_GET['arch']))) { $tag = $_GET['type'];
$zapytanie = 'select * from `wiadomosci` WHERE `typ` !=3 ORDER by `id` DESC';
$wynik = mysqli_query($mysql, $zapytanie);
$licznik = 0;
$cufon = 0;
$cufon2 = 0;
while ($wiersz = mysqli_fetch_array($wynik)) {
$tagi = explode(",", $wiersz['tagi']); $licznik++;
for ($i=0; $i<=$licznik; $i++) {
if ($tagi[$i]==$tag) {
//
$cufon++;
$cufon2++;
//
if ($wiersz['typ'] == 1) {
$tytul = $wiersz['tytul'];
}
if ($wiersz['typ'] == 2) {
$tytul = $wiersz['tytul'].'<img src="images/loged_req.png" border="0" title="Wymagane zalogowanie." alt="Wymagane zalogowanie.">';
}
//
// ilosc komentow
$ilosc_koment = mysqli_num_rows(mysqli_query($mysql, 'SELECT * FROM `komentarze` WHERE `id_wiadomosci` = "'.$wiersz['id'].'"'));
//
$tresc = $wiersz['tresc'];
$ile = 300;
if ($licz>=$ile) {
$tnij = substr($tresc,0
,$ile); $txt = $tnij."...";
} else {
$txt = $tresc;
}
<div class="article">
<table style="text-align: left;" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td style="width: 580px;"><h2 id="cufon'.$cufon.'"><span><a href="blog.php?body=artykul&id='.$wiersz['id'].'">'.$tytul.'</a></span></h2></td>
<td style="width: 80px;"><span id="cufon2-'.$cufon2.'" class="koment">[ '.$ilosc_koment.' ]</span></td>
</tr>
</tbody>
</table>
<div class="clr"></div>
<p class="createdby" >Napisano <strong>'.$wiersz['data'].'</strong> przez <strong>'.$wiersz['autor'].'</strong>.</p>
<p>'.$txt.'</p>
<p><br><a href="blog.php?body=artykul&id='.$wiersz['id'].'"><input class="submit" type="submit" value="Czytaj dalej.."></a></p>
</div>';
}
}
}
}
?>
i każdy GET type który wybiore ma znaleźć mi artykuł do którego pasuje z tagów w bazie danych:
Artykuł 1 | Tagi:Kod
,tag1,tag2,tag3,tag4,tag5,tag6,tag7,tag8,tag9,
ja sami widzicie muszę zaczynać od przecinka i kończyć przecinkiem co nie jest wygodne. a problem leży w tym że skrypt zadziała tylko dla GET['type'] === tag1, dla każdego innego już to się nie sprawdzi.
Czy jest ktoś łaskaw przeanalizować kod i wspomóc?
Z góry dziękuje za fatygę w czytaniu tego "czegoś" co stworzyłem :-)
Sory że w nowym poście ale jak znam życie to temat by się znacznie poszerzył.
Rozwiązałem problem.
$licznik++;
for ($i=0; $i<=$licznik; $i++) {
if ($tagi[$i]==$tag) {
na
for ($i=0; $i<=$licznik; $i++) {
if ($tagi[$i]==$tag) {