Tabel ID vergeten, alsnog toevoegen?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jan H

Jan H

11/02/2007 15:03:00
Quote Anchor link
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
 
PHP hulp

PHP hulp

20/11/2024 03:36:45
 
Nick Mulder

Nick Mulder

11/02/2007 15:06:00
Quote Anchor link
Zou evt. met een while loop kunnen maar is niet de handigste methode...
 
Stefan van Iwaarden

Stefan van Iwaarden

11/02/2007 15:12:00
Quote Anchor link
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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?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.
Gewijzigd op 01/01/1970 01:00:00 door Stefan van Iwaarden
 
Jan H

Jan H

11/02/2007 15:39:00
Quote Anchor link
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?
 
Stefan van Iwaarden

Stefan van Iwaarden

11/02/2007 16:07:00
Quote Anchor link
wat je dan ook nog kan doen is de update query vervangen door meerdere voorwaarden.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$query
= "UPDATE
                          leden
               SET
                          id = "
.$teller."
               WHERE
                         voornaam = '"
.$row['voornaam']."'
               AND
                         naam = '"
.$row['naam']."'
               AND
                         email = '"
.$row['email']."'";
?>
 
Jan H

Jan H

11/02/2007 16:16:00
Quote Anchor link
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?
 
Bo az

Bo az

11/02/2007 16:18:00
Quote Anchor link
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!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.