Ik heb in mijn mysql database een tabel ledenlijst zitten. Hierin heb ik allemaal leden geimporteerd via een tekstbestand.
Ik heb echter geen tabel met "ID" , is het alsnog mogelijk deze toe te voegen en elke record uit mijn tabel een ID te laten toewijzen?

tnx
Zou evt. met een while loop kunnen maar is niet de handigste methode...
zijn er na je leden geimporteerd te hebben nog leden bijgekomen die niet in dat tekstbestand staan?
zo nee, dan zou je ze opnieuw kunnen importeren na een id kolom met auto_increment aangemaakt te hebben.

zo ja, dan zou je het inderdaad met een while loop kunnen doen.
Iets in de trent van
<?php
$query = "SELECT * FROM leden";
$result = mysql_query($query) or die (mysql_error());

while ($row = mysql_fetch_array($result))
{
   $teller++
   $query = "UPDATE leden SET id = ".$teller." WHERE naam = '".$row['naam']."'";
   $result = mysql_query($query) or die (mysql_error());
}
?>


Ik heb dit niet getest, en als je dubbele namen in je ledenlijst hebt zitten heb je ook een klein probleem, want je hebt gewoon geen uniek iets in je tabel.
Stefan van Iwaarden schreef op 11.02.2007 15:12
als je dubbele namen in je ledenlijst hebt zitten heb je ook een klein probleem, want je hebt gewoon geen uniek iets in je tabel.


Ik heb dubbele namen: ik heb een kolom: Voornaam en een kolom: Naam

Dit is dus geen optie?

Kan ik anders niet de huidige tabel exporteren, en dan terug importeren, maar dat ik dan een extra kolom ID heb toegevoegd? Zo ja, hoe pak ik dit het beste aan?
wat je dan ook nog kan doen is de update query vervangen door meerdere voorwaarden.
<?php
$query = "UPDATE 
                          leden 
               SET 
                          id = ".$teller." 
               WHERE 
                         voornaam = '".$row['voornaam']."' 
               AND 
                         naam = '".$row['naam']."'
               AND
                         email = '".$row['email']."'";
?>

ok, het is me gelukt. Ik heb het als volgt gedaan:

Tabel ledenlijst naar csv geëxporteerd
Inhoud tabel gewist
Nieuwe kolom lijdenlijstID aangemaakt (auto increment)
CSV opnieuw geïmporteerd
=> elke rij heeft nu een ID :)

Als afsluiter: kan ik de laatste kolom ledenlijstID als 1e plaatsen in mysql?
Dit is iets wat je prima op SQL niveau op kan lossen, daar hoeft geen letter php aan te pas te komen.

Maak nog een keer de zelfde tabel aan maar met een andere naam bijvoorbeeld:
tabel_backup

Voer vervolgens (via PHPMyAdmin) deze query uit:
INSERT INTO tabel_backup SELECT * FROM tabel

vervolgens doe je:
DROP TABLE tabel

Dan maak je tabel opnieuw aan, maar dan met een id kolom met auto_increment.

En je voert deze query uit:
INSERT INTO tabel SELECT * FROM tabel_backup

en klaar!

Reageren