INSERT, UPDATE en / of DELETE

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Richard Duinmayer

Richard Duinmayer

05/03/2009 18:07:00
Quote Anchor link
Ik wil een aantal checkboxen verwerken tijdens een EDIT ronde.

Tijdens deze EDIT is het mogelijk dat er een nieuwe checkbox is aangevinkt of dat een bestaande is uitgevinkt.

Hoe kan ik zorgen dat dit netjes verwerkt blijft worden?

Ik heb de onderstaande UPDATE maar daar ga ik het niet meer redden..

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
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{

                    if ($_POST['update_medewerker'] == "yes")
                      {

                            // Zet POSTs om naar variable
                            foreach($_POST['beschikbaar'] as $key => $value)
                            {

                             $beschikbaar = (isset($value)) ? $key : '';
                              
                             // Voeg beschikbaarheid toe via een INSERT  
                             $sql2 = "UPDATE INTO beschikbaarheid
                                       SET medewerker_id = '"
. $medewerker_id . "',
                                           dag = '"
. $beschikbaar . "'
                                         WHERE medewerker_id = '"
. $_GET['id'] ."' ";    
                                  
                                           
                            
                              // Voer SQL uit
                             mysql_query($sql2) or die("Oops... INSERT INTO beschikbaarheid gaat fout. ".mysql_error());
                            }


                                if (!$result = mysql_query($sql2))
                                {

                                    echo 'Helaas is er een fout opgetreden bij het wijzigen van de kantoorruimte';
                                    echo ':' . mysql_errno() . ':' . mysql_error() . '(<pre>' . $sql2 . '</pre>)';                                            
                                }

                                else
                                {
                                    echo '<b>Beschikbaarheid is gewijzigd.</b><br>' ;
                                }
                                   }
            }

?>
 
PHP hulp

PHP hulp

08/05/2024 10:35:12
 
Niek van Milligen

Niek van Milligen

05/03/2009 18:34:00
Quote Anchor link
Moet je bij UPDATE ook INTO gebruiken??? Voor zover ik weet niet...
Kan ook aan mij liggen maar ik gebruik hem altijd zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$sqlcode
="UPDATE content_bebouwing_straten SET tekst = '" . mysql_real_escape_string($tekst) . "' WHERE id = " . $id . " LIMIT 1";
?>
 
Jesper Diovo

Jesper Diovo

05/03/2009 18:58:00
Quote Anchor link
@Niek: laat die LIMIT maar zitten.
 
Niek van Milligen

Niek van Milligen

05/03/2009 19:13:00
Quote Anchor link
@Jezpur Klopt, zit er nog in van iets anders... :-)
 
Richard Duinmayer

Richard Duinmayer

05/03/2009 19:19:00
Quote Anchor link
INTO vergeten met knippen en plakken.

Heeft iemand een versimpeld voorbeeld hoe ik die INSERT, UPDATE DELETE in één keer netjes kkan verwerken?
 
Jesper Diovo

Jesper Diovo

05/03/2009 19:27: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
INSERT INTO
  tabelnaam
  (veld1, veld2, veld3)
VALUES
  ('waarde1', 'waarde2', 'waarde3');

UPDATE
  tabelnaam
SET
  veld1 = 'waarde1'
WHERE
  veld2 = 'waarde2';

DELETE FROM
  tabelnaam
WHERE
  veld1 = 'waarde1';
 
Richard Duinmayer

Richard Duinmayer

05/03/2009 20:15:00
Quote Anchor link
Haha ja thnx Jezpur, maar bedoelde meer iets van:

if count = als in db then UPDATE, elseif count < database then DELETE else INSERT...

Oid
 
Jesper Diovo

Jesper Diovo

05/03/2009 20:43:00
Quote Anchor link
Doe dat maar gewoon met PHP.
 
Richard Duinmayer

Richard Duinmayer

05/03/2009 21:07:00
Quote Anchor link
Versimpeld heb ik het nu zo, maar ik voor zie wat problemen.

Nu is er alleen controle op of de waarde gelijk, kleiner dan over groter dan is. Maar er is geen check op wat er nu precies is uit gevinkt 8-)

Iemand zou nu dus maandag uit kunnen vinken en zaterdag aanvinken dan blijft het aantal gelijk en dan wordt er een UPDATE gedaan maar dat gaat niet lukken want zaterdag moet een INSERT krijgen.

