SQL vraag
ik wil graag een UPDATE query uitvoeren en graag als dat ge-update wordt meteen het bijpassende ID terugkrijgen.
Ik heb als omweg dit:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
mysql_query("UPDATE tabel_met_kopjes SET kopje = '".$kop."' WHERE kopje = '".$oude_kop."'");
$resultaat = mysql_query("SELECT * FROM tabel_met_kopjes WHERE kopje = '".$kop."'");
$record = mysql_fetch_array($resultaat);
?>
mysql_query("UPDATE tabel_met_kopjes SET kopje = '".$kop."' WHERE kopje = '".$oude_kop."'");
$resultaat = mysql_query("SELECT * FROM tabel_met_kopjes WHERE kopje = '".$kop."'");
$record = mysql_fetch_array($resultaat);
?>
En dan $record['id_veldnaam'] gebruiken.
Toen hoorde ik van
- mysql_insert_id();
Kan dit ook gebruikt worden in een UPDATE kwerie ?
Zoja, hoe ziet deze syntax eruit?
Vriendelijke groet,
Twan v/d Poel
Gewijzigd op 01/01/1970 01:00:00 door Toine vd P
volgens mij haal je nu dingen door mekaar, dat statement update ALLE records, en je wil er 1 terug hebben?
EDIT - ik heb de WHERE erachter geplakt was ik vergeten :)
haastige spoed....
Gewijzigd op 01/01/1970 01:00:00 door Toine vd P
dus je approach is al voud :))
@wes, klopt. Wrong approach, maar dat was de vraag niet.
nee maar doe dat dan goed :) zo snij je jezelf alleen maar in de vingers
@wes: Ik snap wel dat dit niet correct is. En ik weet hoe het opgelost moet worden, maar mysql_insert_id() en misschien mysql_update_id() heb ik hier echt even nodig. Kun je me een voorbeeldje geven miss?
ik heb een soort gelijke vraag, als je een insert query doet hoe kun je dan achter het id van dat nieuwe record komen?
mysql_insert_id()
edit: voorbeeldje.
edit: voorbeeldje.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
// tabel heeft 3 kolommen:
// id, kolom1 en kolom2
$sql = "
INSERT INTO tabelnaam (kolom1, kolom2)
VALUES (waarde1, waarde2)
";
if(!$res = mysql_query($sql))
{
trigger_error(mysql_error());
}
else
{
$insert_id = mysql_insert_id();
echo 'Het id van het laatst ingevoegde record is: '.$insert_id;
)
?>
ini_set('display_errors', 1);
error_reporting(E_ALL);
// tabel heeft 3 kolommen:
// id, kolom1 en kolom2
$sql = "
INSERT INTO tabelnaam (kolom1, kolom2)
VALUES (waarde1, waarde2)
";
if(!$res = mysql_query($sql))
{
trigger_error(mysql_error());
}
else
{
$insert_id = mysql_insert_id();
echo 'Het id van het laatst ingevoegde record is: '.$insert_id;
)
?>
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
@wes: en met update?
Als je update heeft het record dat je update al een id. En aangezien dat id uniek is, kun je dat gewoon met een SELECT query opvragen.
Code (php)
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
31
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
31
<?php
//---------------------------- 28-11-2006,tvdp: Database verbinding
include("../database/database.php");
//---------------------------- 28-11-2006,tvdp: POST array uitpakken
if (!empty($_POST))
{
extract($_POST);
}
//---------------------------- 28-11-2006,tvdp: Alles updaten indien het de alineas waren die gewijzigd werden
if ($pagina_optie == "content")
{
$teller = 0;
while (isset($nieuwe_content[$teller]))
{
mysql_query("UPDATE pagina_subkoppen SET subkop = '".$nieuwe_kop[$teller]."' WHERE pagina_id = ".$pagina_nummer."");
$resultaat = mysql_query("SELECT * FROM pagina_subkoppen WHERE subkop = '".$nieuwe_kop[$teller]."'");
$record = mysql_fetch_array($resultaat);
mysql_query("UPDATE pagina_content SET content = '".$nieuwe_content[$teller]."' WHERE subkop_id = ".$record['subkop_id']."");
$teller++;
}
}
if ($pagina_optie == "kop")
{
mysql_query("UPDATE pagina_koppen SET kop = '".$kop_nieuw."' WHERE link_id = ".$pagina_nummer."");
}
header("location:../algemeen/index.php?p=admin&a=home&t=bewerk_pagina_klaar");
exit();
?>
//---------------------------- 28-11-2006,tvdp: Database verbinding
include("../database/database.php");
//---------------------------- 28-11-2006,tvdp: POST array uitpakken
if (!empty($_POST))
{
extract($_POST);
}
//---------------------------- 28-11-2006,tvdp: Alles updaten indien het de alineas waren die gewijzigd werden
if ($pagina_optie == "content")
{
$teller = 0;
while (isset($nieuwe_content[$teller]))
{
mysql_query("UPDATE pagina_subkoppen SET subkop = '".$nieuwe_kop[$teller]."' WHERE pagina_id = ".$pagina_nummer."");
$resultaat = mysql_query("SELECT * FROM pagina_subkoppen WHERE subkop = '".$nieuwe_kop[$teller]."'");
$record = mysql_fetch_array($resultaat);
mysql_query("UPDATE pagina_content SET content = '".$nieuwe_content[$teller]."' WHERE subkop_id = ".$record['subkop_id']."");
$teller++;
}
}
if ($pagina_optie == "kop")
{
mysql_query("UPDATE pagina_koppen SET kop = '".$kop_nieuw."' WHERE link_id = ".$pagina_nummer."");
}
header("location:../algemeen/index.php?p=admin&a=home&t=bewerk_pagina_klaar");
exit();
?>
De nieuwe_content en de nieuwe_kop zijn llebei meegegeven als
<inout type="text" name="nieuwe_kop[]"> <-- zodat het ee narray wordt.
@wes, oké oké ik ga flink normaliseren
@iedereen: Nou wil ik alsnog weten hoe je mysql_update_id() (?) kunt gebruiken ( en of dit bestaat )
Quote:
@iedereen: Nou wil ik alsnog weten hoe je mysql_update_id() (?) kunt gebruiken ( en of dit bestaat )
Edit:
Oeps, verkeerd gelezen. Zie mijn reactie van 11.47 uur en reactie van wes hieronder...
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
omdat je dit of van te voren al moet doen (zoals het hoooord)
of met een select kan afvangen
@wes: Bedankt voor je hulp. Ik ga hem uitnormaliseren
Bedankt voor de reacties!
jo bedankt maar weer :)