SQL - Update - Alleen de ingevulde velden.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Gijs van Moosdijk

Gijs van Moosdijk

21/04/2011 11:12:36
Quote Anchor link
Welke script moet ik erbij zetten als alleen de ingevulde velden aangepast moeten worden??
 
PHP hulp

PHP hulp

25/04/2024 18:59:39
 
Write Down

Write Down

21/04/2011 11:21:29
Quote Anchor link
Neem dit maar eens door.
 
Gijs van Moosdijk

Gijs van Moosdijk

21/04/2011 11:28:37
Quote Anchor link
ja thenks is het dan dit:
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
<?php
require_once 'db_config.php';

$sql = "
    UPDATE
        werknemers
    SET
        salaris_schaal = 12
    WHERE
        voornaam = 'Tim'
"
;

if(!$res = mysql_query($sql))
{

    trigger_error(mysql_error().'<br />In query: '.$sql);
}

elseif(mysql_affected_rows() == 0)
{

    echo 'Geen records gewijzigd. <br />Query: '.$sql;
}

else
{
    echo 'Update was succesvol!';
}

?>


Toevoeging op 21/04/2011 11:32:05:

Het punt is ik heb een tabel 20 invoervelden en ik wil deze gewoon kunnen editen mocht er een typfoutje inzitten

Toevoeging op 21/04/2011 12:06:33:

welke code moet ik gebruiken voor dit:

Alleen de ingevoerde velden moeten geupdate worden
 
Gerben Jacobs

Gerben Jacobs

21/04/2011 12:30:24
Quote Anchor link
Dan defineer je in je SET alleen de velden die je wilt wijzigen.

Toevoeging op 21/04/2011 12:30:26:

Dan defineer je in je SET alleen de velden die je wilt wijzigen.
 
Gijs van Moosdijk

Gijs van Moosdijk

21/04/2011 12:41:22
Quote Anchor link
gerben ik heb op dit moment 18 velden in SET, het lukt me wel om te editen

er wordt op voorbeeld1.php een value gestuurd naar voorbeeld2.php en die ziet er zo uit:
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?
include("connection.php");
for($i=0; $i<$num_rows; $i++){

$id=$_POST['id'];
$title=$_POST['title'];
$suppl = $_POST['supplier'];
$order = $_POST['ordernumber'];
$artil = $_POST['articlename'];
$artin = $_POST['articlenumber'];
$produ = $_POST['productgroup'];
$mater = $_POST['material'];
$colou = $_POST['colour'];
$seaso = $_POST['season'];
$quant = $_POST['quantity'];
$sales = $_POST['salesprice'];
$buyin = $_POST['buyingprice'];
$orded = $_POST['orderdate'];
$trans = $_POST['transportdate'];
$delda = $_POST['deldatefix'];
$sampl = $_POST['samplesize'];
$sampd = $_POST['sampledate'];

$sql = "UPDATE mijntabel
          SET title = '$title',
          supplier = '$suppl',
          ordernumber = '$order',
          articlename = '$artil',
          articlenumber = '$artin',
          productgroup = '$produ',
          material = '$mater',
          colour = '$colou',
          season = '$seaso',
          quantity = '$quant',
          salesprice = '$sales',
          buyingprice = '$buyin',
          orderdate = '$orded',
          transportdate = '$trans',
          deldatefix = '$delda',
          samplesize = '$sampl',
          sampledate = '$sampd'
          WHERE id = $id"
;

$res = mysql_query($sql) or die(mysql_error());
}

if(mysql_affected_rows() > 0)

 header("location:voorbeeld.php");
 
?>


Toevoeging op 21/04/2011 12:44:44:

maar stel dat ik maar een vakje wijzig dan wordt de rest verwijderd
 
- Mark -

- Mark -

21/04/2011 12:50:35
Quote Anchor link
Dat wat je nu hebt is onveilig en met slechte fout afhandeling. or die is verre van mooi. De foutafhandeling die staat beschreven in de link van Write Down is vele malen mooier. Ik zou ook gelijk overstappen naar MySQLi of PDO als je net bent begonnen. De methode die je nu gebruikt is verouderd.

- Regels als $order = $_POST['ordernumber']; nergens voor nodig. gewoon $_POST['ordernumber'] gebruiken.
- vars buiten quotes halen en letten op MySQL injection. title = '$title' wordt dus title = '".mysql_real_escape_string($_POST['title'])."'
 
Gijs van Moosdijk

Gijs van Moosdijk

21/04/2011 12:58:28
Quote Anchor link
mark weet jij hoe ik 1 vakje kan editen/updaten zonder dat alles verwijderd wordt ?
 
Gerben Jacobs

Gerben Jacobs

21/04/2011 13:59:16
Quote Anchor link
Gewoon de overige waardes niet toevoegen.

Als je niet anders kan, moet je de waarde naar zichzelf verwijzen.

UPDATE programmeurs SET id = id, naam = "Gijsje", eigenschap_leeftijd = eigenschap_leeftijd, eigenschap_eigenwijs = "Behoorlijk" WHERE id = 1
Gewijzigd op 21/04/2011 13:59:42 door Gerben Jacobs
 
- Mark -

- Mark -

21/04/2011 16:05:21
Quote Anchor link
Je kunt van tevoren toch gewoon de gegevens uit de database trekken en daarmee de formulier velden met de huidige waarde vullen? Dan raak je ook niets kwijt, tenzij dat de bedoeling is natuurlijk.
 
Noppes Homeland

Noppes Homeland

21/04/2011 17:22:55
Quote Anchor link
Gewoon alle velden die geupdate kunnen worden opnemen in de SET en dan lekker met IFNULL aan de slag gaan
 
Gijs van Moosdijk

Gijs van Moosdijk

21/04/2011 18:32:21
Quote Anchor link
- Mark - Dat is ook precies wat ik wil. ik haal ze op met mysql_result() maar stel ik wil een edit maken dan moet hij al deze gegevens van de desbetreffende ID naar de volgende pagina als "value" posten en automatisch invullen en weergeven. Heeft iemand een voorbeeld hiervan of eerder gemaakt dat ie even de code kan updaten? dan ben je echt een vent :D

Toevoeging op 22/04/2011 17:07:24:

niemand?


Toevoeging op 22/04/2011 17:31:19:

hoe kan ik ervoor zorgen dat $sd = mysql_result($result,$i,"sampledate");
naar bewerken.php wordt verzonden met deze waarden??? is hier een tutorial van ??
 



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.