checkbox controle of true of false

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Remco schrubben

remco schrubben

01/04/2012 02:58:02
Quote Anchor link
Goede nacht,

Ik zit met een controle probleem.
Op een bewerk pagina kan ik bepaalde gegevens bewerken en opnieuw na de database zenden. Dit is verder geen probleem. Maar nu moest er een checkbox inkomen welke een bepaalde waarde heeft. Zodra deze checkbox gevinkt is, zal deze ja na de database zenden.

Dit werk ook nog volledig zoals het hoort. Maar nu kan het zijn dat ik de gegevens wil bewerken maar de checkbox niet wil aanvinken. En hier gaat het bij mij mis.

Zodra ik dan wil verzenden na de database dan doet hij niks.
Zodra ik de checkbox wel aan vink, dan verzend hij geheel volledig na de database met de checkbox waarde ja. Maar ik wil de gegevens ook kunnen bewerken zonder de checkbox te vinken.

Wat doe ik verkeert? Ik dacht namelijk dat als je een checkbox niet vinkt dat hij hem dan gewoon doorlaat maar dan de standaard ingevulde waarde in de database pakt. In mijn geval is standaard waarde nee in de database.

Wie kan mij helpen.
Ik laat hier even mijn query gedeelte weg. Omdat ik vermoed het daar niet in zit. Tevens heb ik diverse waarden weg gelaten wat ook niet van belang is.

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
<?php
//  Er zijn gegevens verstuurd naar deze pagina!
if ( $_SERVER['REQUEST_METHOD'] == 'POST'  &&
    isset($_POST['artiest'], $_POST['titel'], $_POST['checkbox']) )
{


    //  We gaan de errors in een array bijhouden
    $aErrors = array();
    
    // Een Artiest en Titel bevat letters, apostroph en spaties, eventueel een koppelteken en is minimaal 2 tekens lang
    // merk op dat ook cijfers door de \w geaccepteerd worden!
    // alleen een spatie accepteren we niet

    if ( !isset($_POST['artiest'])
             or !preg_match( '~^[\w\' -]{2,}$~', $_POST['artiest'] )
             or trim($_POST['artiest']) == ''
       ) {
      $aErrors['artiest'] = 'Wel even een Artiest invullen';
      
    }

    
    if ( !isset($_POST['titel'])
             or !preg_match( '~^[\w\' -]{2,}$~', $_POST['titel'] )
             or trim($_POST['titel']) == ''
       ) {
      $aErrors['titel'] = 'Wel even een Titel invullen';
    }

    
    
    if ( count($aErrors) == 0 )
    {

        // We hebben alle gegevens
        // Nu gaan we alle uitvoeren in de query

        
    } // end if(count){}
} // end if{}
?>

<input type="checkbox" name="<?php echo 'checkbox['.$row['id'].']';?>" id="<?php echo 'checkbox'.$i.'';?>" value="ja" <?php echo ''.($row['checkbox'] == 'ja' ? 'checked="checked"' : '' ).' ';?> />


Boven staande preg_match heb ik met behulp van PFZ.nl gevonden.
Maar ik kom er maar niet uit wat ik nu nodig heb om een NIET aangevinkte checkbox door te laten. Wie kan mij helpen?
Gewijzigd op 01/04/2012 03:04:03 door Remco schrubben
 
PHP hulp

PHP hulp

26/04/2024 09:06:56
 
Obelix Idefix

Obelix Idefix

01/04/2012 08:32:50
Quote Anchor link
Remco schrubben op 01/04/2012 02:58:02:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
//  Er zijn gegevens verstuurd naar deze pagina!
if ( $_SERVER['REQUEST_METHOD'] == 'POST'  &&
    isset($_POST['artiest'], $_POST['titel'], $_POST['checkbox']) )
?>


Er wordt gecontroleerd of de checkbox is geset.
Wat gebeurt er als je die weghaalt........
Gewijzigd op 01/04/2012 21:16:37 door Obelix Idefix
 
Remco schrubben

remco schrubben

