Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][PostgreSQL]identyfikator wiersza
Forum PHP.pl > Forum > Przedszkole
lelun
Witam.

Przedtswie moj problem na przykladzie.

Napisalem program ktory pobiera dane z formularza i zapisuje je w tabeli bazy danych.

powiedzmy ze dodaje 10 wierszy do tabeli o nazwie "pz" ( tabela ma kolumny nr, nazwa towaru, cena, ilosc)

podczas gdy kazdy kolejny towar ma uporzadkowany numer ( od 1 do 10), wszystko trybi jak powinno.

natomiast gdy powiedzmy usune towar z numerem 5. podczas wyswietlania danych ( a wyswietlac moge tylko po jednym wierszu, na tym polega program) wykracza mi sie program, poniewaz towar z numerem 5 nie istnieje.

zrobilem to na zasadzie sesji, poczatkowo $_SESSION['pointer'] przyjmuje wartosc 1, i wyswietla za pomoca zapytania: 

  1. $query="SELECT * FROM pz z WHERE z.nr=".$_SESSION['pointer'].";";


szukam jakiegos alternatywnego rozwiazania, jako iz raczkuje w bazach danych, nie wiem czy jest zapytanie ktore by wyswietlilo pierwszy wiersz tabeli? drugi?trzeci? ale nie wszystko ?

pozdrawiam.

Szeszek1992
  1. SELECT * FROM pz z ORDER BY z.nr LIMIT X, Y;

Gdzie X jest rekordem, od którego ma zaczynać minus jeden(pierwszy rekord "jest" 0), a Y - ilością rekordów do pobrania.
np. aby pobrać trzeci rekord
  1. SELECT * FROM pz z ORDER BY z.nr LIMIT 2, 1;
lelun
arghhh, wyskakuje blad zapytania sql, a zapytalem tak:

  1. $query="SELECT * FROM pz z ORDER BY z.nr LIMIT 2, 1;";


Szeszek1992
Co jest napisane w treści błędu?
nospor
W postgre skłafnia LIMIT jest inna niż w mysql - wystarczy zajrzeć do manuala by zobaczyc jaka smile.gif
lelun
  1. <?php
  2.  $connString="host=localhost dbname=pz user=postgres password=postgres";
  3. $conn = pg_connect($connString);
  4. if (!$conn)
  5. {
  6. echo "Wystąpił błąd połączenia z bazą <br>"; exit;
  7. }//else OK;
  8. $query="SELECT * FROM pz z ORDER BY z.nr LIMIT 2, 1;";
  9. echo $query."<br>";
  10. $result = pg_query($conn,$query);
  11. if (!$result)
  12. {
  13. echo "Wystąpił błąd zapytania SQL";
  14. }
  15. $row = pg_fetch_row($result);
  16. echo $row[0]." ".$row[1]." ".$row[2]." ".$row[3]." ";
  17. ?>



a wyskakuje "Wystąpił błąd zapytania SQL"

Szeszek1992
Nospor ma rację.Przepraszam za błąd;)
http://pgsqld.active-venture.com/queries-limit.html

  1. SELECT * FROM pz z ORDER BY z.nr LIMIT 1 OFFSET 2
nospor
Cytat
a wyskakuje "Wystąpił błąd zapytania SQL"
Na przyszlosc zamiast nic nie mowiącego komunikatu wyswietlaj blad zapytania...
http://pl2.php.net/manual/en/function.pg-last-error.php
lelun
dziekuje Wam, trybi ;-)
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.