Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Prościzna ! A nie umiem - problem z sortowaniem
Forum PHP.pl > Forum > Przedszkole
Grzesiekb91
Cześć!
Ledwo co zacząłem swoją przygodę, a już mam problemy smile.gif
HTML'a nie znałem... Robię stronkę z książki, którą niedawno zakupiłem...
I mimo, że już przepisałem ten kod, na bank 100% pewny jestem, że nic nie pominąłem ;/

Mam problem ze stronką, ponieważ nie chcę mi sortować. Tutaj wklejam kod stronki :
  1. <?php
  2.  
  3. // sprawdź, czy użytkownik zalogował się, używając poprawnego hasła
  4. if ($_SESSION['authuser'] !=1 ){
  5. echo "przepraszamy, ale nie masz uprawnień do zobaczenia tej strony!";
  6. exit();
  7. }
  8. ?>
  9. <html>
  10. <head>
  11. <title>Witryna o filmach</title>
  12. </head>
  13. <body>
  14. <?php include "header.php"; ?>
  15. <?php
  16. $favmovies = array("Żywot Briana",
  17. "Szarże",
  18. "Życie Biurowe",
  19. "Monty Python i Święty Graal",
  20. "Matrix",
  21. "Terminator 2",
  22. "Gwiezdne wojny",
  23. "Bliskie spotkania trzeciego stopnia",
  24. "Szesnaście świeczek",
  25. "Golfiarze");
  26. if (isset($_REQUEST['favmovie'])) {
  27. echo "Witamy na witrynie użytkowniku ";
  28. echo $_SESSION['username'];
  29. echo "<br>";
  30. echo "Mój ulubiony film to ";
  31. echo $_REQUEST['favmovie'];
  32. echo "<br>";
  33. echo "Ocena dla tego filmu wynosi ";
  34. $movierate;
  35. } else {
  36. echo "Lista ". $_POST["num"] . " moich najlepszych filmów: ";
  37. echo "<br>";
  38. // ------------------------------------------------------
  39. if (isset($REQUEST['sorted'])) {
  40. sort($favmovies);
  41. }
  42. // -------------------------------------------------------
  43. $numlist = 1;
  44. while ($numlist <= $_POST["num"]) {
  45. echo $numlist;
  46. echo ". ";
  47. echo pos($favmovies);
  48. next ($favmovies);
  49. echo "<br> \n";
  50. $numlist = $numlist +1;
  51. }
  52. }
  53. ?>
  54. </body>
  55. </html>
MateuszS
Do wyświetlania zawartości tablicy używa się pętli foreach, bo chyba to chciałeś zrobić tym while'em?
CuteOne
Omg oni naprawdę uczą tak pisać o.O....

Błąd nie leży w tym skrypcie tylko w skrypcie z którego wysyłasz prawdopodobnie formularz. Aby sprawdzić co zawiera w sobie $_REQUEST wstaw ten kod na początku skryptu:
  1. echo '<pre>';
  2. print_r($_REQUEST);
  3. echo '</pre>';


Jeżeli w wyświetlonej tablicy nie znajdziesz [sorted] => cuś znaczy, że błąd leży w innym pliku ;]
Grzesiekb91
gdy wstawie srednik zamiast kropki wywala blad : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''Bruce Wszechmogacy', 5, 2003, 1, 2), (2. 'Zycie biurowe', 5, 1999, 5, 6), (3. '' at line 1

jesli dam kropke wychodzi ze dane zostaly wprowadzone poprawnie, tworze kolejny plik php
  1. <?php
  2. $connect = mysql_connect("localhost", "bp5am", "bp5ampass")
  3. or die("Sprawdz polaczenie z serwerem.");
  4. mysql_select_db("moviesite");
  5.  
  6. $query = "SELECT movie_name, movie_type ".
  7. "FROM movie ".
  8. "WHERE movie_year>1990 ".
  9. "ORDER BY movie_type";
  10. $results = mysql_query($query)
  11. while ($row = mysql_fetch_array($results)) {
  12. extract ($row);
  13. echo $movie_name;
  14. echo " - ";
  15. echo $movie_type;
  16. echo "<br>";
  17. }
  18. ?>



wyswietla mi sie pusta strona, a powinno wyswietlic filmy, KOMEDIODRAMAT
casperii
  1. $query = "SELECT `movie_name`, `movie_type` FROM `movie` WHERE movie_year>1990 ORDER BY movie_type";
  2. $results = mysql_query($query) or die(mysql_error());
