Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Dziwne..
#1
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:
<?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();
?>
Odpowiedz
#2
nie chciało mi się całego kodu przeglądać i nie wiem na jakiej zasadzie działa twoja baza ale z tego co widze to problem masz w sortowaniu chyba
sortowanie to zadanie sql więc masz złe zapytanie sql
możliwe że sortujesz według złej pozycji
powinieneś sortować przez id raczej
ORDER BY id

tutaj chyba jest błąd:
Kod:
// tworzymy zapytanie na artykuły z tej kategorii
$result = mysql_query("SELECT * FROM articles WHERE id_cat='$id' ORDER BY tytul ASC");
tutaj masz jakies sortowanie po tytulach (dziwne)
moze zamiast tytul wpisz id to bedzie ci wyswietlało według kolejności dodania
Odpowiedz
#3
Ok, poradziłem sobie, złe sortowanie było
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Dziwne zachowanie Marys 9 5,908 09-05-2019, 13:45
Ostatni post: Kordian91
  Dziwne znaki na stronce-wordpress mat2224 2 2,636 26-07-2012, 02:56
Ostatni post: Pedro84
Question Dziwne przekierowanie... michalzielony 10 8,159 22-08-2009, 17:59
Ostatni post: michalzielony

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości
Sponsorzy i przyjaciele
SeoHost.pl