Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
Losowanie id - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Programowanie, Bazy danych (https://www.webmastertalk.pl/forum-programowanie-bazy-danych)
+--- Wątek: Losowanie id (/thread-losowanie-id)



Losowanie id - Rafik01 - 30-06-2010

Witam

Potrzebuję funkcji, która by losowała identyfikator. ID nie może już wcześniej wystąpić. Utworzone poprzednio id znajdują się w co trzeciej pozycji w tabeli "$notatki".
Kod:
function przeszukaj( $id )
{
    $notatki = przetwozListe();
    $b = count($notatki);
    $wys = 0;
    for($a=0;$a<=$b;$a+=3)
    {
        if((string)$notatki[$n]===(string)$id)
        {
            $wys = 1;
        }
    }
    return $wys;
}

function szukajId()
{
    $id_rand = rand(1,10);
    while(przeszukaj( $id_rand )==1)
    {
        $id_rand = rand(1,10);
    }
    return $id_rand;
}
Oto co do tej pory napisałem. Jednak kod nie działa. To znaczy nie do końca. Losuje on liczbę, ale nie zbyt ma na uwadze to czy jest ona na liście czy jej nie ma. proszę o pomoc!

Pozdrawiam Rafał Jankowski


RE: Losowanie id - dziamber - 30-06-2010

Nie lepiej i wygodniej będzie użyć funkcji rand, a w bazie w jednym miejscu po przecinku zapisywać wylosowane liczby np. 1,3,5,6,7?


RE: Losowanie id - Rafik01 - 30-06-2010

Nie chcę tego robić z użyciem baz danych. Nigdy ich nie używałem i nie chcę przy tym projekcie. Wolę pracować na plikach.


RE: Losowanie id - Pedro84 - 01-07-2010

(30-06-2010, 18:35)Rafik01 napisał(a): Nie chcę tego robić z użyciem baz danych. Nigdy ich nie używałem i nie chcę przy tym projekcie. Wolę pracować na plikach.

No to zrób na plikach, masz rozwiązanie, do dzieła. Nikt nie powiedział, że musi być to zrobione na bazie danych.


RE: Losowanie id - Rafik01 - 01-07-2010

Ok. Oto co do tej pory wymyśliłem:
Kod:
function szukajId()
{
    $id_rand = rand(1,10);
    $nazwa_pliku = 'ids.txt';
    $ids = file($nazwa_pliku);
    while(in_array((string)$id_rand,$ids,TRUE))
    {
        $id_rand = rand(1,10);
    }
    return $id_rand;
}
A tak plik ids.txt:
Kod:
1
2
Jednak nadal coś nie działa. Jest jak wcześniej. Zmienna wyświetla liczbę z zakresu 1-10, ale jednak nie zwraca uwagi na to czy znajduje się w tablicy. Czekam teraz na osobę, która poprawi tą funkcję.


RE: Losowanie id - dziamber - 01-07-2010

A ja czekam na króliczka Playboya który zajedzie po mnie czerwonym Ferrari... zapisz to tak w pliku 1,2,3,4 a później wyciągnij jako tablicę, i wartość która wylosujesz sprawdź w tablicy czy nie ma.
Kod:
<?php
    $nazwa_pliku = 'plik.txt';
    $ids = file($nazwa_pliku);
    $tablica = $ids[0];
    $liczby = explode(",", $tablica);
    $cos = 1;
    while($cos == 1) {
        $twoja_liczba = rand(1, 10);
        if(!array_key_exists($twoja_liczba, $liczby)) {
            $tablica = $tablica . $twoja_liczba .  ',';
            $cos = 2;
        }
    }
?>
$tablica to nowy ciąg który masz zapisać w pliku leniu


RE: Losowanie id - Rafik01 - 01-07-2010

Tongue Już i tak sam to inaczej wykonałem Big Grin. Tak czy inaczej dzięki wszystkim za pomoc.


RE: Losowanie id - dziamber - 01-07-2010

Człowieku lepiej już nic nie pisz, trzeba było wcześniej dodać, że masz już swój sposób to bym nie marnował swojego czasu.

Typowy internetowy troll. Temat zamykam.