Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]porblem z zamiana pozycji
zimekk
post 11.07.2009, 10:45:25
Post #1





Grupa: Zarejestrowani
Postów: 70
Pomógł: 2
Dołączył: 25.11.2008

Ostrzeżenie: (0%)
-----


mam skrypt ktory zamienia mi rekordy w bazie danych, wyzej lub nizej zalezy jaki link wcisne. tylko jest jedne problem jeden zostaje zmieniony, ale w drugim usuwa mi wszystkie dane , ktore chce dodac...
  1. <?php
  2. elseif($_GET['action'] == 'up' or $_GET['action'] == 'down') {
  3.  
  4.    $nr = $_GET['id'];
  5.    
  6.    if($_GET['action'] == 'up') {
  7.        $liczba = ($nr+1); //rekord o jedna pozycje wyzej
  8.    }
  9.    else {
  10.        $liczba = ($nr-1); //rekord o jedna pozycje nizej
  11.    }
  12.  
  13.    //pobranie z bazy danych rekordu ktory ma byc wyzej/nizej
  14.    $query = "SELECT * FROM news WHERE nr='" .$nr. "'";
  15.    $wynik = mysql_query($query);
  16.    //rozłozenie rekordu na osobne pozycje
  17.    $post = mysql_fetch_assoc($wynik);
  18.    $tytul = $post['tytul'];
  19.    $osoba = $post['osoba'];
  20.    $tresc = $post['tresc'];
  21.    $data = $post['data'];
  22.    
  23.    //pobranie rekordu o jedne poziom wyzej/nizej niż aktulany
  24.    $query = "SELECT FROM news WHERE nr='" .$liczba. "'";
  25.    $wynik = mysql_query($query);
  26.    //rozłożenie rekordu na osobne pozycje
  27.    $wyzszy = mysql_fetch_assoc($wynik);
  28.    $wTytul = $wyzszy['tytul'];
  29.    $wOsoba = $wyzszy['osoba'];
  30.    $wTresc = $wyzszy['tresc'];
  31.    $wData = $wyzszy['data'];
  32.    
  33.    //zamiana pozycji
  34.    //najpierw rekord ktory był wyżej/nizej
  35.    $query = "UPDATE news SET
  36.                tytul = '$wTytul',
  37.                tresc = '$wTresc',
  38.                osoba = '$wOsoba',
  39.                data = '$wData'
  40.                WHERE nr = $nr";
  41.    $wynik = mysql_query($query);
  42.    
  43.    //teraz rekord ktory chcemy zamienic
  44.    $query = "UPDATE news SET
  45.                tytul = '$tytul',
  46.                tresc = '$tresc',
  47.                osoba = '$osoba',
  48.                data = '$data'
  49.                WHERE nr = $liczba";
  50.    $wynik = mysql_query($query);
  51. }
  52. ?>


--------------------
Trochę historii...
Go to the top of the page
+Quote Post
lewy87r
post 11.07.2009, 11:07:00
Post #2





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 10.05.2008

Ostrzeżenie: (0%)
-----


ciekawa sprawa kurcze ;] generalnie wszystko wyglada ok ale moze php i mysql nie pozwala w jednym skrypcie zmienic danych ktore zostaly pobrane z tabeli ;]
nie wiem tego...

ale tak czy inaczej to rozwiazanie moim zdaniem jest bezsensu, lepiej wprowadzic do bazy pole KOL - kolejnosc

ktore bedzie INT uniq i poprostu zrobic "order by kol" i po sprawie cala kolejnosc na tym polu bez zmiany danych itp... ;]
Go to the top of the page
+Quote Post
zimekk
post 11.07.2009, 11:16:52
Post #3





Grupa: Zarejestrowani
Postów: 70
Pomógł: 2
Dołączył: 25.11.2008

Ostrzeżenie: (0%)
-----


Boże... sciana.gif sciana.gif

zapomiałem w lini 25 "*"
  1. <?php
  2. $query = "SELECT  FROM news WHERE nr=" .$liczba. "";
  3. ?>


nic tylko sie zastrzelic blinksmiley.gif


--------------------
Trochę historii...
Go to the top of the page
+Quote Post
Spawnm
post 11.07.2009, 11:45:34
Post #4





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Mówił już o tym lewy87r, nie nabijaj posŧów.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 06:56