Ocena wątku:
- 0 głosów - średnia: 0
- 1
- 2
- 3
- 4
- 5
W górę / W dół - Skrypt do panelu strony
|
Liczba postów: 23
Liczba wątków: 8
Dołączył: 08-07-2009
Reputacja:
0
Liczba postów: 38
Liczba wątków: 0
Dołączył: 10-07-2009
Reputacja:
0
W bazie dodaj kolumnę: pozycja.
Przy dodaniu pozycji zwiększaj ją o 1.
Przy naciśnięciu w górę:
- pobierasz pozycję i id wciśniętego elementu,
- wyciągasz z bazy element z pozycją o jedną większą,
- zamieniasz elementy pozycjami,
analogicznie w dół.
Przy takim rozwiązaniu nie musisz się martwić co się stanie jak usuniesz jakiś element  Mam gdzieś implementacje tego, bo pisałem nie raz, ale poćwicz sam to dużo się nauczysz ;]
Liczba postów: 23
Liczba wątków: 8
Dołączył: 08-07-2009
Reputacja:
0
11-07-2009, 20:18
(Ten post był ostatnio modyfikowany: 11-07-2009, 20:46 przez tinware.)
Zerknij okiem, skrypt niby jakoś działa, ale się nie raz myli przy przenoszeniu w dol, niewiem czemu:
Kod: elseif($_GET['action'] == 'up' or $_GET['action'] == 'down') {
$nr = $_GET['id'];
if($_GET['action'] == 'up') {
$liczba = ($nr+1); //rekord o jedna pozycje wyzej
}
else {
$liczba = ($nr-1); //rekord o jedna pozycje nizej
}
//pobranie z bazy danych rekordu ktory ma byc wyzej/nizej
$query1 = "SELECT * FROM news WHERE nr=" .$nr. "";
$wynik = mysql_query($query1);
//rozłozenie rekordu na osobne pozycje
$post = mysql_fetch_assoc($wynik);
$tytul = $post['tytul'];
$osoba = $post['osoba'];
$tresc = $post['tresc'];
$data = $post['data'];
//pobranie rekordu o jedne poziom wyzej/nizej niż aktulany
$query2 = "SELECT * FROM news WHERE nr=" .$liczba. "";
$wynik = mysql_query($query2);
echo mysql_error(). ': ' .mysql_errno();
//rozłożenie rekordu na osobne pozycje
$wyzszy = mysql_fetch_assoc($wynik);
$wTytul = $wyzszy['tytul'];
$wOsoba = $wyzszy['osoba'];
$wTresc = $wyzszy['tresc'];
$wData = $wyzszy['data'];
//zamiana pozycji
//najpierw rekord ktory był wyżej/nizej
$query3 = "UPDATE news SET
tytul = '$wTytul',
tresc = '$wTresc',
osoba = '$wOsoba',
data = '$wData'
WHERE nr = $nr";
$wynik = mysql_query($query3);
//teraz rekord ktory chcemy zamienic
$query4 = "UPDATE news SET
tytul = '$tytul',
tresc = '$tresc',
osoba = '$osoba',
data = '$data'
WHERE nr = $liczba";
$wynik = mysql_query($query4);
echo mysql_errno();
}
Liczba postów: 38
Liczba wątków: 0
Dołączył: 10-07-2009
Reputacja:
0
Źle... Nie zrozumiałeś mnie do końca.
Kod: if($_GET['action'] == 'up') {
$liczba = ($nr+1); //rekord o jedna pozycje wyzej
} else {
$liczba = ($nr-1); //rekord o jedna pozycje nizej
}
To nie działa tak. Tutaj narzucasz z góry pozycje ("nr" - dodajesz, albo odejmujesz jedno), ale pomyśl co będzie, jeżeli usuniesz jakiś rekord i będziesz próbował coś przesunąć - wtedy nie zadziała, bo nie znajdzie rekordu o 1 mniejszego/większego.
Podrzucę Ci mój kod (przesuwanie w dół):
Kod: case 'down':
// Pozycja przesuwanego elementu
$poz = (int)$_GET['poz'];
// Pobieramy ID większej pozycji aby zamienić się z nią
$q = mysql_query("SELECT * FROM `newsy` WHERE `poz`>'$poz' ORDER BY `poz` ASC LIMIT 1");
if ( mysql_num_rows($q) > 0 ) {
$r = mysql_fetch_array($q);
$idNowej = $r['id'];
$pozNowej = $poz;
$pozPrzesuwanej = $r['poz'];
$q = mysql_query("UPDATE `newsy` SET `poz`='$pozPrzesuwanej' WHERE `poz` = '$poz'".$b."");
$q = mysql_query("UPDATE `newsy` SET `poz` = '$pozNowej' WHERE `id` = '$idNowej'".$b."");
header('Location:admin.php?a=menu');
} else {
print '<div class="tip">Nie można już przesunąć w dół.</div>';
}
break;
Liczba postów: 59
Liczba wątków: 12
Dołączył: 02-01-2009
Reputacja:
0
Musisz stworzyć osobną kolumnę w tej bazie danych w której będziesz przetrzymywać kolejność pozycji.
Wtedy przesunięcie +1 i -1 zawsze prawidłowo zadziała.
Liczba postów: 43
Liczba wątków: 12
Dołączył: 26-02-2009
Reputacja:
0
kolumna oczywiscie integer co nie BlueMan ;>  a chciałem sie spytac" doswiadczonych" programistów czy pisanie strukturalne bardzo wieje wiochą ??
Piękno tkwi w prostocie
Liczba postów: 1,054
Liczba wątków: 0
Dołączył: 28-05-2009
Reputacja:
22
Wieje wiochą.
OOP to podstawa.
Liczba postów: 43
Liczba wątków: 12
Dołączył: 26-02-2009
Reputacja:
0
21-07-2009, 03:19
(Ten post był ostatnio modyfikowany: 21-07-2009, 03:24 przez neo_17.)
osz kurde ;/ to musze sie wziąć ale no php "znam" zaledwie rok i to sie tak uczylem po godzinach ( po szkole )  mam jeszcze czas 
a programowanie obiekotowe to g klasy no nie ;> no a skad taki kurs wziac pisania obiekotowego  aj cos mi sie wydaje ze tego nie skumam  ale tak myslalem gdy sie uczylem z samego poczatku  jakos musze ogarnac 
a i czym sie rozni to pisanie strukturalne od obiektowego ?? teraz zobaczylem ze wiele nauki przedemna
Piękno tkwi w prostocie
Liczba postów: 263
Liczba wątków: 63
Dołączył: 25-03-2008
Reputacja:
1
Różni się przede wszystkim podejściem - w programowaniu wszystko jest obiektem, obiekty mogą zawierać w sobie obiekty, a te w sobie inne obiekty.. Obiekty mogą dziedziczyć, można używać wzorców projektowych, a to wszystko dość ładne można użyć w framework'ach  To nie jest trudne, ale inne.. Miałem problemy z przejściem do OOP.
Liczba postów: 43
Liczba wątków: 12
Dołączył: 26-02-2009
Reputacja:
0
rodi mam pytania
1) czy po wejsciu na moja strone widac ze jest pisana strukturalnie ?
2)jak zrobic takie linki jak na demotywatory.pl ? proste takie nie jak u mnie na stronie
Piękno tkwi w prostocie
|
Podobne wątki… |
Wątek: |
Autor |
Odpowiedzi: |
Wyświetleń: |
Ostatni post |
|
[PHP] Skrypt AzDGDatingMedium - nie idzie się rejestrować |
krysek76 |
0 |
2,341 |
15-05-2017, 23:42
Ostatni post: krysek76
|
|
Skrypt wyszukiwania |
Robert 33 |
1 |
4,268 |
14-04-2014, 22:22
Ostatni post: Engine
|
|
Skrypt Logowania oraz rejestracji z kodowaniem w SHA265 |
Tehiro |
0 |
2,017 |
23-06-2013, 18:06
Ostatni post: Tehiro
|
|
[PHP] Informowanie o cookies - skrypt |
krysek76 |
0 |
2,176 |
29-04-2013, 15:08
Ostatni post: krysek76
|
|
Skrypt rozpoznający cenę kodu DotPay |
Extragracz |
2 |
3,328 |
30-01-2013, 22:22
Ostatni post: Extragracz
|
Użytkownicy przeglądający ten wątek: 1 gości
|
|
Sponsorzy i przyjaciele
|
|
|