[ miroslavgojic @ 10.02.2009. 09:31 ] @
Trebam da napravim funkciju ili varijablu za redni broj,

Sistem: PHP 5
Baza: MySQL 5

Stanje u bazi:

tabela1 (polje1) InnoDB
tabela2 (polje 1, naziv_polje1) MyISAM

napomena: polje1 = polje1

upit:

SELECT tabela1.polje1, tabela2.naziv_polje1 FROM tabela1, tabela2 WHERE tabela1.polje1 = tabela2.polje1

ovo sve radi bez vecih problema,

interecuje me kako da udam redni broj koji se generise u PHP za sveki red koji izadje kao rezultat upita
redni broj ne mogu da cuvam u tabeli, prvo nemam potreba a drugo samo mi sluzi za privremene potrebe dok se upit prikazuje a previse raylicitih upita ima tako da je teko napraviti RB kao AI

trenutno izvestaj izgleda ovako:

| pollje 1 | polje 2 |
| 00000 | abcde |
| 11111 | abcdf |

a trebao bi obako:

| RB | pollje 1 | polje 2 |
| 1 | 00000 | abcde |
| 2 | 11111 | abcdf |


kako ovaj redni broj da PHP generise za svaki upit i da izracuna koliko je redova prikazano?

pitanje koje me jos interesuje je sledece

navedene dve tabele koje su vec spomenute pune se preko jedne forme
to radim sa dva SQL->INSERT - i ovo radi

da li je moguce i kako napraviti jedan SQL->INSER koji bi ovo istovremeno unosio u obadve tabele
posto INSER nije predvidjen za (multiple) visestruke unose , koja MYSQL naredba to omugucava da kroz jedna nalog unesem jedan ili vise podataka u jednu ili vise tabela

Hvala unaprijed
[ pesal @ 16.02.2009. 14:11 ] @
Evo ti odgovor na prvo pitanje...
Uradi
Code:
`id` int(10) NOT NULL auto_increment

u tabeli u kojoj hoces automatski da generises redni broj...
I svaki put kad nesto upisujes u tabelu ides
Code:
INSERT INTO tvoja tabela  set values('polje id ostavi prazno','ostali unosi','ostali unosi')

E to ti je prvi nacin...Drugi ti je da napravis tekstualni fajl (rednibroj.txt) i chmodujes ga na 777 (upises 0, ili broj od kog zelis da pocne brojanje), a zatim zastitis preko .htaccess-a tako sto ces napisati sledeci kod
Code:

<Limit GET POST>
order deny,allow
deny from all
allow from all
</Limit>
<Limit PUT DELETE>
order deny,allow
deny from all
</Limit>
<Files ~ ".txt$">
Order allow,deny
Deny from All
</Files>

Kada to uradis, u skripti gde generises redni broj pises
Code:

$file=fopen("rednibroj.txt", "r"); 
$broj=fread($file,10); 
fclose($file);
$redbroj = $broj + 1;
$fileop=fopen("rednibroj.txt", "w");
fputs($fileop, $redbroj); 
fclose($fileop); 

I onda vrsis upit ka bazi
Code:
INSERT INTO tvoja tabela set values('$redbroj','ostali unosi','ostali unosi')

Treci nacin ti je da ako nemas unosa u tabeli, dodas kod
Code:

$sql = "SELECT count(*) FROM tvoja_tabela";
$items = mysql_query($sql);
$numrows = mysql_num_rows($items);
$redbroj = $numrows + 1;

I onda opet
Code:
INSERT INTO tvoja tabela set values('$redbroj','ostali unosi','ostali unosi')

Nesto od ovoga bi trebalo da radi ;)
Pozz
[ miroslavgojic @ 16.02.2009. 14:39 ] @
Hvala

vec sam napravio neko resenje, nije mi zadovoljavajuce ali je proradilo

isprobacu tvoje prijedloge, jest da mi se treci nacin dopada, to jest ono sto sam trazio

medjutim $mysql_num_rows vraca ukupan broj redova u upitu ako se ja ne varam

ali sad cu isprobati tvoje prijedloge pa cu vidjeti sta i kako da uradim,

ovo sa Autoincrementom znam ali necu redni broj da trpam u tebelu iz razloga sto nema potreba da se taj podatak tamo generise, nije bitan za rad veza u bazi