ďťż

[SQL, PHP] Problem z poleceniem LIMIT

       

Podstrony


telcocafe

Mam taki kod:
<?php include "start.html"; $connect = mysql_connect("localhost","root","password") or die ("Sprawdź połączenie z serwerem."); mysql_select_db("moviesite"); $offset = $_REQUEST['offset']; $query = "SELECT movie_name, movie_year FROM movie ORDER BY movie_name LIMIT $offset, 1"; $results = mysql_query($query) or die(mysql_error()); echo "<table border=\"1\">\n"; while ($row = mysql_fetch_assoc($results)) { echo "<tr>\n"; foreach ($row as $value) { echo "<td>".$value."</td><td>".$value."</td>" ; } echo "\n</tr>\n"; } echo "</border>\n"; echo "<a href='page.php?offset=0'>Strona 1.</a><br>"; echo "<a href='page.php?offset=1'>Strona 2.</a><br>"; echo "<a href='page.php?offset=2'>Strona 3.</a><br>"; include "end.html"; ?>
Niestety wyskakuje mi błąd:

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 ' 1' at line 1
Coś jest nie tak z składnią w tym miejscu:
"SELECT movie_name, movie_year FROM movie ORDER BY movie_name LIMIT $offset, 1";
To pewnie jakiś szczegół, ale proszę o pomoc.



Kiepski kod. Stringi umieszczaj w apostrofach. Nie lepiej połączyć tekst ze zmiennymi w ten sposób - za pomocą kropki?'A B C' . (int) $zmienna . 'D E F';Zainteresuj się rozszerzeniem MySQLi do obsługi baz danych. :) Znacznie lepsze. To, którego używasz, wyleci z PHP6. Upewnij się, czy zmienna $offset w ogóle istnieje i czy zawiera liczbę. Możesz dostawić (int) przed $offset dla bezpieczeństwa.
Użytkownik Ferrari edytował ten post 17 czerwiec 2008, 16:05
Poprawiłem na apostrofy ;).

A ten link to do czego? Lingwistą nie jestem, aby to zrozumieć :).

A kod nie działa nie wiem czemu. Przekazuje zmienną offset, jednak wartość nie chce się podstawić do zapytania :/.

Coś się udało ;)
<?php include 'start.html'; if(isset($_REQUEST['offset'])) { $connect = mysql_connect('localhost','root','password') or die ('Sprawdź połączenie z serwerem.'); mysql_select_db('moviesite'); $offset = $_REQUEST['offset']; $query = 'SELECT movie_name, movie_year FROM movie ORDER BY movie_name LIMIT '.$offset.',1'; $results = mysql_query($query) or die(mysql_error()); } else { echo 'Nie przekazano zmiennej.'; } echo '<table border=\"1\">\n'; while ($row = mysql_fetch_assoc($results)) { echo '<tr>\n'; foreach ($row as $value) { echo '<td>'.$value.'</td>'; } echo '\n</tr>\n'; } echo '</border>\n'; echo '<a href="page.php?offset=0">Strona 1.</a><br>'; echo '<a href="page.php?offset=1">Strona 2.</a><br>'; echo '<a href="page.php?offset=2">Strona 3.</a><br>'; include 'end.html'; ?>

Tyle, że żeby ładnie chodziło muszę przekazać zmienna do page.php. Bo jak tego nie zrobię to wyskakuje:

Nie przekazano zmiennej.\n
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\page.php on line 22
\nStrona 1.
Strona 2.
Strona 3.

Jak to napisać, aby po wejściu tylko na page.php miał wybór tych 3 opcji które tam są, bez komunikatu błędu :)?

// O jaaaaaaaa... Już mam :P.. Ale głupek ze mnie :P!

A do czego ten link? (nadal podtrzymuje pytanie :) )

ZNÓW EDIT ;)
// Jest jeszcze jeden mankament.

Chciałbym, aby te linki były zawsze na dole strony, a tabele wyświetlene były nad nimi :) takie łącza nawigacyje. Jak to zrobić?
Użytkownik rys.marcin edytował ten post 18 czerwiec 2008, 15:06
Witam.
Jako, że nie napisałeś rozwiązania, wklejam poniżej kod który u mnie działa:

<?php $connect = mysql_connect('localhost','user','password') or die ('Sprawdź połączenie z serwerem.'); mysql_select_db('moviesite'); $offset = $_REQUEST['offset']; if(isset($_REQUEST['offset'])) { $query = 'SELECT movie_name, movie_year ' . 'FROM movie ' . 'ORDER BY movie_name ' . 'LIMIT '.$offset.',1'; $results = mysql_query($query) or die(mysql_error()); echo '<table border=\"1\">'; while ($row = mysql_fetch_assoc($results)) { echo '<tr>'; foreach ($row as $value) { echo '<td>'.$value.'</td>'; } echo '</tr>'; } echo '</border>'; echo '<a href="page.php?offset=0">Strona 1.</a><br>'; echo '<a href="page.php?offset=1">Strona 2.</a><br>'; echo '<a href="page.php?offset=2">Strona 3.</a><br>'; } else { echo '<a href="page.php?offset=0">Strona 1.</a><br>'; echo '<a href="page.php?offset=1">Strona 2.</a><br>'; echo '<a href="page.php?offset=2">Strona 3.</a><br>'; } ?>

Dzięki za pomoc rys.marcin.
Użytkownik goralek1 edytował ten post 22 lipiec 2008, 18:23


Witam!
Chlopaki mam ten sam problem i wklejam ten kod co powyzej i nie wyswietla mi zadnej tabeli. Widze tylko linki do poszczegolnych stron bez zadnej tabeli, a po kliknieciu mam:
Not Found
The requested URL /page.php was not found on this server.
Apache/2.0.50 (Win32) PHP/5.2.6 Server at localhost Port 80

Pomozecie???

Pozdrawiam!
saren_as

Jeżeli się nie wyświetla, to znaczy, że nie spełniasz warunku if(isset($_REQUEST['offset'])). Czyż nie?
// Edytowano
@niżej:
Wiem, że saren_as jest początkujący, ale każdemu trzeba dać szansę (mimo że nie zna angielskiego).
Użytkownik andrzej_aa edytował ten post 13 sierpień 2008, 09:30
Nie. Poprzednik (post #5) nie ma kompletnego pojęcia o tworzeniu stron internetowych. Pisze jak byk, że URL /page.php nie został znaleziony. Może byś go najpierw utworzył, co? ;)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.