MySql, kak dobiti id ?
 
HeXeR 20. jul 2007 09:07:22 Pridružen od:
13. dec 2006
3268 objav
122 22 5
#1

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 ?


všeč(0) ni všeč(0) spam(0)
First rule of business, protect your investment.
 
misko 20. jul 2007 09:07:31 Pridružen od:
8. mar 2007
108 objav
2 0 0
#2

mysqlinsertid ?


všeč(0) ni všeč(0) spam(0)
 
Vini 20. jul 2007 09:07:35 Pridružen od:
1. sep 2006
6612 objav
5234 611 56
#3

^ what he said :)


všeč(0) ni všeč(0) spam(0)
 
HeXeR 20. jul 2007 09:07:44 Pridružen od:
13. dec 2006
3268 objav
122 22 5
#4

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.


všeč(0) ni všeč(0) spam(0)
First rule of business, protect your investment.
 
Vini 20. jul 2007 09:07:46 Pridružen od:
1. sep 2006
6612 objav
5234 611 56
#5

zakaj pa to nucas? :)


všeč(0) ni všeč(0) spam(0)
 
HeXeR 20. jul 2007 10:07:11 Pridružen od:
13. dec 2006
3268 objav
122 22 5
#6

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.


všeč(0) ni všeč(0) spam(0)
First rule of business, protect your investment.
 
Vini 20. jul 2007 10:07:15 Pridružen od:
1. sep 2006
6612 objav
5234 611 56
#7

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


všeč(0) ni všeč(0) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se