Toon posts:

[PHP MYSQL] update met where en select :? help

Pagina: 1
Acties:

Verwijderd

Topicstarter
dit werkt niet
hoe moet ik dit wel doen ?
$sql_update="UPDATE bnr_inhoud_text SET bnr_inhoud_text.dak='$dak' WHERE bnr=select bnr_type.bnr from bnr_type where bnr_type.bnr='$bng_type'";

ut probleem zit hem naar de where
de warde van $dak moet in da kolom dak worden gezet
als de bnr uit deze tabel(bnr_inhoud_text) over een komt met de bnr uit de tabel bnr_type en daar de waarde van type gelijk is aan

ik kom er nie uit
als ik vind van jooins ofzo is het alleen maar met select niet met een where
/me raakt de kluts daardoor een beetje kwijt :?

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

probeer het nog eens en nu iets meer leesbaar?

Verwijderd

:?

Verwijderd

Topicstarter
ik heb dus een apar tabellen
deze 2 zijn van belang:
bnr_type en bnr_inhoud_text

bnr_type heeft 2 collomen
namelijk bnr en type
bnr bevat een nummer
en type bevalt 4b,4c,4d,6b,6d of 8d

bnr_inhoud_txt heeft veel collomen, waar er maar 2 essentieel zijn momenteel
deze zijn bnr bevat een nummer (zelfde reeks als in bnr_type)
en een kollom dak waar text in kan

nu wil ik met een comando van my sql het zo hebben dat

een waarde voor dak (bijvoorbeeld rood) in de tabel wordt aangepast waar het bnr gelijk is aan :
het bnr nummer dat over een komt met het type (bijvoorbeeld) 4b uit de kolom bnr_type


UPDATE bnr_inhoud_text SET bnr_inhoud_text.dak='rood' WHERE bnr=select bnr_type.bnr from bnr_type where bnr_type.type='4b';

dit werkt niet
weet iemand hoe dit wel moet ?

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Tizzwat: :?
dat zou ik ook zeggen :?


roadrunner >>
Volgens mij probeer je een subselect te doen. Dat kan niet in MySQL. Verdeel het in meerdere queries

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

Topicstarter
is ook niet mogelijk met een join ofzo
das jammer wou het wel graag
dan maar op delen in php met wat lusjes

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Op donderdag 06 december 2001 16:23 schreef roadrunner het volgende:
is ook niet mogelijk met een join ofzo
das jammer wou het wel graag
dan maar op delen in php met wat lusjes
Weet niet of je kan joinen in updates in MySQL. Maar dat staat vast wel in, jawel, daar komtie DE MANUAL!!!! :+

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Volgens mij hoef je alleen maar de = te vervangen door IN
bij de subselect.
Het is trouwens een goed idee om een tabel te aliassen als je de tabelnaam voor een kolom wilt zetten

  • Onno
  • Registratie: Juni 1999
  • Niet online
Op maandag 10 december 2001 19:50 schreef Goodielover het volgende:
Volgens mij hoef je alleen maar de = te vervangen door IN
bij de subselect.
En dan? Daar gaat MySQL geen subqueries van ondersteunen hoor. :P

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op maandag 10 december 2001 19:52 schreef Onno het volgende:
En dan? Daar gaat MySQL geen subqueries van ondersteunen hoor. :P
Das toch zo'n nieuwe bug in mysql ? ;)

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Sorry piepels (i mean it in a funny kind of way)
ik ken de preciese eigenaardigheden van MySQL niet.
Ik ben meer de professionele DBMS-en gewend.
Ik heb nog even in de manual van MySQL gekeken, en vond daar wel een sub-select. Daar stond niet bij dat het niet in een update gebruikt kan worden en bij de syntax van UPDATE stond het ook niet. Sucked de manual?

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op maandag 10 december 2001 20:09 schreef Goodielover het volgende:
Sucked de manual?
Van mysql?

Vind ik wel, dat ding is nauwelijks gestructureerd erg onduidelijk en veel te groot.

Magoed, mysql ondersteund uberhaupt geen subqueries, niet in select, niet in update (maar wel een beetje in insert geloof ik |:( ) etc.

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Sorry, niet goed gelezen van mij:
quote: Sub-selects are scheduled for implementation in Version 4.x.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op maandag 10 december 2001 20:22 schreef Goodielover het volgende:
Sorry, niet goed gelezen van mij:
quote: Sub-selects are scheduled for implementation in Version 4.x.
Yupz, en dan dus op zijn vroegst in 4.1 geloof ik.

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Ik heb het statement nog eens goed bekeken en zie

Huidig:
$sql_update="
UPDATE bnr_inhoud_text
SET bnr_inhoud_text.dak='$dak'
WHERE bnr=
select bnr_type.bnr
from bnr_type
where bnr_type.bnr='$bng_type'
";

Lijkt me dus dat dit statement ook als volgt kan.
Nieuw:
$sql_update="
UPDATE bnr_inhoud_text
SET bnr_inhoud_text.dak='$dak'
WHERE bnr='$bng_type'
";

  • Onno
  • Registratie: Juni 1999
  • Niet online
Bijna. Maar niet helemaal. Jouw query gaat nl. ook updaten als $bng_type niet in bnr_type.bnr voorkomt, de oorspronkelijke doet dat niet.

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Op maandag 10 december 2001 20:31 schreef Onno het volgende:
Bijna. Maar niet helemaal. Jouw query gaat nl. ook updaten als $bng_type niet in bnr_type.bnr voorkomt, de oorspronkelijke doet dat niet.
Sorry, ja hebt gelijk. Maar zoals ik net ook al zei, ik ben gewend om professionele databases te maken, die referentieel integer zijn. Dus als je daar niet voor bent, heb je idd helemaal gelijk

Verwijderd

Topicstarter
sorry nog een late reactie
had na dse manual niet meer gekeken had begrepen dat ut nie kon dus heb ut zo opgelost
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?
$sql_select="select bnr from bnr_type where type='$bng_type'";
 $result = mysql_query($sql_select, $db);
 if ($result)
 {
  while ($bnr = mysql_fetch_row($result))
  {
   $sql_update="UPDATE bnr_inhoud_text SET bnr_inhoud_text.wc_wand='$wc_wand' WHERE bnr=$bnr[0]";
   $resuld = mysql_query($sql_update, $db);
   if ($resuld)
{
?>
Pagina: 1