Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Losowanie id
#1
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
#2
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?
[Obrazek: 2guxq1i.gif]
#3
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.
#4
(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.
#5
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ę.
#6
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
[Obrazek: 2guxq1i.gif]
#7
Tongue Już i tak sam to inaczej wykonałem Big Grin. Tak czy inaczej dzięki wszystkim za pomoc.
#8
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.
[Obrazek: 2guxq1i.gif]


Skocz do:


Użytkownicy przeglądający ten wątek:
Sponsorzy i przyjaciele
SeoHost.pl