Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [sql]Dwa razy ten sam rekord
Forum PHP.pl > Forum > Przedszkole
klekot
Witam! Mam pytanie. Czemu na stronie http://www.napijmysie.cba.pl/teledyski/tel...p;orderby=dance
wyswietla mi sie dwa razy ten sam rekord? W bazie jest tylko jeden o danych parametrach.
Sorry ze daje taki dlugo kod, ale nie wiem ile wam potrzeba.

  1. <?
  2. $orderby = $_GET['orderby'];
  3.  
  4.  
  5.  
  6. if ($orderby==Techno){
  7.  $mysql = mysql_query("SELECT * FROM `teledyski` WHERE kategoria='techno'")or die(mysql_error());
  8.  while($fetch = mysql_fetch_array($mysql)) {
  9.  print('<br><br><br> '.$fetch['wykonawca'].' - '.$fetch['tytul'] );
  10.  print("<br>".$fetch['czas']);
  11.  print("<br>".$fetch['opis']);
  12.  print("<br>".$fetch['adres']);
  13.  
  14.  }
  15.  
  16.  
  17.  
  18. }
  19.  
  20. if ($orderby==country){
  21.  $mysql = mysql_query("SELECT * FROM `teledyski` WHERE kategoria='$orderby'")or die(mysql_error());
  22.  while($fetch = mysql_fetch_array($mysql)) {
  23.  print('<br><br><br> '.$fetch['wykonawca'].' - '.$fetch['tytul'] );
  24.  print("<br>".$fetch['czas']);
  25.  print("<br>".$fetch['opis']);
  26.  print("<br>".$fetch['adres']);
  27.  }
  28.  
  29.  
  30.  
  31. }
  32.  
  33. if ($orderby==dance){
  34.  $mysql = mysql_query("SELECT * FROM `teledyski` WHERE kategoria='$orderby'")or die(mysql_error());
  35.  while($fetch = mysql_fetch_array($mysql)) {
  36.  print('<br><br><br> '.$fetch['wykonawca'].' - '.$fetch['tytul'] );
  37.  print("<br>".$fetch['czas']);
  38.  print("<br>".$fetch['opis']);
  39.  print("<br>".$fetch['adres']);
  40.  }
  41.  
  42.  
  43.  
  44. }
  45.  
  46. if ($orderby==disco_polo){
  47.  $mysql = mysql_query("SELECT * FROM `teledyski` WHERE kategoria='$orderby'")or die(mysql_error());
  48.  while($fetch = mysql_fetch_array($mysql)) {
  49.  print('<br><br><br> '.$fetch['wykonawca'].' - '.$fetch['tytul'] );
  50.  print("<br>".$fetch['czas']);
  51.  print("<br>".$fetch['opis']);
  52.  print("<br>".$fetch['adres']);
  53.  }
  54.  
  55.  
  56.  
  57. }
  58.  
  59. if ($orderby==dla_dzieci){
  60.  $mysql = mysql_query("SELECT * FROM `teledyski` WHERE kategoria='$orderby'")or die(mysql_error());
  61.  while($fetch = mysql_fetch_array($mysql)) {
  62.  print('<br><br><br> '.$fetch['wykonawca'].' - '.$fetch['tytul'] );
  63.  print("<br>".$fetch['czas']);
  64.  print("<br>".$fetch['opis']);
  65.  print("<br>".$fetch['adres']);
  66.  }
  67.  
  68.  
  69.  
  70. }
  71.  
  72. if ($orderby==hip-hop){
  73.  $mysql = mysql_query("SELECT * FROM `teledyski` WHERE kategoria='$orderby'")or die(mysql_error());
  74.  while($fetch = mysql_fetch_array($mysql)) {
  75.  print('<br><br><br> '.$fetch['wykonawca'].' - '.$fetch['tytul'] );
  76.  print("<br>".$fetch['czas']);
  77.  print("<br>".$fetch['opis']);
  78.  print("<br>".$fetch['adres']);
  79.  }
  80.  
  81.  
  82.  
  83. }
  84.  
  85. if ($orderby==jazz){
  86.  $mysql = mysql_query("SELECT * FROM `teledyski` WHERE kategoria='$orderby'")or die(mysql_error());
  87.  while($fetch = mysql_fetch_array($mysql)) {
  88.  print('<br><br><br> '.$fetch['wykonawca'].' - '.$fetch['tytul'] );
  89.  print("<br>".$fetch['czas']);
  90.  print("<br>".$fetch['opis']);
  91.  print("<br>".$fetch['adres']);
  92.  }
  93.  
  94.  
  95.  
  96. }
  97.  
  98. if ($orderby==metal){
  99.  $mysql = mysql_query("SELECT * FROM `teledyski` WHERE kategoria='$orderby'")or die(mysql_error());
  100.  while($fetch = mysql_fetch_array($mysql)) {
  101.  print('<br><br><br> '.$fetch['wykonawca'].' - '.$fetch['tytul'] );
  102.  print("<br>".$fetch['czas']);
  103.  print("<br>".$fetch['opis']);
  104.  print("<br>".$fetch['adres']);
  105.  }
  106.  
  107.  
  108.  
  109. }
  110.  
  111. if ($orderby==pop){
  112.  $mysql = mysql_query("SELECT * FROM `teledyski` WHERE kategoria='$orderby'")or die(mysql_error());
  113.  while($fetch = mysql_fetch_array($mysql)) {
  114.  print('<br><br><br> '.$fetch['wykonawca'].' - '.$fetch['tytul'] );
  115.  print("<br>".$fetch['czas']);
  116.  print("<br>".$fetch['opis']);
  117.  print("<br>".$fetch['adres']);
  118.  }
  119.  
  120.  
  121.  
  122. }
  123.  
  124. if ($orderby==rock){
  125.  $mysql = mysql_query("SELECT * FROM `teledyski` WHERE kategoria='$orderby'")or die(mysql_error());
  126.  while($fetch = mysql_fetch_array($mysql)) {
  127.  print('<br><br><br> '.$fetch['wykonawca'].' - '.$fetch['tytul'] );
  128.  print("<br>".$fetch['czas']);
  129.  print("<br>".$fetch['opis']);
  130.  print("<br>".$fetch['adres']);
  131.  }
  132.  
  133.  }
  134.  
  135.  
  136. ?>


