Autor Zpráva
6xx
Profil *
Mam tabulku v MySQL, ktera ma 2 sloupce:
1. sloupec je id_text, vytvoreny jako SMALLINT NOT NULL AUTO_INCREMENT
2. sloupec je text, typ je LONGTEXT, ale to neni podstatne.
Z php5 potom vkladam do sloupce text nejaky text (kdo by to byl rekl ;-) ) a nechavan MySQL vygenerovat hodnotu id_text.
Problemem je, ze potrebuju tu hodnotu v id_text pouzit ve skriptu (vklada se jeste do jine tabulky). Pouzivat select podle hodnoty sloupce text neni dobry napad, protoze obsah sloupce text muze (a bude) opravdu dlouhy a select ve velke databazi by trval prilis dlouho a byl narocny na system.

Diky
jonge
Profil
mysql_insert_id() ???
6xx
Profil *
Diky, bylo by to presne to, co potrebuji. Problem je ale v tom ze zbytek je psan pomoci MySQL funkci a prepisovat komplet redakcni system pomoci MySQL improved by bylo dost prace (i kdyz je vsechna prace s DB v jedne tride). Navic na tom serveru zrejme nebude k dispozici tohle rozsireni.

Jeste je tu moznost zvysovat to rucne o 1, to se mi zda ale ponekud prasacke.
6xx
Profil *
Dostal jsem napad: vytvorit takovy select, ktery by nasel nejvyssi cislo nachazejici se ve sloupci id_text protoze to musi byt to prave vytvorene. Pak se nebude muset ani prohledavat sloupec text, coz znacne ten select urychli.
Takze jdu studovat dokumentaci jak na to ;-)
6xx
Profil *
Tak nevim, nenapada nekoho nejaky lepsi zpusob nez:

$resource = mysql_query("SELECT id_text FROM tabulka");
$numRows = mysql_num_rows($resource);
$row = mysql_fetch_row($resource);

echo $row[($numRows-1)];
tiso
Profil
SELECT MAX(id_text) FROM tabulka
6xx
Profil *
tiso: Diky moc, nejak jsem si toho v dokumentaci nevsiml. Prominte zbytecny dotaz.
Kajman_
Profil *
Je třeba použít mysql_insert_id(), protože nemůžete očekávat, že mezi vložením jednoho záznamu a tím selectem nebyl vložen další.
6xx
Profil *
Je třeba použít mysql_insert_id(), protože nemůžete očekávat, že mezi vložením jednoho záznamu a tím selectem nebyl vložen další.
To by se stat nemelo, kod vypada priblizne takto:

$DB->putRecord("texts","__ACTUAL__","'".$_POST["text"]."'","text");
$id_text = $DB->viewRecord("texts","__ACTUAL__","MAX(id_text)",1);
echo $id_text[0][0];
$values = "'".$_POST["id_menu"]."','1','".$_POST["name_text"]."','".$_POST["perex"]."','".$id_text[0][0]."','".$date."'";
$DB->putRecord("content","__ACTUAL__","$values","id_menu,id_autor,name_text,perex,id_text,date");

A nic jineho pristup k databazi mit nebude. Pruser by mohl nastat, kdyz by se rozhodlo nekolik autoru odeslat nejaky clanek ve stejnou chvili.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0