01/04/2012 20:17:38
Quote Anchor link
Obelix als ik deze weghaal dan kan ik zonder een checkbox ook de gegevens bewerken en opslaan. Maar zodra ik dan wel een checkbox aan moet vinken dan update hij hem niet in de database.
 
Obelix Idefix

Obelix Idefix

01/04/2012 21:21:56
Quote Anchor link
Jouw probleem is mij niet duidelijk. Eigenlijk in je 1e post al niet.
Het enige wat ik daar uit begreep is dat je niet wilt checken op de checkbox. Wat het nut van die checkbox is/wanneer je hem (niet) nodig hebt, is mij onduidelijk.

Als je duidelijk hebt wat je wilt, kun je dat ook zo scripten.
Daar waar de checkbox vereist is, voer je een controle uit of die bestaat.
Daar waar je op basis van de checkbox iets wilt veranderen, controleer je of die bestaat.
 
Remco schrubben

remco schrubben

01/04/2012 21:55:47
Quote Anchor link
Obelix ik zal mijn probleem proberen beter uit te leggen.

Ik heb een bewerk.php pagina. Hier haal ik diverse gegevens op.
Artiest - Titel - post-datum - update-datum - cover - checkbox

Artiest - post-datum - update-datum -zijn gegevens die per bewerk pagina maar 1x voorkomt. Daarin tegen kan Titel - cover - checkbox 1 tot max 50x voorkomen op 1 pagina.

Zoals je misschien wel weet, tikt iedereen wel eens een titel te snel waardoor je een tik foutje hebt die je opmerkt na het toevoegen. Dan wil je deze titel even corigeren op de tik fout. Dus we gaan naar de bewerk pagina en tikken de titel goed in. Deze updaten we in de database. Dit gaat tot hier helemaal goed zolang ik de checkbox maar uit de isset hou.

Zodra ik dus zoals jij al aangaf ga controleren op die checkbox en hem niet aan vink dat hij dan niks doe. Stel ik heb 40 titel - cover en checkbox regels op mijn bewerk pagina. en ik wil geen ENKELE checkbox aanvinken, dan wil ik als nog bevoorbeeld de titel kunnen updaten mocht er een foutje zijn.

Maar het kan ook zo zijn dat ik van die 40 regels 5 checkboxen wil aanvinken. Dit moet hij samen met de rest na de database schrijven. De overige 35 regels zijn dus niet gecheckt.

Ik ben opzoek geweest hoe ik dit buiten die isset moet controleren. En daar loop ik dus vast. Ik krijg maar niet gevonden hoe ik na de isset de checkboxen kan controleren en daarna na de query kan gaan.

Hoop dat het nu iets duidelijke is geworden.
 
Obelix Idefix

Obelix Idefix

01/04/2012 22:10:33
Quote Anchor link
Begrijp het nog steeds niet.

Als je iets wilt bewerken, dan vraag je toch de gegevens op van de items die je wilt wijzigen en niet (tot) 50 regels?

Die checkbox kan, maar hoeft niet gevinkt te zijn. Controleren bij het verzenden van het formulier of die checkbox geset is, is dus onzinnig; hij hoeft immers niet te bestaan.
Controle op de checkbox doe je pas waar het nodig is: bij het samenstellen van de update-query.