pomoze ktos?
Cienki1980
Po pierwsze dlaczego taki długi kod .. przecież można to załatwić za pomocą jednego zapytania i jednego wyświetlania, skoro i tak do zapytania dajesz zmienną $orderby ... więc po co te ify ?

Po drugie, wyświetl zapytanie, wyświetl całą tablicę która jest zwracana przez zapytanie .. może znajdziesz dlaczego się tak dzieje.
klekot
Cytat
wyświetl zapytanie, wyświetl całą tablicę która jest zwracana przez zapytanie
Mam wstawic query do echo ?
Piniek
nie wynik zapytania do
  1. <?php
  2. print_r($wynik);
  3. ?>
klekot
po wstawieniu
  1. <?php
  2. print_r($mysql);
  3. ?>

wyskoczylo pod pierwszym wpisem to: Resource id #4

A pod drugim nic sie nie zmienilo
Cienki1980
A spróbuj zrobić tak .. cały kod który pokazałeś na samym początku zastąp takim:
  1. <?php
  2. $mysql = mysql_query("SELECT * FROM `teledyski` WHERE kategoria='$orderby'")or die(mysql_error());
  3. //ponizsza linia jest tylko do sprawdzenia jak wygląda zapytanie
  4. echo "SELECT * FROM `teledyski` WHERE kategoria='$orderby'";
  5.  
  6.  while($fetch = mysql_fetch_array($mysql)) {
  7. //ponizsza linia jest tylko do sprawdzenia co zwraca zapytanie
  8.  echo "<pre>";print_r($fetch);echo "</pre>";
  9.  
  10.  print('<br><br><br> '.$fetch['wykonawca'].' - '.$fetch['tytul'] );
  11.  print("<br>".$fetch['czas']);
  12.  print("<br>".$fetch['opis']);
  13.  print("<br>".$fetch['adres']);
  14.  }
  15. ?>
klekot
Zrobilem tak i wyswietlilo to:

  1. <?php
  2. SELECT * FROM `teledyski` WHERE kategoria='dance'
  3.  
  4. (
  5. [0] => 11
  6. [id] => 11
  7. [1] => Bezimienni - Lustro
  8. [tytul] => Bezimienni - Lustro
  9. ///Tutaj jest teledysk//////
  10.  [2] =>(to jest z lewej strony teledysku na wysokosci strzalki play z youtube)
  11. ////tutaj drugi teledysk(taki sam jak ten ostatni)////
  12. [adres] =>(tak samo jak w przypadku [2]=> )
  13.  [3] => Dance
  14. [kategoria] => Dance
  15. [4] =>
  16. [opis] =>
  17. [5] => 
  18. [czas] => 
  19. [6] => 0
  20. [ocena] => 0
  21. [7] => 2playa2
  22. [wykonawca] => 2playa2
  23. )
  24.  
  25. //ponizej jest normalnie wyswietlony ten sam teledysk, ale juz bez tablic, czyli t
    ak jak powinien
  26. ?>


pomoze ktos?
Cienki1980
Czyli i zapytanie i wyświetlanie wygląda OK. Usuń te linie z echo co ja dodałem i zobacz czy cały czas masz podwójne wpisy. Jeżeli tak to pokaż cały kod tej strony.
klekot
ok, dziala, dzieki, ale jeszcze jak bys mi mogl wytlumaczyc czemu to moje jest zle, to bylo by fajnie
Cienki1980
Cytat(klekot @ 14.03.2008, 21:40:04 ) *
ok, dziala, dzieki, ale jeszcze jak bys mi mogl wytlumaczyc czemu to moje jest zle, to bylo by fajnie


Hmm nie wiem dlaczego nie działało to co Ty tam miałeś. Ja stawiałbym na to, że w if'ach brakowało Ci ' .. czyli
  1. <?php
  2. if($orderby=='Techno')
  3. .
  4. .
  5. ?>


Do tego typu rzeczy polecałbym składnie switch.. case lub if .. elseif ... else
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-2025 Invision Power Services, Inc.