Toon posts:

[MySQL] LAST_INSERT_ID() Probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Beste Tweakers,

Ik heb de volgende code in mijn webpagina:

PHP:
1
2
3
4
5
$LAST_SQL = mysql_query("SELECT * FROM tx_dvds WHERE id=LAST_INSERT_ID()");
$LAST = mysql_fetch_object ($LAST_SQL);
$id = $LAST->id;
mysql_free_result ($LAST_SQL);
print($id);


Het probleem is dat hij de querty niet accepteerd. Ik krijg daarom de volgende foutmelding:
PHP:
1
Trying to get property of non-object on line 69

Dat is dus de regel met de mysql query.

Wat doe ik hier fout? Want ik heb het ook in een andere website gebruikt, en daar werkt het perfect.

Alvast hartelijk bedankt!

Het is NIET:
- PHP / MySQL installatie
- Connectie naar database

[ Voor 2% gewijzigd door Verwijderd op 11-08-2005 21:54 . Reden: ; weggehaald ]


  • Not Pingu
  • Registratie: November 2001
  • Laatst online: 01-04 20:36

Not Pingu

Dumbass ex machina

LAST_INSERT_ID() kan je bij mijn weten alleen maar aanroepen in dezelfde connectie als waarin je een INSERT hebt gepleegd.

Certified smart block developer op de agile darkchain stack. PM voor info.


Verwijderd

Topicstarter
Ow sorry!

Ik had het stuk wel vlug doorgelezen, maar niet gelezen dan je daar een query voor moest doen.

Het klinkt eigenlijk ook wel logisch ;)

Nu moet ik alleen even kijken, hoe ik snel de laatste ID kan krijgen ;)

Dank jullie!

  • Not Pingu
  • Registratie: November 2001
  • Laatst online: 01-04 20:36

Not Pingu

Dumbass ex machina

Dat kun je door eerst de MAX(id) op te vragen, hetzij in een subquery, hetzij in een aparte query. Of kun je MAX() ook rechtstreeks in een WHERE clause gebruiken in MySQL?

\/\/ zo kan het idd ook

[ Voor 34% gewijzigd door Not Pingu op 11-08-2005 22:08 ]

Certified smart block developer op de agile darkchain stack. PM voor info.


Verwijderd

Topicstarter
Ik heb het op de volgende manier opgelost:

PHP:
1
$LAST_SQL = mysql_query("SELECT * FROM tx_dvds ORDER BY id DESC LIMIT 0,1");


In plaats van de eerste query :)

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Wat nu als je deze sequence van queries hebt? ;)
SQL:
1
2
3
4
5
6
7
8
9
10
INSERT INTO `tx_dvds` (
  `title`,
  `genre`,
  `enz`
) VALUES (
  'blaat',
  'bla',
  'enz'
)
--het laatste ID is nu 1

SQL:
1
2
3
4
5
6
7
8
9
10
INSERT INTO `tx_dvds` (
  `title`,
  `genre`,
  `enz`
) VALUES (
  'blaat',
  'bla',
  'enz'
)
--het laatste ID is nu 2

SQL:
1
2
DELETE FROM `tx_dvds` WHERE `id` = 2
--het laatste IID is nu weer 1

De auto increment heeft nu nog steeds de waarde 3. Het laatste record in je tabel heeft nu het ID 1, waardoor je script het ID 2 zal zien als het volgende record. Lijkt me niet helemaal goed. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Cavorka
  • Registratie: April 2003
  • Laatst online: 27-03-2018

Cavorka

Internet Entrepreneur

Om het duidelijk te maken voor de mensen die het kennelijk niet will weten. KLIKKERDEKLIK op de link pls. Thx. :)

the-blueprints.com - The largest free blueprint collection on the internet: 50000+ drawings.


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Cavorka schreef op vrijdag 12 augustus 2005 @ 01:02:
Om het duidelijk te maken voor de mensen die het kennelijk niet will weten. KLIKKERDEKLIK op de link pls. Thx. :)
Ook daarvoor moet je AFAIK eerst op dezelfde connectie een nieuw record toegevoegd hebben, dus dat maakt verder niet echt uit. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1