MySql, kak dobiti id ?

Tako, iamm naslednji problem ...

if(isset($_SESSION['OBISK']) && $_SESSION['OBISK'] != 3)
{
    $_SESSION['OBISK'] = 2;
    $podatki =  mysql_query("SELECT * FROM `statistika_obiski` WHERE `ip` = '".$_SERVER['REMOTE_ADDR']."' ORDER BY `datum_prvic` DESC LIMIT 1;");
    if (mysql_num_rows($podatki) == 1) { while ($podatek = mysql_fetch_array($podatki)) { mysql_query("UPDATE `statistika_obiski` SET `datum_zadnjic` = NOW(), `strani` = `strani` + 1, `id_uporabnik` = '".$_SESSION['uporabnik_id']."' WHERE `id` = '".$podatek["id"]."';"); } } else { $_SESSION['OBISK'] = 3; } 
}
else
{
    mysql_query("INSERT INTO `statistika_obiski` (`datum_prvic`, `datum_zadnjic`, `ip`) VALUES (NOW(), NOW(), '".$_SERVER['REMOTE_ADDR']."');");
    if($_SESSION['OBISK'] != 3) { $_SESSION['OBISK'] = 1; } else { $_SESSION['OBISK'] = 2; }
}

ko obiskovalec pride prvič na stran se zgodi INSERT, ko drugič pa UPDATE, v mysql, problem je da ko nekaj vstavim, v bazo, ta prvi zapis, bi potreboval id sedaj ga dobim vendar ne na najlepši način, ...

pa me zanima če se da kako dobiti id ki se vpiše v bazo ? Gre za ...

`id` bigint(20) unsigned NOT NULL auto_increment,

auto_increment, torej ko vstavljam, sploh ne dam podatka ...

Edit: bo mysqlinsertid() ok ? Kaj pa če je več zahtev na enkrat ?

6 odgovorov

mysqlinsertid ?

^ what he said :)

Super :) sedaj še samo Query time :D, phpMyAdmin naj bi čas izvedenega SQL stavka določil takole :

list($usec, $sec) = explode(' ',microtime());
 $querytime_before = ((float)$usec + (float)$sec);

// your query goes here

 list($usec, $sec) = explode(' ',microtime());
 $querytime_after = ((float)$usec + (float)$sec);

 $querytime = $querytime_after - $querytime_before;
 $strQueryTime = 'Query took %01.4f sec';

 echo sprintf($strQueryTime, $querytime);

naj bi še bilo tole:

mysqlquery()
mysql
info()

vendar ne dobim časa ... v koliko časa se je izvedel stavek.

zakaj pa to nucas? :)

Za prikaz :D, recimo da vidim koliko časa porabi PHP za generiranje strani pa koliko MySql ...

čeprav glede na to staregate.com

[ Page generation time: 0.1858s ( PHP: 95% - SQL: 5% ) ] - [ SQL queries: 171 ]

menda pridobivanje podtkov iz MySql ni tak problem ... če namesto * selectaš samo kaj rabiš bi naj še neko malenkost pridobil na času :D.

to je za uporabnike blazno nepomemben podatek... velika vecina niti ne ve, kaj pomeni :)