18-05-2012, 17:21
Witam.
Mam dziwny problem..
Mam skrypt, który wyświetla newsy, gdy dodam pierwsze newsy jest normalnie, gdy zaczne dodawać następne się strasznie mieszają.
Czyli jak dodam tych kilka jest ok, najnowsze u gory, potem jak dodaje następne się coś pieprzy, i jak dodam tekst, zamiast pokazywać się u góry, to się pokazuje w środku..
Kod co wyświetla:
Kod który dodaje
Mam dziwny problem..
Mam skrypt, który wyświetla newsy, gdy dodam pierwsze newsy jest normalnie, gdy zaczne dodawać następne się strasznie mieszają.
Czyli jak dodam tych kilka jest ok, najnowsze u gory, potem jak dodaje następne się coś pieprzy, i jak dodam tekst, zamiast pokazywać się u góry, to się pokazuje w środku..
Kod co wyświetla:
Kod:
<?php
// rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent)
ob_start();
// Łączymy się z bazą
require 'config.php';
polaczSQL();
// przerabiamy dane z GETa na liczbę (zabezpieczenie)
$id = (int)$_GET['id'];
// tworzymy zapytanie na kategorię, żeby wydobyć z niej nazwę
$result = mysql_query("SELECT * FROM articles_categories WHERE id='$id'");
// przerabiamy na tablicę
$row = mysql_fetch_array($result);
{
//Wyświetlamy wpisy
}
// i wyświetlamy nagłówek
echo '<h2>'.stripslashes($row['tytul']).'</h2>';
// tworzymy zapytanie na artykuły z tej kategorii
$result = mysql_query("SELECT * FROM articles WHERE id_cat='$id' ORDER BY tytul ASC");
// i je wyświetlamy
while($row = mysql_fetch_array($result))
{
echo '<img src="images/pasek.png" alt="Tekst" /><br>';
// wyświetlanie oceny
echo '<a href="art.php?id='.$row['id'].'"><b>'.stripslashes($row['tytul']).'</b></a> ('.date("d.m.Y, H:i", $row['data']).')<br />';
echo '<a href="art.php?id='.$row['id'].'"><b>Oceń.. </b></a>';
echo '<h3>Ocena: ';
// jeśli nie było jeszcze żadnej oceny to wyświetla 0, w przeciwnym wypadku zaokrąglamy do 2 miejsc po przecinku dzielenie sumy/ilość ocen
echo ($row['ocen']==0) ? 0 : round(($row['suma']/$row['ocen']),2);
echo '</h3>';
echo stripslashes($row['opis']).'<br /><br />';
}
// koniec buforowania
ob_end_flush();
?>
Kod który dodaje
Kod:
<?php
// rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent)
ob_start();
// start sesji
session_start();
//Łączymy się z bazą
require 'config.php';
polaczSQL();
// nagłówek
echo '<a href="dodaj.php?page=artykuly_dodaj"><h2>Dodaj tekst</h2></a>';
{
// przy odpowieniej stronie wyświetlamy daną funkcję
switch($_GET['page'])
{
// dodawanie artykułu
case 'artykuly_dodaj':
artykuly_dodaj();
}
}
// DODAWANIE ARTYKUŁU
function artykuly_dodaj()
{
// jeśli zostanie naciśnięty przycisk "Dodaj"
if(isset($_POST['ok']))
{
// filtrujemy dane aby zapytanie do mysql nam się nie psuło, tj. zamieniamy ` na \`
$tytul = mysql_real_escape_string($_POST['tytul']);
$opis = mysql_real_escape_string($_POST['opis']);
$tresc = mysql_real_escape_string($_POST['tresc']);
// pobieramy id kategorii
$kategoria = $_POST['kategoria'];
// pobieramy date
$data = time();
// tworzymy zapytanie
$query = "INSERT INTO `articles` (`tytul`, `opis`, `tresc`, `id_cat`, `data`, `suma`, `ocen`) VALUES ('$tytul', '$opis', '$tresc', '$kategoria', '$data', '0', '0')";
// jeśli zapytanie zostanie poprawnie wykonane to wyświetlamy komunikat
if(mysql_query($query)) echo 'Pomyślnie dodano tekst! <a href="dodaj.php">wróć</a>';
return 1; // zapobiegamy wyświetlania się formularza
}
// wyświetlamy napis
echo '<b>Dodaj nowy tekst</b>';
// wyświetlamy prosty formularz
echo '<form action="" method="POST">
Tytuł: <br />
<input type="text" name="tytul" style="width:400px;"><br />
Treść: <br />
<input type="text" name="opis" style="width:400px;"><br />
Kategoria: <br />
<select name="kategoria">';
// wykonanie zapytania na kategorie artykułów i wyświetlenie ich w rozwijanym menu
$result = mysql_query("SELECT * FROM articles_categories");
while($row = mysql_fetch_array($result))
{
echo '<option value="'.$row['id'].'">'.stripslashes($row['tytul']).'</option>';
}
echo '</select><br />
Opis: <br />
<textarea name="tresc" style="width:400px;height:200px;"></textarea><br />
<input type="submit" name="ok" value="Dodaj">
</form>';
}
// rozłączenie z bazą danych
// koniec buforowania
ob_end_flush();
?>