Grzesiekb91
Chciałem sprawdzić czy może gdzieś w plikach innych nie namieszałem znów. Dziwne, bo gdy sprawdzałem to działało wszystko, okazało się, że jakiś błąd jest przy tworzeniu tabel, moze dlatego je zle wypelnilo ? choc dziwne bo wtedy by sie wyswietlil jakis blad, bo sprawdzalem, ale niewazne... bo wszedlem przez foldery do xamppa mysql usunalem cala swoja bazdanych "movie", by znow stworzyc tabele, i je wypelnic, gdy uruchamiam strone, pisze, ze ta baza danych juz istnieje, no i tu szkopul, bo sie tworzy znowu, klikam nastepnie kolejny plik zeby wypelnic, i wypelnia prawidlowo, lecz jak chce zrobic kolejny plik z tabela posortowana z filmami wg. gatunku, to ów kropka w górnym lewym monitorze nadal jest i nic oprocz niej, zadnych bledow nie wywala, jednak coś źle jest, ja już plik przepisywałem z tej durnej ksiazki chyba z 10 razy, także się poddaje... gdybym wiedzial chociaz co ta kropka oznacza, to moze mialbym jakis punkt zaczepienia...

czyli to co mi działało (PRAWIE) przed chwilą, z powrotem mam ten sam błąd co z początku...

TUTAJ KOD:

  1.  
  2. <?php
  3. $connect = mysql_connect("localhost", "bp5am", "bp5ampass")
  4. or die("Sprawdz polaczenie z serwerem");
  5.  
  6. mysql_select_db("moviesite");
  7.  
  8. $query = "SELECT * " .
  9. "FROM movie " .
  10. "WHERE movie_year>1990 " .
  11. "ORDER BY movie_type";
  12.  
  13. $results = mysql_query($query) or die(mysql_error());
  14.  
  15. echo "<table border=\"1\">\n";
  16. while ($row = mysql_fetch_assoc($results)) {
  17. echo "<tr>\n";
  18. foreach($row as $value) {
  19. echo "<td>\n";
  20. echo $value;
  21. echo "</td>\n";
  22. }
  23. echo "</tr>\n";
  24. }
  25. echo "</table>\n";
  26. ?>
  27.  
  28.  
  29.  
  30. WYŚWIETLA KROPKE W GÓRNYM LEWYM ROGU, i nie zmienialem go od czasu kiedy działał także WTF? wszystko dziala a jednak nie dziala nic sad.gif
  31.  
  32. [PHP]
  33.  
  34. <?php
  35. $connect = mysql_connect("localhost", "bp5am", "bp5ampass")
  36. or die("Sprawdz polaczenie z serwerem.");
  37.  
  38. $create = mysql_query("CREATE DATABASE IF NOT EXISTS moviesite")
  39. or die("Sprawdz polaczenie z serwerem");
  40.  
  41. mysql_select_db ("moviesite");
  42.  
  43. $movie = "CREATE TABLE movie (
  44. movie_id int(11) NOT NULL auto_increment,
  45. movie_name varchar(255) NOT NULL,
  46. movie_type tinyint(2) NOT NULL default 0,
  47. movie_year int(4) NOT NULL default 0,
  48. movie_leadactor int(11) NOT NULL default 0,
  49. movie_director int(11) NOT NULL default 0,
  50. PRIMARY KEY (movie_id),
  51. KEY movie_type (movie_type, movie_year)
  52. )";
  53. $results = mysql_query($movie)
  54. $movietype = "CREATE TABLE movietype (
  55. movietype_id int(11) NOT NULL auto_increment,
  56. movietype_label varchar(100) NOT NULL,
  57. PRIMARY KEY (movietype_id)
  58. )";
  59.  
  60. $results = mysql_query($movietype) or die(mysql_error());
  61.  
  62. $people = "CREATE TABLE people (
  63. people_id int(11) NOT NULL auto_increment,
  64. people_fullname varchar(255) NOT NULL,
  65. people_isactor tinyint(1) NOT NULL default 0,
  66. people_isdirector tinyint(1) NOT NULL default 0,
  67. PRIMARY KEY (people_id)
  68. )";
  69. $results = mysql_query($people) or die(mysql_error());
  70.  
  71. echo "Dane poprawnie wstawione!!!!!!!! KURWO.";
  72. ?>
  73. [p/php]
  74.  
  75.  
  76. [PHP]
  77.  
  78. <?php
  79.  
  80. $connect = mysql_connect("localhost", "bp5am", "bp5ampass")
  81. or die("Sprawdz polaczenie z serwerem.");
  82.  
  83. mysql_select_db("moviesite");
  84.  
  85. $insert = "INSERT INTO movie(movie_id, movie_name, movie_type, " .
  86. "movie_year, movie_leadactor, movie_director) " .
  87. "VALUES (1, 'Bruce Wszechmogacy', 5, 2003, 1, 2), " .
  88. "(2, 'Zycie Biurowe', 5, 1999, 5, 6), " .
  89. "(3, 'Wielki Kanion', 2, 1991, 4, 3), " .
  90. $results = mysql_query($insert)
  91.  
  92. $type = "INSERT INTO movietype (movietype_id, movietype_label) " .
  93. "VALUES (1, 'Science-fiction'), " .
  94. "(2, 'Dramat'), " .
  95. "(3, 'Przygoda), " .
  96. "(4, 'Wojenny), " .
  97. "(5, 'Komedia), " .
  98. "(6, 'Horror), " .
  99. "(7, 'Akcja'), " .
  100. "(8, 'Dla Dzieci'), " .
  101. $results = mysql_query($type)
  102.  
  103. $people = "INSERT INTO people (people_id, people_fullname, " .
  104. "people_isactor, people_isdirector) " .
  105. "VALUES (1, 'Jim Carrey', 1, 0), " .
  106. "(2, 'Tom Shadyac', 0, 1), " .
  107. "(3, 'Lawrence Kasdan', 0, 1), " .
  108. "(4, 'Kevin Kline', 1, 0), " .
  109. "(5, 'Ron Livingston', 1, 0), " .
  110. "(6, 'Mike Judge', 0, 1), " .
  111. $results = mysql_query($people)
  112. echo " Dane zostaly wstawione poprawnie";
  113. ?>
  114.  
  115.  


