[PHP]zoeken hoogste userid

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoi,

Ik ben een scriptje aan het maken voor Vbulletin.
Vbulletin werkt met o.a USER in sql
in USER zit userid's verwerkt..
wat ik nu wil doen is dat er met een klein stukje code gezocht wordt naar het hoogst userid dat er is (de meest recent toegevoegde dus) en dan +1
dus stel de hoogste userid is 291 ...dan moet mijn stukje code komen tot userid 292.

iemand die me daar me kan helpen (ervan uitgaande dat ik alle info zelf al selected hebt enzow)

Ik dacht iets in deze richting:
code:
1
$userid=>$userid+1


alvast bedankt

Acties:
  • 0 Henk 'm!

  • Johnny
  • Registratie: December 2001
  • Laatst online: 14:39

Johnny

ondergewaardeerde internetguru

Dat kan je toch gewoon in SQL?

SQL:
1
SELECT max(userid) FROM table

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


Acties:
  • 0 Henk 'm!

  • mjax
  • Registratie: September 2000
  • Laatst online: 15:59
PHP:
1
2
$userid = mysql_fetch_array(mysql_query("SELECT MAX(Userid)+1 FROM users"));
$userid = $userid[0];


Dit zou moeten werken (pas de query aan aan de geldende databasestructuur.

Los hiervan (ik weet niet precies wat je hiermee wilt gaan doen) is dit een gevaarlijke oplossing. Stel dat 2 mensen tegelijk dit script uitvoeren. Dan krijgen ze beiden hetzelfde Userid terug en zijn je Userid's niet meer uniek. Niet de beste manier dus. Je kunt beter met autoinc velden werken.

Acties:
  • 0 Henk 'm!

  • Mental
  • Registratie: Maart 2000
  • Laatst online: 20-10-2020
sql query ''select max(userid) from.. blablabla"
die met 1 ophogen, dan ben je er. Meer informatie over sql query's en php kun je vinden in de faqs van dit forum

Acties:
  • 0 Henk 'm!

  • Mental
  • Registratie: Maart 2000
  • Laatst online: 20-10-2020
L4m0r schreef op 09 juli 2004 @ 18:22:
sql query ''select max(userid) from.. blablabla"
die met 1 ophogen, dan ben je er. Meer informatie over sql query's en php kun je vinden in de faqs van dit forum
offtopic edit: autoinc velden zijn niet echt van toepassing aangezien het om een vbulletin database gaat

Acties:
  • 0 Henk 'm!

  • Shadowman
  • Registratie: Januari 2002
  • Niet online
L4m0r schreef op 09 juli 2004 @ 18:22:
[...]


offtopic edit: autoinc velden zijn niet echt van toepassing aangezien het om een vbulletin database gaat
Zou er dan niet juist al een autoincrement op die velden staan?

btw als dat veld op uniek is ingesteld dan kunnen er toch geen dubbele userid's komen, er komt dan enkel een foutmelding die je kunt afvangen en dan een nieuwe query maken.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
dankjewel voor alle snelle reacties, heb m iets gemodificeerd voor mijn doel..hij werkt top zo!
danku!

code:
1
2
3
4
5
$userid = $DB_site->query("SELECT MAX(Userid)+1 FROM user");
$userid = $DB_site->fetch_array($userid);
$userid = $userid[0];

echo " $userid ";

Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op 09 juli 2004 @ 18:32:
dankjewel voor alle snelle reacties, heb m iets gemodificeerd voor mijn doel..hij werkt top zo!
danku!

code:
1
2
3
4
5
$userid = $DB_site->query("SELECT MAX(Userid)+1 FROM user");
$userid = $DB_site->fetch_array($userid);
$userid = $userid[0];

echo " $userid ";
Let er op dat je code zo niet multi-user is, er mag dus maar 1 user tegelijk zaken toevoegen aan de database.

Zo niet, krijg je geheid corruptie.. als jij en ik tegelijkertijd een nieuw ID opvragen, krijgen we het zelfde nummertje --> foutmelding bij opslaan (mits je je constraints goed hebt staan).
Pagina: 1