Ben wel heel benieuwd hoe jij de query('s) uit gaat voeren.
 
- SanThe -

- SanThe -

01/04/2012 22:17:29
Quote Anchor link
isset($_POST['checkbox'])geeft true als ie is aangevinkt en false als ie niet is aangevinkt.
 
Remco schrubben

remco schrubben

01/04/2012 23:14:05
Quote Anchor link
Laatste poging om het uit te leggen.
Als het nu niet meer duidelijk is, dan sorry dan weet ik het niet hoe ik het anders moet uitleggen.

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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
Stel bewerk.php geeft onderstaande lijst weer.
Zoals je ziet zit er een foutje in. Track 9 moest zijn track 4.
+--------------+---------+-------+
| Checkbox uit | Track 1 | Cover |
+--------------+---------+-------+
| Checkbox uit | Track 2 | Cover |
+--------------+---------+-------+
| Checkbox uit | Track 3 | Cover |
+--------------+---------+-------+
| Checkbox uit | Track 9 | Cover |
+--------------+---------+-------+
| Checkbox uit | Track 5 | Cover |
+--------------+---------+-------+
| Checkbox uit | Track 6 | Cover |
+--------------+---------+-------+

Zoals je ziet staan de checkboxen allemaal uitgevinkt.
Dit wil ik zo updaten met de met Track 9 naar Track 4 verandert.

Nu krijg ik via bewerk.php pagina deze lijst terug.
+--------------+---------+-------+
| Checkbox uit | Track 1 | Cover |
+--------------+---------+-------+
| Checkbox uit | Track 2 | Cover |
+--------------+---------+-------+
| Checkbox uit | Track 3 | Cover |
+--------------+---------+-------+
| Checkbox uit | Track 4 | Cover |
+--------------+---------+-------+
| Checkbox uit | Track 5 | Cover |
+--------------+---------+-------+
| Checkbox uit | Track 6 | Cover |
+--------------+---------+-------+

Nu wil ik als voorbeeld Track 3 een speciale opdracht geven.
Nu vink ik dus Track 3 aan. we krijgen het volgende lijst als voorbeeld.
+--------------+---------+-------+
| Checkbox uit | Track 1 | Cover |
+--------------+---------+-------+
| Checkbox uit | Track 2 | Cover |
+--------------+---------+-------+
| Checkbox aan | Track 3 | Cover |
+--------------+---------+-------+
| Checkbox uit | Track 4 | Cover |
+--------------+---------+-------+
| Checkbox uit | Track 5 | Cover |
+--------------+---------+-------+
| Checkbox uit | Track 6 | Cover |
+--------------+---------+-------+

Dit geheel wil ik nu updaten naar de database.
Maar dat gaat niet omdat ik in deze regel geen $_POST['checkbox'] heb staan. Dit omdat ik dus niet kan updaten zonder eencheckbox aan gevinkt.
<?php
if ( $_SERVER['REQUEST_METHOD'] == 'POST'  &&
    isset($_POST['titel'], $_POST['cover'], $_POST['checkbox']) )
{

?>


Zoals Santhe zeg heb ik iets nodig dit dat regels voor mij. En DAT SNAP ik dus niet.

Zoals ik al aangaf ZOEK ik dus een manier om onderstaande code voor de checkbox een extra controle uit te voeren voor ALLEEN de checkbox.
<?php
//  Er zijn gegevens verstuurd naar deze pagina!
if ( $_SERVER['REQUEST_METHOD'] == 'POST'  &&
    isset($_POST['titel'], $_POST['cover']) )
{


    //  We gaan de errors in een array bijhouden
    $aErrors = array();
    
    // Een Artiest en Titel bevat letters, apostroph en spaties, eventueel een koppelteken en is minimaal 2 tekens lang
    // merk op dat ook cijfers door de \w geaccepteerd worden!
    // alleen een spatie accepteren we niet

    if ( !isset($_POST['artiest'])
             or !preg_match( '~^[\w\' -]{2,}$~', $_POST['artiest'] )
             or trim($_POST['artiest']) == ''
       ) {
      $aErrors['artiest'] = 'Wel even een Artiest invullen';
      
    }

    
    if ( !isset($_POST['titel'])
             or !preg_match( '~^[\w\' -]{2,}$~', $_POST['titel'] )
             or trim($_POST['titel']) == ''
       ) {
      $aErrors['titel'] = 'Wel even een Titel invullen';
    }

    
    /******************************************************************/
    * HIER ZAL DE EXTRA CONTROLE VOOR ALLEEN DE CHECKBOX MOETEN KOMEN. *
    /******************************************************************/    
    
    if ( count($aErrors) == 0 )
    {

        /*****************************/
        * HIER KOMT ALLE QUERY BENDE. *
        /*****************************/
        
    } // end if(count){}
} // end if{}

/***********************************************************************/

* HIER STAAT DE FOUTAFHANDELING, CONTROLE OF QUERY GELUKT IS ENZ....... *
/***********************************************************************/
?>
Gewijzigd op 01/04/2012 23:15:49 door remco schrubben
 
B a s
Beheerder

B a s

02/04/2012 00:25:48
Quote Anchor link
Haal bij de controle met isset, checkbox er gewoon uit en kijk of hij niet leeg is dmv empty. Is dat waarnaar je op zoek bent? Sowieso zijn ze altijs 'geset' omdat je het formulier post.
 
Remco schrubben

remco schrubben

02/04/2012 05:06:29
Quote Anchor link
Bas, bedankt voor de reactie.

Ik heb even naar deze functie gekeken ik kom dan op het gedeelte hier onder:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
if (!empty($_POST['checkbox']))
    {

        $checkbox    = 'ja'; // aan gevinkt
    }
        else
    {
        $checkbox    = 'nee'; // uit gevinkt
    }
?>


Nu krijg ik de Notice:
Notice: Uninitialized string offset: 23 in ../../../bewerken.php on line 77

Deze line 77 wijst na mijn query. Dit ziet er nu zo uit.
Let Op !!1 Zet nu alleen relevante query code, dus zonder foutafhandeling.
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
<?php
$teller
= 0;
foreach($_POST['artiest'] as $id => $artiest)
{

    if($artiest != '')
    {

        // de query is gelukt, voeg het adres toe
        $strQuery = "UPDATE
                        ts_optie
                    SET
                        artiest    = '"
.mysqli_real_escape_string($query, $artiest)."',
                        titel    = '"
.mysqli_real_escape_string($query, $_POST['titel'][$id])."',
                        cover    = '"
.mysqli_real_escape_string($query, $_POST['cover'][$id])."',
                        checkbox    = '"
.mysqli_real_escape_string($query, $checkbox[$id])."'
                    WHERE
                        ts_id    = '"
.mysqli_real_escape_string($query, $_GET['id'])."'
                    AND
                        id         = '"
.mysqli_real_escape_string($query, $id)."'
                "
;
        $boolean = mysqli_query($query, $strQuery, MYSQLI_USE_RESULT);
        // $result blijft true indien gelukt en wordt false indien niet gelukt
        $result = ($result AND $boolean);
    }
// end of if{}
    $teller++;
}
// end of foreach{}
?>

Hier is line 77 dus
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
checkbox    = '".mysqli_real_escape_string($query, $checkbox[$id])."'
?>


Ik kom nu even niet uit hoe ik [$id] weg moet zetten in dit geheel. Haal ik nu [$id] weg uit deze regel. Dan kan ik hem wel updaten, maar dan zet die overal 'ja' neer.
Dit is natuurlijk niet de bedoeling.
Gewijzigd op 02/04/2012 05:09:09 door remco schrubben
 
Obelix Idefix

Obelix Idefix

02/04/2012 08:24:15
Quote Anchor link
Maak 2 query's --> 1 waarbij de checkbox is gevinkt (en dan neem je hem ook mee in je query als 'ja' en 1 waarbij de checkbox niet is aangevinkt (en dan wordt het 'nee') in je query.

Alternatief:
splits je query en bouw hem in delen op.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

02/04/2012 09:09:07
Quote Anchor link
Bas Kreleger op 02/04/2012 00:25:48:
Haal bij de controle met isset, checkbox er gewoon uit en kijk of hij niet leeg is dmv empty. Is dat waarnaar je op zoek bent? Sowieso zijn ze altijs 'geset' omdat je het formulier post.

Als een checkbox niet is aangevinkt wordt ie niet mee verzonden met het formulier
 
Remco schrubben

remco schrubben

02/04/2012 13:20:56
Quote Anchor link
Obelix je kan het allemaal mooi vertellen heel de topic lang al.
Maar met voorbeelden komt je niet. Terwijl ik daar toch echt om vraag, wat is nu moeilijk aan dat ik er gewoon niet meer uit kom op deze manier.

Query's opsplitsen kan, maar ik heb een transactions gedeelte er in zitten. Ik maakt ook gebruik van FK's. Dus Obelix vertel mij dan even hoe ik dat moet aanpassen.

Ger, Ik weet dat het zo werkt, maar waarom werkt het niet bij mij zo dat is de vraag. Ik mag aannemen dat jullie nu genoeg lees voor hebben om te begrijpen wat mijn probleem is.

Als ik de checkbox in de isset controle zet, en dan iets wil bewerken waar ik de checkbox niet wil aanvinken. Dan update hij hem niet. Als ik het op de laatste reactie manier doe, dan krijg ik de notice na me oren.

Is er dan helemaal niemand die even een voorbeeld kan/wil geven op hand van mijn laatste stuk code.
 
- SanThe -

- SanThe -

02/04/2012 13:33:50
Quote Anchor link
Zet dit eens bovenin je script:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);

// rest
?>


En verder tijdens het updaten:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
foreach($_POST['artiest'] as $id => $artiest)
{

    $checkbox = isset($_POST['checkbox'][$id]) ? 'ja' : 'nee';
    // update het record
}
?>
 
Remco schrubben

remco schrubben

02/04/2012 13:47:20
Quote Anchor link
Santhe, bedankt voor dit voorbeeld.

De stukje code voor de error's die heb ik idd boven in mijn pagina staan.
Daardoor krijg ik namelijk ook die notice na me oren gegooit.
Als ik die regels weg haal is notice er ook niet meer.

Jou voorbeeld ga ik zo even testen als ik uit de trein ben.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

02/04/2012 13:56:41
Quote Anchor link
Remco, de vraag is of hetgeen jij wilt zo'n goede oplossing is in alleen php. Want als er niks aan gevinkt is dan weet je ook niet wat er gewijzigd is, en dat betekent dat je alle records moet updaten.
 
Obelix Idefix

Obelix Idefix

02/04/2012 15:36:06
Quote Anchor link
Remco schrubben op 02/04/2012 13:20:56:
Obelix je kan het allemaal mooi vertellen heel de topic lang al.
Maar met voorbeelden komt je niet. Terwijl ik daar toch echt om vraag, wat is nu moeilijk aan dat ik er gewoon niet meer uit kom op deze manier.

Heeft niets met 'mooi vertellen' te maken. Jouw denkwijze/werkwijze is anders dan de mijne. Jij laat (tot) 50 records zien om er 1 te wijzigen (maar wel 50 te updaten). Zou ik niet doen. Zie ook opmerking Ger.
En je blijft volharden om $_POST['checkbox'] mee te nemen in een query, ook als die niet bestaat. Dat je dan foutmeldingen krijgt, is niet zo vreemd.
Ik geef aan hoe ik het eventueel wel zou aanpakken (alleen niet met kant en klare code).
 
Remco schrubben

remco schrubben

02/04/2012 20:13:52
Quote Anchor link
Obelix, laat maar zitten. Jij begrijpt mij niet. Of je ziet mijn probleem niet.

Ger, Ik snap jou punt ik snap obelix ook wel. Maar jullie hebben blijkbaar tijden ervaring in php. Jij zegt dus eigenlijk gewoon dat ik 2 checkboxen moet maken.
1 om te zeggen welke regel ik bewerk en 1 om bepaalde waarde mee te geven.

Edit:
Santhe, ik heb jou code geprobeerd. Maar dan zet hij overal nee in de database.
Dit terwijl ik 1 checkbox heb aangevinkt.

Laatste poging om het uit te leggen anders gooi ik de bende in de wilgen.
Afbeelding

Zoals je ziet hebben we hier:
1x checkbox
2x input velden
1x foto veld.

Nu hebben wij in 1 van die 6 artiesten een foutje in bijvoorbeeld de titel.Omdat er een tik foutje in zit. Ik haal de tik fout er uit en druk op update.
Nu staat de alles goed in de database.

Maar.............. Hier komt mijn probleem.
Ik wil artiest Harten 10 een extra opdracht mee geven. Wat de opdracht achter af doet is niet relevant. De extra opdracht wil ik hendelen via de checkbox. Ik vind Harten 10 aan en ik druk op update. En hier gaat het fout want het updaten doet hij niet.
Dit weer door het probleem dat de checkbox er bij is gekomen en die zoals gezegt niet in de isset regel staat.

Nu gaf santhe een opzetje. Deze werkt, alleen hij zet nu bij alle 6 nee bij.
Kreeg van Bas een oplossing via Empty, maar hier kreeg ik de notice om me oren.

Nogmaals ik ben te beginner om dit op te lossen. Hoop dat het dan nu eindelijk wel duidelijk is wat ik wil. Mocht het nog niet duidelijk zijn hoor ik het graag dan stop ik er gewoon mee en maak ik wel een 2 bewerk pagina voor alleen de checkboxen. Maar dit lijkt me gewoon weg niet nodig.
Gewijzigd op 02/04/2012 20:54:06 door remco schrubben
 
Obelix Idefix

Obelix Idefix

02/04/2012 21:47:31
Quote Anchor link
Ik begrijp je denk ik best wel. Maar waarom laat je al die records zien als je er maar 1 wilt updaten? Daarmee maak je het voor jezelf ontzettend moeilijk.
Laat een overzicht van de records zien en zet er een linkje achter waarop je kunt klikken om te wijzigen. Toon dat ene record, wijzig de gegevens en update daarna je query.

De manier waarop jij script is anders dan de mijne, maar misschien dat dit je op weg kan helpen:
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
<?php
$strQuery
= "UPDATE
        ts_optie
    SET
    artiest    = '"
.mysqli_real_escape_string($query, $artiest)."',
    titel    = '"
.mysqli_real_escape_string($query, $_POST['titel'][$id])."',
    cover    = '"
.mysqli_real_escape_string($query, $_POST['cover'][$id])."'";
    if(isset($_POST['checkbox'][$id]))
    {

        $strQuery .= "checkbox    = 'ja'";
    }

    $strQuery .=    "
    WHERE
        ts_id    = '"
.mysqli_real_escape_string($query, $_GET['id'])."'
    AND
        id         = '"
.mysqli_real_escape_string($query, $id)."'
        "
;
?>
 
Remco schrubben

remco schrubben

03/04/2012 00:43:38
Quote Anchor link
Obelix, kijk nu snap ik je al een stuk beter.

Ik ben aan de hand van jou voorbeeld even verder gegaan.
Hierbij zag ik 2 mogelijkheden in het voorbeeld.
Mogelijkheid 1:
Deze update query wel, alleen hij zet nog steeds alle rows op nee. Hier krijg ik ook geen error's of notice's te zien.
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?php
$strQuery
= "UPDATE
    ts_optie
SET
    artiest    = '"
.mysqli_real_escape_string($query, $artiest)."',
    titel    = '"
.mysqli_real_escape_string($query, $_POST['titel'][$id])."',
    cover    = '"
.mysqli_real_escape_string($query, $_POST['cover'][$id])."'";
if(isset($_POST['checkbox'][$id]))
{

    $strQuery .= ",checkbox    = 'ja'";
}

else
{
    $strQuery .= ",checkbox    = 'nee'";
}

$strQuery .=    "
WHERE
    ts_id    = '"
.mysqli_real_escape_string($query, $_GET['id'])."'
AND
    id         = '"
.mysqli_real_escape_string($query, $id)."'
    "
;
?>

[b] var_dump uitkomst[/b]
["artiest"]=>
array(6) {
[14]=>
string(7) "Antonio"
[15]=>
string(5) "Johan"
[16]=>
string(14) "Manuela Rokven"
[17]=>
string(12) "Patrick Dano"
[18]=>
string(10) "Sam Gooris"
[19]=>
string(13) "Zeeuwse Ricky"
}
["titel"]=>
array(6) {
[14]=>
string(9) "Kom terug"
[15]=>
string(26) "Jij hebt de hemel verdient"
[16]=>
string(17) "7 dagen 7 nachten"
[17]=>
string(21) "Jij bent het helemaal"
[18]=>
string(9) "Saragossa"
[19]=>
string(39) "Daar waar de liefde jou naam weer roept"
}
["cover"]=>
array(6) {
[14]=>
string(64) "Antonio.jpg"
[15]=>
string(62) "Johan.jpg"
[16]=>
string(71) "manuela-Rokven.jpg"
[17]=>
string(69) "Patrick-dano.jpg"
[18]=>
string(76) "samgooris-saragossa.jpg"
[19]=>
string(70) "Zeeuwse-Ricky.jpg"
}
["checkbox"]=>
array(1) {
[19]=>
string(2) "ja"
}
["submit"]=>
string(6) "Update"


Mogelijkheid 2:
Deze query werkt ook, geen error's of foutmeldingen. Alleen hij update nog steeds alle rows op nee
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<?php
$strQuery
= "UPDATE
    ts_optie
SET
    artiest    = '"
.mysqli_real_escape_string($query, $artiest)."',
    titel    = '"
.mysqli_real_escape_string($query, $_POST['titel'][$id])."',
    cover    = '"
.mysqli_real_escape_string($query, $_POST['cover'][$id])."'";
    if(isset($_POST['checkbox'][$id]))
    {

        $strQuery .= ",checkbox    = 'ja'
        WHERE
            ts_id    = '"
.mysqli_real_escape_string($query, $_GET['id'])."'
        AND
        id         = '"
.mysqli_real_escape_string($query, $id)."'";
    }

        else
    {
        $strQuery .= ",checkbox    = 'nee'
        WHERE
            ts_id    = '"
.mysqli_real_escape_string($query, $_GET['id'])."'
        AND
            id         = '"
.mysqli_real_escape_string($query, $id)."'";
    }

?>

[b] var_dump uitkomst[/b]
["artiest"]=>
array(6) {
[14]=>
string(7) "Antonio"
[15]=>
string(5) "Johan"
[16]=>
string(14) "Manuela Rokven"
[17]=>
string(12) "Patrick Dano"
[18]=>
string(10) "Sam Gooris"
[19]=>
string(13) "Zeeuwse Ricky"
}
["titel"]=>
array(6) {
[14]=>
string(9) "Kom terug"
[15]=>
string(26) "Jij hebt de hemel verdient"
[16]=>
string(17) "7 dagen 7 nachten"
[17]=>
string(21) "Jij bent het helemaal"
[18]=>
string(9) "Saragossa"
[19]=>
string(39) "Daar waar de liefde jou naam weer roept"
}
["cover"]=>
array(6) {
[14]=>
string(64) "Antonio.jpg"
[15]=>
string(62) "Johan.jpg"
[16]=>
string(71) "manuela-Rokven.jpg"
[17]=>
string(69) "Patrick-dano.jpg"
[18]=>
string(76) "samgooris-saragossa.jpg"
[19]=>
string(70) "Zeeuwse-Ricky.jpg"
}
["checkbox"]=>
array(1) {
[19]=>
string(2) "ja"
}
["submit"]=>
string(6) "Update"
Gewijzigd op 03/04/2012 00:44:46 door remco schrubben
 
Kris Peeters

Kris Peeters

03/04/2012 12:36:46
Quote Anchor link
(Ik heb de hele discussie niet gevolgd ...)

Wat je nog kan gebruiken, is de ternary operator (Gooogle zelf maar voor details en documentatie)

Dat wordt dan zoiets
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$strQuery
= "
UPDATE ts_optie
SET
  artiest  = '"
. mysqli_real_escape_string($query, $artiest) . "',
  titel    = '"
. mysqli_real_escape_string($query, $_POST['titel'][$id]) . "',
  cover    = '"
. mysqli_real_escape_string($query, $_POST['cover'][$id]) . "',
  checkbox = "
. ( empty($_POST['checkbox'][$id]) ? 'nee' : 'ja') . "
WHERE
  ts_id    = '"
. mysqli_real_escape_string($query, $_GET['id'])."'
  AND
  id       = '"
. mysqli_real_escape_string($query, $id)."'";
?>
 

Pagina: 1 2 volgende »



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.