Avatar billede koch Nybegynder
15. februar 2005 - 19:34 Der er 18 kommentarer og
1 løsning

auto_increment går ikke ned igen, når der slettes databasen!

Når jeg har sat en værdi i min database til at have egenskaben, auto_increment, er det så ikke muligt at den også falder hvis der slettes noget i databasen? Eller hvordan gør jeg det smart, hvis jeg gerne vil have en variabel som hele tiden ved hvor mange rækker jeg har i databasen, så den selv lægger fra og lægger til? evt. en funktion a la table.length
Avatar billede arne_v Ekspert
15. februar 2005 - 19:46 #1
Sådan virker AUTO_INCREMENT altså.

Brug:

SELECT COUNT(*) FROM tabelnavm

eller:

SELECT MAX(feltnavn) FROM tabelnavm

til det du vil
Avatar billede koch Nybegynder
15. februar 2005 - 20:23 #2
Jeg har forsøgt mig lidt frem med følgende
$nr=mysql_query("SELECT COUNT(*) FROM carlist");

men får resource id #3
Avatar billede arne_v Ekspert
15. februar 2005 - 20:25 #3
Prøv:

$nr=mysql_query("SELECT COUNT(*) AS nr FROM carlist");

så skulle du kunne tilgå det som nr
Avatar billede koch Nybegynder
15. februar 2005 - 20:53 #4
Jeg får samme fejl desværre
Avatar billede arne_v Ekspert
15. februar 2005 - 20:54 #5
Du er klar over at mysql_query ikke retunerer værdien med et result set som
skal processes normalt ?
Avatar billede koch Nybegynder
15. februar 2005 - 20:57 #6
nej! så det er ikke den jeg skal bruge hvis jeg skal have sat $nr=antal rækker i min tabel?
Avatar billede arne_v Ekspert
15. februar 2005 - 20:59 #7
Prøv:

$rs = mysql_query("SELECT COUNT(*) AS nr FROM carlist");
$row = mysql_fetch_array($rs, MYSQL_ASSOC)
$nr = $row["nr"];
Avatar billede jensgram Nybegynder
15. februar 2005 - 21:05 #8
eller blot:

$nr = mysql_result(mysql_query('SELECT COUNT(*) AS nr FROM carlist'), 0, 'nr');
Avatar billede koch Nybegynder
15. februar 2005 - 21:13 #9
kanon, det virker! 
Jeg bruger det når jeg skal tilføje noget til tabellen. Nu er problemet bare at tal der så er skrevet ind i forvejen ikke ændrer sig. Så hvis jeg sletter række 6  og der er 10 rækker, så står der stadig 7, 8, 9, 10!
Avatar billede arne_v Ekspert
15. februar 2005 - 21:20 #10
Ja.

Sådan fungerer auto increment
Avatar billede arne_v Ekspert
15. februar 2005 - 21:20 #11
Hvorfor er det et problem ?
Avatar billede koch Nybegynder
15. februar 2005 - 21:26 #12
nr vises på siden og skal gerne vise ud for hvert element, så det går fra 1,2,3,4,5....
Avatar billede arne_v Ekspert
15. februar 2005 - 21:27 #13
Så lad din PHP kode lave en tæller løkke og vis den !
Avatar billede koch Nybegynder
16. februar 2005 - 08:56 #14
kan det gøres noget i stil med dette(jeg har skrevet de steder hvor jeg helt sikkert ved  at den er gal)?

      $query = mysql_query("SELECT * FROM carlist");
      while ($row = @mysql_fetch_array($query))
      {
      $variable1=$row["mark"];
      $variable2=$row["year"];
      $variable3=$row["notice"];
      $variable4=$row["km"];
      $variable5=$row["price"];
     
Det der kommer herefter skal ikke i den første while løkke:

      $rs = mysql_query("SELECT COUNT(*) AS nr FROM carlist");
      $row = mysql_fetch_array($rs, MYSQL_ASSOC);
      while($numb<=$rs)
      {
      $variable6=$row["nr"];
      }     

Herefter kommer der resten af koden hvor der bliver lavet en tabel og værdierne bliver indsat. Det virker ihvertfald uden den nederste del af ovenstående kode.
Avatar billede arne_v Ekspert
16. februar 2005 - 08:58 #15
Er det ikke bare:

$nr = 0;
$query = mysql_query("SELECT * FROM carlist");
while ($row = @mysql_fetch_array($query))
{
      $nr = $nr + 1;
      $variable1=$row["mark"];
      $variable2=$row["year"];
      $variable3=$row["notice"];
      $variable4=$row["km"];
      $variable5=$row["price"];
      $variable6=$nr;
}

du vil ?
Avatar billede koch Nybegynder
16. februar 2005 - 09:00 #16
Vil det også virker når jeg har værdier for nr i min tabel?
Avatar billede arne_v Ekspert
16. februar 2005 - 09:02 #17
ja
Avatar billede koch Nybegynder
17. februar 2005 - 08:01 #18
Det virker ;o) Nu har nr bare mistet sin funktion har jeg fundet ud af nu! Der hører et billede til hver række, som bestemmes af nummer. Hvis jeg slettter en række, så får næste række det forrige billede! Mange tak for hjælpen ihvertfald, smid et svar..
Avatar billede arne_v Ekspert
17. februar 2005 - 08:14 #19
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester