Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][TABLICE] Usuwanie pierwszego elementu
Forum PHP.pl > Forum > Przedszkole
Tomek58
Witam!
Chciałbym aby po dodaniu kolejnego rekordu do mojej tablicy pierwszy się usuwał, tak aby stała liczba elementów wynosiła np. 10. Próbowałem robić tak:

Kod
d1 = file_get_contents("./uzytkownicy/$idwiadomosci/wiadomosci/1.php");
$d2 = explode('|', $d1);
$t1 = file_get_contents("./uzytkownicy/$idwiadomosci/wiadomosci/2.php");
$t2 = explode('|', $t1);
$tr1 = file_get_contents("./uzytkownicy/$idwiadomosci/wiadomosci/3.php");
$tr2 = explode('|', $tr1);
$a1 = file_get_contents("./uzytkownicy/$idwiadomosci/wiadomosci/4.php");
$a2 = explode('|', $a1);
$ile2 = count($d2);

if ($ile2 > 10) {

while ($ile2 > 10) {

$di = array_splice($d2, 0, 1);
$ti = array_splice($t2, 0, 1);
$tri = array_splice($tr2, 0, 1);
$ai = array_splice($a2, 0, 1);

$d = implode('|', $di);
$t = implode('|', $ti);
$tr = implode('|', $tri);
$a = implode('|', $ai);

    // dane pochodzące z formularza
    $dane = $d;
    // przypisanie zmniennej $file nazwy pliku
    $file = "./uzytkownicy/$idwiadomosci/wiadomosci/1.php";
    // uchwyt pliku, otwarcie do dopisania
    $fp = fopen($file, "w");
    // blokada pliku do zapisu
    flock($fp, 2);
    // zapisanie danych do pliku
    fwrite($fp, $dane);
    // odblokowanie pliku
    flock($fp, 3);
    // zamknięcie pliku
    fclose($fp);

            // dane pochodzące z formularza
    $dane = $t;
    // przypisanie zmniennej $file nazwy pliku
    $file = "./uzytkownicy/$idwiadomosci/wiadomosci/2.php";
    // uchwyt pliku, otwarcie do dopisania
    $fp = fopen($file, "w");
    // blokada pliku do zapisu
    flock($fp, 2);
    // zapisanie danych do pliku
    fwrite($fp, $dane);
    // odblokowanie pliku
    flock($fp, 3);
    // zamknięcie pliku
    fclose($fp);

            // dane pochodzące z formularza
    $dane = $tr;
    // przypisanie zmniennej $file nazwy pliku
    $file = "./uzytkownicy/$idwiadomosci/wiadomosci/3.php";
    // uchwyt pliku, otwarcie do dopisania
    $fp = fopen($file, "w");
    // blokada pliku do zapisu
    flock($fp, 2);
    // zapisanie danych do pliku
    fwrite($fp, $dane);
    // odblokowanie pliku
    flock($fp, 3);
    // zamknięcie pliku
    fclose($fp);

            // dane pochodzące z formularza
    $dane = $a;
    // przypisanie zmniennej $file nazwy pliku
    $file = "./uzytkownicy/$idwiadomosci/wiadomosci/4.php";
    // uchwyt pliku, otwarcie do dopisania
    $fp = fopen($file, "w");
    // blokada pliku do zapisu
    flock($fp, 2);
    // zapisanie danych do pliku
    fwrite($fp, $dane);
    // odblokowanie pliku
    flock($fp, 3);
    // zamknięcie pliku
    fclose($fp);
    
$ile2 --;

}


Teoretycznie powinno być OK, ale gdy ilość wpisów przekroczy 10 to usuwają się wszystkie elementy, a nie te pierwsze.
nospor
nie analizowalem kodu bo:
1) brak wlasciwego bbcode
2) sieczka niesamowita

do usuwania elementu z tablicy uzyj:
http://pl.php.net/manual/pl/function.array-shift.php
lub
http://pl.php.net/manual/pl/function.array-pop.php
w zaleznosci skad chcesz usuwac
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.