SQL vraag

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Toine vd P

Toine vd P

18/12/2006 11:18:00
Quote Anchor link
Beste PHP'ers,

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)
PHP script in nieuw venster Selecteer het PHP script
1
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);
?>


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
 
PHP hulp

PHP hulp

17/11/2024 14:35:15
 
- wes  -

- wes -

18/12/2006 11:19:00
Quote Anchor link
volgens mij haal je nu dingen door mekaar, dat statement update ALLE records, en je wil er 1 terug hebben?
 
Toine vd P

Toine vd P

18/12/2006 11:22:00
Quote Anchor link
@wes - Inderdaad moet nog een WHERE achter maar u get the point toch?

EDIT - ik heb de WHERE erachter geplakt was ik vergeten :)
haastige spoed....
Gewijzigd op 01/01/1970 01:00:00 door Toine vd P
 
- wes  -

- wes -

18/12/2006 11:27:00
Quote Anchor link
Je moet een record nooit aanpassen op kopjes etc , maar ALTIJD op id (dubbele waardes etc)

dus je approach is al voud :))
 
Toine vd P

Toine vd P

18/12/2006 11:29:00
Quote Anchor link
@wes, klopt. Wrong approach, maar dat was de vraag niet.
 
- wes  -

- wes -

18/12/2006 11:30:00
Quote Anchor link
nee maar doe dat dan goed :) zo snij je jezelf alleen maar in de vingers
 
Toine vd P

Toine vd P

18/12/2006 11:36:00
Quote Anchor link
@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?
 
Jan geen

Jan geen

18/12/2006 11:40:00
Quote Anchor link
ik heb een soort gelijke vraag, als je een insert query doet hoe kun je dan achter het id van dat nieuwe record komen?
 
Joren de Wit

Joren de Wit

18/12/2006 11:42:00
Quote Anchor link
mysql_insert_id()

edit: voorbeeldje.
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
<?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;
)

?>
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
- wes  -

- wes -

18/12/2006 11:42:00
Quote Anchor link
met insert :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
$sql
= 'INSERT INTO tabel (veld) VALUES ("waarde")';
$res = mysqli_query($link,$sql);
$laatsteid = mysqli_insert_id($res);
?>
 
Toine vd P

Toine vd P

18/12/2006 11:45:00
Quote Anchor link
@wes: en met update?
 
Joren de Wit

Joren de Wit

18/12/2006 11:47:00
Quote Anchor link
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.
 
Toine vd P

Toine vd P

18/12/2006 11:50: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
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();
?>


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 )
 
Joren de Wit

Joren de Wit

18/12/2006 11:52:00
Quote Anchor link
Quote:
@iedereen: Nou wil ik alsnog weten hoe je mysql_update_id() (?) kunt gebruiken ( en of dit bestaat )
Kijk eens naar mijn post van 11.42 uur, daar staat een voorbeeld in!
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
 
- wes  -

- wes -

18/12/2006 11:52:00
Quote Anchor link
nee bestaat niet

omdat je dit of van te voren al moet doen (zoals het hoooord)
of met een select kan afvangen
 
Toine vd P

Toine vd P

18/12/2006 11:55:00
Quote Anchor link
@blanche: bedankt, ik heb je voorbeeld net al gelezen. Maar wist niet zeker of er verschil zat tussen update en insert en/of dit wel bestond. Bedankt voor je hulp
@wes: Bedankt voor je hulp. Ik ga hem uitnormaliseren

Bedankt voor de reacties!
 
Jan geen

Jan geen

18/12/2006 11:57:00
Quote Anchor link
jo bedankt maar weer :)
 



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.