Hoe kan ik dit controleren?


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
<?php

                            // Zet POSTs om naar variable
                            foreach($_POST['beschikbaar'] as $key => $value)
                            {

                             $beschikbaar = (isset($value)) ? $key : '';
                              
                             // Controle op huidige aantal dagen beschikbaar en aantal aangevinkte dagen
                             $old_checkbox = ceil(mysql_num_rows(mysql_query("SELECT * FROM beschikbaarheid WHERE medewerker_id= '". $_GET['id'] ."' ")));
                             $new_checkbox = count($_POST['beschikbaar']);
                            
                             if ($old_checkbox == $new_checkbox)
                             {

                                UPDATE
                             }
                             elseif ($old_checkbox < $new_checkbox)
                             {

                                INSERT
                             }
                             else
                             {
                                DELETE
                             }
                            
                             // Voeg beschikbaarheid toe via een INSERT
                             $sql2 = "UPDATE beschikbaarheid
                                       SET dag = '"
. $beschikbaar . "'
                                         WHERE medewerker_id = '"
. $_GET['id'] ."' ";    
                                                                                                          
                              // Voer SQL uit
                             mysql_query($sql2) or die("Oops... INSERT INTO beschikbaarheid gaat fout. ".mysql_error());
                            }

                                                                                                                                            
                                if (!$result = mysql_query($sql2))
                                {

                                    echo 'Helaas is er een fout opgetreden bij het wijzigen van de kantoorruimte';
                                    echo ':' . mysql_errno() . ':' . mysql_error() . '(<pre>' . $sql2 . '</pre>)';                                            
                                }

                                else
                                {
                                     $totaal = count($_POST['beschikbaar']);
                                     echo $totaal;
                                     echo ' , ' . $old_checkbox;
                                    echo '<b>Beschikbaarheid is gewijzigd.</b><br>' ;
                                }


?>
Gewijzigd op 01/01/1970 01:00:00 door Richard Duinmayer
 
Richard Duinmayer

Richard Duinmayer

06/03/2009 18:30:00
Quote Anchor link
Iemand hier ideëen over / voor?
 
- SanThe -

- SanThe -

06/03/2009 18:45:00
Quote Anchor link
Regel 6 is overbodig want bij niet aangevinkt => niet in $_POST.
Regels 9 en 10 => tellen lijkt mij overbodig. En ceil() helemaal aangezien het altijd een integer teruggeeft.
Volgende if()jes lijken mij ook zinloos omdat het niets met het aantal rijen te maken heeft maar met de keys.

Je zal het moeten aanpakken op dezelfde manier als het scriptje dat ik heb gemaakt in je andere post.
 
Richard Duinmayer

Richard Duinmayer

06/03/2009 19:39:00
Quote Anchor link
Deze bedoel je toch?



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
<?php
$days
= array('ma'=>'Maandag', 'di'=>'Dinsdag', 'wo'=>'Woensdag', 'do'=>'Donderdag', 'vr'=>'Vrijdag', 'za'=>'Zaterdag', 'zo'=>'Zondag');
$hulp = array();
while ($arr3 = mysql_fetch_assoc($res))
{

    $hulp[] = $arr3['dag'];
}

foreach($days as $day=>$name)
{

    echo '<input type="checkbox" name="beschikbaar[' .$day. ']"' . ((in_array($day, $hulp)) ? ' checked="checked"' : '') . '>';
    echo $name;
    echo '<br>' . "\n";
}

?>
 
- SanThe -

- SanThe -

06/03/2009 19:43:00
Quote Anchor link
Ja
 
Richard Duinmayer

Richard Duinmayer

06/03/2009 19:46:00
Quote Anchor link
Oke dan ga ik daarmee verder, dank je wel
 
- SanThe -

- SanThe -

06/03/2009 20:09:00
Quote Anchor link
Hoeveel regels is je script?
 
Richard Duinmayer

Richard Duinmayer

09/03/2009 16:37:00
Quote Anchor link
Deze pagina telt 684 regels...
 
- SanThe -

- SanThe -

09/03/2009 16:40:00
Quote Anchor link
Beetje erg groot om te posten.
Zie je PM.
 



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.