Mam mały problem

Mam 1 tabelę w bazie danych - users:
CREATE TABLE `users` ( `usr_id` int(8) NOT NULL DEFAULT '0', `usr_imie` varchar(50) NOT NULL DEFAULT '', `usr_nazwisko` varchar(50) NOT NULL DEFAULT '', `usr_poziom` int(3) NOT NULL DEFAULT '0', `usr_login` varchar(50) NOT NULL DEFAULT '', `usr_haslo` varchar(50) NOT NULL DEFAULT '', `usr_email` varchar(50) NOT NULL DEFAULT '' ) TYPE=MyISAM;
oraz pliki php:
z klasa do obslugi bazy danych - database.inc.php
<?php /** * @author 5513458585 * @copyright 2008 */ /* * klasa obslugi bazy mysql * */ class Sql { public $cid ; //connect id - odentyfikator połaczenia z baza danych public $queries=0; // liczba wykonanych zapytan public $host="localhost"; public $user="stws"; public $pass="123qwe"; public $db_name="stws"; function __construct() { //łaczenie sie z baza danych o padanych parametrach $this->cid=mysql_connect($this->host, $this->user, $this->pass)or die($this->error("Problem z nawiazaniem polaczenia")); //wybor bazy danych } //destrukto - zamyka polączenie function __destruct() { $this->sqlClose(); } //funkcjia obslugi bledow obslugi bazy danych function error($what="Main System Error With Data Base") { return "<p style=\"color: red; font-weight: bold\">Driver SQL Problem <br>".$what." </p> ".mysql_error(); } //obsluga zapytania //$to_query - zapytanie mysql //$query_name - nazwa zapytania function query($to_query, $query_name) { //dodajemy do tablicy queryResult wynik zapytania (wartosc) zindeksowany nazwa zapytania $this->queries++; //zwiekszamy liczbe wykonanych zapytan } //funkcjia zwracajaca liczbe wierszy na ktorych zostalo wykonane zapytanie o danej nazwie function numRows($query_name) { } //ilosc kolumn function numFields($query_name) { } //przedstawienie wyniku jako tablicy indeksowanej liczbami function fetchRow($query_name) { } //przedstawienie wyniku zapytania jako tablicy indeksowanej nazwami pol function fetchAssoc($query_name) { } //zamykanie polaczenia function sqlClose() { } //inne pomocne funkcjie //zwraca ID ostatnio dodanego rekordu function insertId() { } //zwraca liczbę wierszy przetworzonych w ostatnim zapytaniu function affectedRows() { } //funkcjia wykonuje zapytanie i tworzy z wyniku tablice asocjacyjna function fetchQuery($to_query, $query_name) { $this->queries++; } //funkcjia zwraca wynik bezposrednio do zmiennej ktora ja wywoluje //przydatna przy wyswietlaniu wynikow z uzyciem while function fetchAssocWhile($query_name) { } function fetchRowWhile($query_name) { } //wyswietlenie wyniku zapytania w postaci tabelarycznej function tableQuery($query_name) { while($result = $this->fetchRowWhile($query_name)) { $i=0; while($i<$this->numFields($query_name)) { $i=$i+1; } } } function tableQueryTags($query_name) { while($result = $this->fetchRowWhile($query_name)) { $i=0; while($i<$this->numFields($query_name)) { //echo " "; $i=$i+1; } } } } ?>
oraz z klasą do obslugi uzytkownika - users.inc.php (na razie taki cwiczebny zalazek bo tu utknalem)
<?php /** * @author 5513458585 * @copyright 2008 */ include_once('database.inc.php') ; class cUsers{ public $id; public $name; public $surname; public $level; public $login; public $pass; public $email; public function __construct() { $this->id=0; $this->name=""; $this->surname=""; $this->level=0; $this->login=""; $this->pass=""; $this->email=""; } function ustawdane($i,$nam,$sur,$lev,$log,$pas,$em) { $this->id=$i; $this->name=$nam; $this->surname=$sur; $this->level=$lev; $this->login=$log; $this->pass=$pas; $this->email=$em; } function wyswietldane() { } function dodajdobazy() { $dane=new Sql; $zapytanie = "INSERT INTO users (usr_id,usr_imie,usr_nazwisko,usr_poziom,usr_login,usr_haslo,usr_email ) VALUES ('$this->id','$this->name','$this->surname','$this->level','$this->login','$this->pass','$this->email')"; $dane->query($zapytanie, "dodana_osoba"); echo"</br></br>przetworzono ".$dane->affectedRows()."wierszy </br>Wykonano ".$dane->queries." zapytan"; } } ?>
dzialanie moich wypocin testuje sobie wyswietlajac w pliku index.php wyniki zapytan:
<?php //include_once('database.inc.php') ; include_once('users.inc.php') ; $a = new Sql(); $a->query("SELECT usr_id, usr_imie, usr_email FROM users ", "moje_zapytanie"); $a->tableQueryTags("moje_zapytanie"); ?>
oraz w pliku dodaj.php gdzie dodaje kilku testowych użytkowników korzystając ze zdefiniowanych wczesniej klas do obslugi zapytan do bazy oraz do obslugi userów
dodaj.php
<?php /** * @author 5513458585 * @copyright 2008 */ include_once('database.inc.php') ; include_once('users.inc.php') ; $osoba = new cUsers(); $osoba2 = new cUsers(); $osoba3 = new cUsers(); $osoba4 = new cUsers(); $osoba->ustawdane(88,"Peslaw","Podraza",3,"mario","qqqaaa","marian@o2.pl"); $osoba2->ustawdane(99,"Bolek","Polak",2,"miro","aaa","miro@o2.pl"); $osoba3->ustawdane(67,"Bolek","Polak",2,"miro","aaa","miro@o2.pl"); $osoba4->ustawdane(14,"Bolek","Polak",2,"miro","aaa","miro@o2.pl"); $osoba->dodajdobazy(); $osoba2->dodajdobazy(); $osoba3->dodajdobazy(); $osoba4->dodajdobazy(); ?>
I tu własnie pojawia sie przedziwny problem nad ktorym siedze juz kilka ladnych godzin - przy wykonaniu skryptu dodawania userow wszystko niby idzie po koleji, ale kolejne rekordy w tabeli pojawiaja sie losowej kolejnosci zamiast po koleji na koncu tabeli - jest to zupelnie nieprzewidywalne - i tu moje pytanie -o co kaman

przykład (czecia kolumna na potrzeby testu posłuzyła jako oznaczenie kolejnych wywolan skryptu - widzicie jak przedziwnie wstawia rekordy

67Bolek2miro@o2.pl99Bolek2miro@o2.pl88Peslaw2marian@o2.pl14Bolek1miro@o2.pl67Bol
k1miro@o2.pl99Bolek1miro@o2.pl88Peslaw1marian@o2.pl14Bolek2miro@o2.pl88Peslaw3ma
ian@o2.pl99Bolek3miro@o2.pl67Bolek3miro@o2.pl14Bolek3miro@o2.pl
(przeszkadza troszke to ograniczenie długosci postu


67Bolek2miro@o2.pl99Bolek2miro@o2.pl88Peslaw2marian@o2.pl14Bolek1miro@o2.pl67Bol
k1miro@o2.pl99Bolek1miro@o2.pl88Peslaw1marian@o2.pl14Bolek2miro@o2.pl88Peslaw3ma
ian@o2.pl99Bolek3miro@o2.pl67Bolek3miro@o2.pl14Bolek3miro@o2.
(no nic, widze, ze to chyba automat łaczy te posty i tym bardziej nie moge edytowac mojego wczesniejszego postu

kolejnosc w ktorej wpisy w bazie to (trzecia kolumna oznacza w ktorym wywolaniu skryptu dodaj.php byl dodawany dany rekord, czyli powinny byc po koleji cztery jedynki, dwójki i trójki , a jest jak jest)
67 Bolek 2 miro@o2.pl
99 Bolek 2 miro@o2.pl
88 Peslaw 2 marian@o2.pl
14 Bolek 1 miro@o2.pl
67 Bolek 1 miro@o2.pl
99 Bolek 1 miro@o2.pl
88 Peslaw 1 marian@o2.pl
14 Bolek 2 miro@o2.pl
88 Peslaw 3 marian@o2.pl
99 Bolek 3 miro@o2.pl
67 Bolek 3 miro@o2.pl
14 Bolek 3 miro@o2.