[php/mysql]

Pagina: 1
Acties:
  • 39 views sinds 30-01-2008

  • ijsthijs
  • Registratie: Juni 2003
  • Laatst online: 22-05 09:49
Hello,

ik heb een probleempje met het updaten van wat records in mijn database. De tabel ziet er als volgt uit:

ID | Categorie | Volgorde | Naam
1 1 0 Henk
2 1 1 Piet
3 1 2 Jan

enzovoort...

Nu wou ik graag de kolom volgorde geheel gaan updaten, namelijk alles met 1 verhogen.

Dus ik dacht selecteer alles in de tabel, en laat in een while loop alle Volgordes updaten met behulp van update.

Helaas, dit werkt dus niet zeg maar..

iemand mooie tips om alleen de volgorde te updaten ?

Het volgende heb ik nu, maar zonder resultaat:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php

if(isset($cat) && isset($start)) {

$query = mysql_query("SELECT * FROM parts WHERE Categorie = '$cat'");


while($part = mysql_fetch_assoc($query)) {

$optel = $part[Volgorde]+1;

if($part[Volgorde] >= $start) {
$voor[] = $part[Volgorde]; 
$na[] = $optel;
}


}

for($i = 0; $i < count($voor); $i++) 

{
mysql_query("UPDATE parts SET Volgorde = '$na[$i]' WHERE Volgorde = '$voor[$i]' && Categorie = '$cat'") or die (mysql_error());

}
mysql_query("INSERT INTO parts VALUES('','$cat','$plek','TEST')") or die (mysql_error());


}
?>


Alvast bedankt :-)

eenechtezzper.nl


  • whoami
  • Registratie: December 2000
  • Laatst online: 16:25
UPDATE tabel
SET volgorde = volgorde +1

https://fgheysels.github.io/


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 17:50

gorgi_19

Kruimeltjes zijn weer op :9

:?
SQL:
1
Update Tabelnaam Set Volgorde = Volgorde + 1


offtopic:
whoami: wees eens niet een paar seconden eerder dan mij.. :P

[ Voor 42% gewijzigd door gorgi_19 op 23-04-2004 14:36 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • ijsthijs
  • Registratie: Juni 2003
  • Laatst online: 22-05 09:49
Euhm, mijn vraagstelling was onjuist kom ik net achter :-)

Het is de bedoeling dat de kolom wordt upgedate vanaf een aangegeven punt, dus bijvoorbeeld pas als Volgorde gelijk is aan 5 en de categorie overeenkomt met getal 1.

Later wordt dan een nieuw record toegevoegd op de op de plek van de 5e record, deze is namelijk opgehoogd naar 6.

eenechtezzper.nl


  • Markieman
  • Registratie: December 2001
  • Laatst online: 15-05 12:16
ijsthijs schreef op 23 april 2004 @ 14:46:
Euhm, mijn vraagstelling was onjuist kom ik net achter :-)

Het is de bedoeling dat de kolom wordt upgedate vanaf een aangegeven punt, dus bijvoorbeeld pas als Volgorde gelijk is aan 5 en de categorie overeenkomt met getal 1.

Later wordt dan een nieuw record toegevoegd op de op de plek van de 5e record, deze is namelijk opgehoogd naar 6.
Zoiets?

code:
1
2
UPDATE tabelnaam SET volgorde = volgorde + 1
WHERE volgorde >= 5 AND categorie = 1

[ Voor 2% gewijzigd door Markieman op 23-04-2004 14:49 . Reden: werd wat breed =) ]

You do not fear them? - The Wraith? Naah. Now *clowns*, that's another story.


  • whoami
  • Registratie: December 2000
  • Laatst online: 16:25
Even eenvoudig
code:
1
2
UPDATE tabel SET volgorde = volgorde + 1
WHERE tabel.categorie = 1 AND volgorde >= 5


Misschien even een Sql tutorial erbij nemen?

https://fgheysels.github.io/


  • ijsthijs
  • Registratie: Juni 2003
  • Laatst online: 22-05 09:49
Een sql tutorial is wel wat voor mij, gebruik nog even wat te veel php :-)

Maar zo update hij inderdaad netjes vanaf 5, echter hij verhoogt de gehele kolom
met de laatste waarde van kolom Volgorde +1.

Dit heb ik dus nu:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$start = 5;
$cat = 1;
$query = mysql_query("SELECT * FROM zundapp_parts WHERE Categorie = '$cat'"); //ongeveer 100 records worden geselecteerd, de Volgorde loopt van 0 tot 99


while($part = mysql_fetch_assoc($query)) {


mysql_query("UPDATE zundapp_parts SET Volgorde = Volgorde + 1 WHERE Volgorde >=$start  AND Categorie = '$cat' ") or die (mysql_error());

}
// Nu blijft over, 5 kolommen met 0 t/m 4 als Volgorde en 95 kolommen met 96 t/m 191. Das nie de bedoeling 
?>


edit:
MWaaha, die while loop is natuurlijk compleet overbodig en belachelijk. Dank u allen! Het is mooi zo

[ Voor 12% gewijzigd door ijsthijs op 23-04-2004 14:58 ]

eenechtezzper.nl


  • whoami
  • Registratie: December 2000
  • Laatst online: 16:25
Basic SQL dus, en een slechte topictitel.

https://fgheysels.github.io/

Pagina: 1

Dit topic is gesloten.