Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wpisy do bazy dodają się nie po kolei
Forum PHP.pl > Forum > Bazy danych > MySQL
kamil1114
Mam taki problem ,że wpisy do bazy danych dodają się nie po kolei , co skutkuje wyświetlaniem komentarzy w niepoprawnej kolejności. Nie jestem pewien , ale wydaje mi się że dzieje się tak odkąd dodałem skrypt wyświetlania emoitek.

Tutaj zamieszczam kod:
  1. <?php
  2. if(isset($_GET['id'])){
  3. $id=$_GET['id'];
  4. mysql_connect('serwer','login','haslo');
  5.  
  6.  
  7. $wyswietl=mysql_query("select * from newsy where id='$id'");
  8.  
  9. while($i=mysql_fetch_assoc($wyswietl)){
  10.  
  11. $tytul=$i['tytul'];
  12. $tresc=$i['tresc'];
  13. $data=$i['data'];
  14.  
  15. echo "<div align='right'><img src='./cal.gif'></img> $data</div>";
  16. echo "<h2><center><dig style='color:olivedrab'>$tytul </div></center></h2><br/><br/>";
  17. echo "$tresc<br/><br/><hr color='olivedrab'/>";
  18.  
  19. }
  20.  
  21. echo "<br/><br/>";
  22. echo "<center><img src='./kom.gif' alt='komentarze'></center>";
  23. $kom=mysql_query("select * from komentarze where id_newsa='$id'");
  24. while($a=mysql_fetch_assoc($kom)){
  25.  
  26.  
  27. $nick=$a['nick'];
  28. $tresc1=$a['tresc'];
  29. $ip=$a['ip'];
  30.  
  31.  
  32. $tresc1=str_replace(":)","<img src='./emotki/dwukropek).gif'></img>",$tresc1);
  33. $tresc1=str_replace(":(","<img src='./emotki/dwukropek(.gif'></img>",$tresc1);
  34. $tresc1=str_replace(";p","<img src='./emotki/;p.gif'></img>",$tresc1);
  35. $tresc1=str_replace(";]","<img src='./emotki/;].gif'></img>",$tresc1);
  36. $tresc1=str_replace("^_^","<img src='./emotki/^_^.gif'></img>",$tresc1);
  37.  
  38.  
  39. echo "<b>$nick</b>";
  40. echo "<b> : </b>";
  41. echo "$tresc1";
  42. echo "<br/><hr size=3/>";
  43. }
  44.  
  45.  
  46. echo "<br/><br/><br/><hr/><br/><center>";
  47. echo "<b>Dodawanie komentarzy:</b></br>";
  48.  
  49. echo "<form method='post'>";
  50.  
  51. echo "Twój nick: </br>";
  52.  
  53. echo "<input type='text' name='nick'> </br>";
  54.  
  55. echo "Tresć komentarza: </br>";
  56.  
  57. echo "<textarea name='komentarz' cols='40' rows='15'></textarea> </br>";
  58.  
  59. echo "<input type='submit' value='Dopisz'>";
  60.  
  61. echo "</form>";
  62. echo "</center>";
  63.  
  64. $nick=strip_tags($_POST['nick']);
  65. $text=nl2br(strip_tags($_POST['komentarz']));
  66. $ip=$_SERVER['REMOTE_ADDR'];
  67.  
  68.  
  69. if(!empty($nick) && !empty($tresc)){
  70. $id_newsa=$_GET['id'];
  71. mysql_query("insert into komentarze (id,nick,tresc,ip,id_newsa) values (0,'$nick','$text','$ip','$id_newsa')");
  72.  
  73. echo '<script type="text/javascript">
  74. window.location.href = "index1.php";
  75. </script>';
  76.  
  77. }
  78.  
  79.  
  80. }
  81. ?>


Proszę o pomoc. Co jest nie tak ?
erix
Ekhm, czemu nie dodajesz daty komentarza i wg niej nie sortujesz...?
nospor
Cytat
co skutkuje wyświetlaniem komentarzy w niepoprawnej kolejności.
Bo waść panie komentarze należy wyswietlac posortowane po dacie a nie na chybił trafił. Date dodania komentarza chyba masz ?
patryczakowy
a nie lepiej do komentarzy dodać pole data dodania i wyświetlać wedle tej daty
kamil1114
Nie utworzyłem w bazie takiego pola jak data. Ale za to mam pole id. Można według id to wyświetlać ?

Tutaj jest screen z bazy danych. http://img685.imageshack.us/img685/2953/beztytuu1212r.png
nospor
Cytat
Można według id to wyświetlać
Mozna. Ale mozna tez zrobic porządnie i dodac date winksmiley.jpg
kamil1114
Ok , dziękuję za pomoc.

Mam tylko jeszcze jedno małe pytanie , ale odnośnie samej bazy danych.

Jak dodaję wpisy to id z każdym kolejnym wpisem zwiększa się , co jest logiczne i zamierzone. Ale jak usunę jakiś rekord z bazy danych i potem dodam kolejny rekord to id będzie większe o 2 od poprzedniego numeru id , a nie o 1 , tak jak powinno być. Da się coś z tym zrobić ? Bo jak dodaje na próbę jakieś komentarze i potem je usuwam , to id cały czas rośnie , a po usunięciu tych komentarzy id nie zmienia się. Ciężko było mi to wyjaśnić , więc może być trochę zagmatwane smile.gif

PS. A co sądzicie o "skrypcie" emoitek ? Wiem , że jest bardzo prymitywny , ale chyba może być ?
nospor
Są to tak zwane "dziury" i jest to naturalny efekt, nad którym nie masz się wogole zastanawiać ani tym bardziej martwić.
kamil1114
Rozumiem , w takim razie dziękuję wszystkim za pomoc.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.