Toon posts:

[MySQL] Velden met 1 verhogen*

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil voor verschillende locaties de temperatuur verhogen. Ik doe dat op de volgende manier:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?

$result = mysql_query("SELECT * FROM locations GROUP BY id DESC");
while ($row = mysql_fetch_array($result)) {
  
  if($_GET["c"] == "plus") {
    $plus =  $row['temperature'] +1;
    mysql_query("UPDATE locations SET temperature='$plus' WHERE id=".$_GET["id"]."");
    header("Location: ../thuis?p=voorbeeld");
  }

  echo $row["location"];
  echo "<a href=\"?p=voorbeeld&c=plus&id=".$row['id']."\">[img]\"images/plus.gif\"[/img]</a>";
  echo "".$row["temperature"]."<br />";
}

?>


Echter nu kan ik alleen maar de laatste locatie verhogen met 1. Ik wil ze allemaal afzonderlijk kunnen verhogen. Iemand enig idee hoe ik dat realiseer?

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 09:16

crisp

Devver

Pixelated

ehm, je kan gewoon dit doen in SQL hoor:
SQL:
1
UPDATE locations SET temperature = temperature + 1

Intentionally left blank


  • Paul
  • Registratie: September 2000
  • Laatst online: 09:22
Om ze allemaal met 1 te verhogen kun je 2 dingen doen:
- Alle rows aflopen
- update blaat set temperatuur=temperatuur+1

Ik weet alleen niet of iedere database-server (in dit geval dus mysql) die 2e snapt :)

"Your life is yours alone. Rise up and live it." - Richard Rahl
Rhàshan - Aditu Sunlock


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Paul Nieuwkamp schreef op donderdag 01 december 2005 @ 22:21:
Ik weet alleen niet of iedere database-server (in dit geval dus mysql) die 2e snapt :)
Lukt ook in MySQL prima. ;)

@TS: zoek eens ook eens op wat SQL injection is. Dat gaat je nog wat ellende besparen. :P

[ Voor 21% gewijzigd door NMe op 01-12-2005 22:31 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
Ik kan het idd ook in SQL doen maar dan zit ik als het ware met hetzelfde probleem.

Badkamer 22C
Slaapkamer 23C
Woonkamer 22C

Als ik nu de temperatuur van de badkamer wil verhogen, verhoogt hij deze direct met 3 omdat er 3 records zijn...

Verwijderd

Verwijderd schreef op vrijdag 02 december 2005 @ 10:58:
Ik kan het idd ook in SQL doen maar dan zit ik als het ware met hetzelfde probleem.

Badkamer 22C
Slaapkamer 23C
Woonkamer 22C

Als ik nu de temperatuur van de badkamer wil verhogen, verhoogt hij deze direct met 3 omdat er 3 records zijn...
Weet je dat zeker? 8)7 Als je UPDATE locations SET temp=temp+1 WHERE id='id_badkamer' doet, moet het volgens mij gewoon goed gaan...

  • [ash]
  • Registratie: Februari 2002
  • Laatst online: 05-04-2025

[ash]

Cookies :9

En hier nog meer informatie voor de TS: Update Syntax

Verwijderd

Topicstarter
Verwijderd schreef op vrijdag 02 december 2005 @ 11:00:
[...]

Weet je dat zeker? 8)7 Als je UPDATE locations SET temp=temp+1 WHERE id='id_badkamer' doet, moet het volgens mij gewoon goed gaan...
Dat dacht ik ook, maar het is helaas niet zo. Hij verhoogt het aantal wel met 1 maar keer het aantal records dat in de tabel staan. Is hier een oplossing voor?

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op vrijdag 02 december 2005 @ 13:20:
[...]


Dat dacht ik ook, maar het is helaas niet zo. Hij verhoogt het aantal wel met 1 maar keer het aantal records dat in de tabel staan. Is hier een oplossing voor?
Je doet toch écht ergens iets fout. Wat je nu beweert is gewoon onzin.
Post je query eens?

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Dido
  • Registratie: Maart 2002
  • Laatst online: 22-04 17:52

Dido

heforshe

Je moet je update ook niet doen binnen een loop waar je door je hele tabel heenloopt ;)

Je doet nu een select, en binnen die select eeen update; nergens voor nodig.
Je hebt alleen je update nodig.

[ Voor 41% gewijzigd door Dido op 02-12-2005 13:25 ]

Wat betekent mijn avatar?


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Dido schreef op vrijdag 02 december 2005 @ 13:25:
Je moet je update ook niet doen binnen een loop waar je door je hele tabel heenloopt ;)

Je doet nu een select, en binnen die select eeen update; nergens voor nodig.
Je hebt alleen je update nodig.
Goeiemorgen! Jij bent een partij alert zeg! Dat is het geheid ja!

Wat hij dus zegt :P

[ Voor 3% gewijzigd door RobIII op 02-12-2005 13:27 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Dido
  • Registratie: Maart 2002
  • Laatst online: 22-04 17:52

Dido

heforshe

RobIII schreef op vrijdag 02 december 2005 @ 13:26:
Goeiemorgen! Jij bent een partij alert zeg! Dat is het geheid ja!
En dat voor een vrijdagmiddag :+

Wat betekent mijn avatar?


Verwijderd

Topicstarter
En het is ook nog eens de oplossing! Ik dacht echt dat ik dat ook geprobeerd had... Bedankt!

  • Obliterator
  • Registratie: November 2000
  • Laatst online: 30-03 13:50
Zo zie je maar weer Programmeren != Proberen...
Pagina: 1