Jesli ktos pomoze zrozumieć, co to za kropka, bede całował po stopach przez tyle lat ile ma ten temat [php][/php]
nospor
nie: $insert = "INSERT INTO movie(movie_id, movie_name, movie_type, " .

"movie_year, movie_leadactor, movie_director) " .

"VALUES (1, 'Bruce Wszechmogacy', 5, 2003, 1, 2), " .

"(2, 'Zycie Biurowe', 5, 1999, 5, 6), " .

"(3, 'Wielki Kanion', 2, 1991, 4, 3), " .

$results = mysql_query($insert)

or die(mysql_error());


a:
$insert = "INSERT INTO movie(movie_id, movie_name, movie_type, " .

"movie_year, movie_leadactor, movie_director) " .

"VALUES (1, 'Bruce Wszechmogacy', 5, 2003, 1, 2), " .

"(2, 'Zycie Biurowe', 5, 1999, 5, 6), " .

"(3, 'Wielki Kanion', 2, 1991, 4, 3)";

$results = mysql_query($insert)

or die(mysql_error());


analogicznie reszta
Grzesiekb91
Gdy zamieniam kropke na srednik:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
com
jaka . na ; ?

odpal sobie np phpmyadmin i wykonaj tam zapytanie a potem przenieś do php. Oprócz . tam znikł jeszcze , na końcu
Grzesiekb91
Duplicate entry '1' for key 1, sprawdzałem google, wszystko w jezyku angielskim, z ktorym srednio sobie radze
com
masz duplikat czyli taki wpis już istnieje smile.gif
Grzesiekb91
kurcze, przepraszam, faktycznie działa, juz się zakręciłem... ale tak, że znów powrócilem do tej kropki, która sie pokazuje w lewym górnym rogu :

  1. <?php
  2. $connect = mysql_connect("localhost", "bp5am", "bp5ampass")
  3. or die("Sprawdz polaczenie z serwerem");
  4.  
  5. mysql_select_db("moviesite");
  6.  
  7.  
  8. $query = "SELECT movie.movie_name, movietype.movietype_label " .
  9. "FROM movie, movietype " .
  10. "WHERE movie.movie_type = movietype.movietype_id " .
  11. "AND movie.movie_year>1990 " .
  12. "ORDER BY movie_type";
  13.  
  14. $results = mysql_query($query) or die(mysql_error());
  15.  
  16. echo "<table border=\"1\">\n";
  17. while ($row = mysql_fetch_assoc($results)) {
  18. echo "<tr>\n";
  19. foreach($row as $value) {
  20. echo "<td>\n";
  21. echo $value;
  22. echo "</td>\n";
  23. }
  24. echo "</tr>\n";
  25. }
  26. echo "</table>\n";
  27. ?>
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.