id's van tabel1 wegschrijven in tabel2

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Nicos

Nicos

18/12/2009 23:16:00
Quote Anchor link
Ik wil iets maken maar kan maar niet bedenken hoe ik dit ga oplossen.

Ik heb 2 tabellen met in elk 100 records. De tabellen bevatten totaal verschillende records. Ik heb een veld met id's in tabel 1 die ik in een veld in tabel 2 wil schrijven. Nu is het zo dat de id's niet een opeenvolgende reeks van getallen zijn, er zitten soms gaten in de reeks.

Normaal loop ik zo alle records door:

while ($row = mysql_fetch_array($result))
{
$id = $rowrebus["id"];
}

Maar hoe zeg ik nu in deze loop dat ik het id weg wil schrijven in record 1 van tabel 2, en de volgende in record 2 van tabel 2... enz.

Ik kan dus niet met een tellertje werken. In VB is het mogelijk om een recordset.movenext te doen, maar deze functie kent mysql niet.

Wie weet raad?
 
PHP hulp

PHP hulp

20/11/2024 13:43:18
 
Joren de Wit

Joren de Wit

18/12/2009 23:21:00
Quote Anchor link
Nicos schreef op 18.12.2009 23:16:
Maar hoe zeg ik nu in deze loop dat ik het id weg wil schrijven in record 1 van tabel 2, en de volgende in record 2 van tabel 2... enz.
Waarom zou je dat willen?

Een id wordt enkel gebruikt om een record uniek aan te kunnen duiden (elk record heeft zijn eigen id). Het maakt dus ook niet uit of dat 1, 2, 200 of 932883 is, zolang het maar elke keer uniek is.

ps. Als je een opeenvolgende lijst wilt, kun je dat natuurlijk heel goed mbv PHP genereren. En als je het in HTML wilt weergeven, kun je zelfs een numbered list gebruiken.
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
Nicos

Nicos

19/12/2009 13:19:00
Quote Anchor link
Ik wil geen lijst met opeenvolgende nummers. Ik wil de íd's uit de ene tabel naar de andere schrijven. In tabel 1 staan 100 deelnemers in tabel 2 staan de prijzen. Dus ik wil doormiddel van het id de prijzen uit delen.
 
Joren de Wit

Joren de Wit

19/12/2009 22:34:00
Quote Anchor link
En de prijzen hebben wel opeenvolgende id's? Dus 1 tot 100?

In dat geval zou je alle id's uit tabel 1 kunnen selecteren. Terwijl je door deze resultaatset heel loopt laat je een teller meelopen die je na elke loop 1 ophoogt. Vervolgens koppel je het huidige id uit tabel 1 aan het id uit tabel 2 met dezelfde waarde als je tellertje heeft.

Dus:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
// SELECT query met $result als resultaatset

$i = 1;
while($row = mysql_fetch_assoc($result)) {
  $sql = "
    UPDATE tabel2
    SET winnaar = "
.$row['id']."
    WHERE prijs = "
.$i."
  "
;

  // Query uitvoeren...

  $i++;
}

?>
 
Nicos

Nicos

19/12/2009 22:59:00
Quote Anchor link
Hi Blanche,

Dat is nu net het probleem de prijzentabel hebben geen opeenvolgende id's.

Ik zat te denken om de id's van tabel 1 en tabel 2 in een array op te slaan. Vervolgens de array doorlopen om zo tabel 2 te vullen. Wil alleen nog niet echt lukken...

Gr.
 
Joren de Wit

Joren de Wit

20/12/2009 09:11:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
// SELECT query op tabel1 om id's te selecteren

$aIds = array();
while($row = mysql_fetch_assoc($result)) {
  $aIds[] = $row['id'];
}


// SELECT query op tabel 2 om prijzen te selecteren

$i = 0;
while($row = mysql_fetch_assoc($result)) {
  $sql = "
    UPDATE tabel2
    SET winnaar = "
.$aIds[$i]."
    WHERE prijs = "
.$row['prijs']."
  "
;

  // Query uitvoeren...

  $i++;
}

?>


Zo dan?
 



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.