Checkbox gebruiken voor php
Ik ben bezig met een script waarbij je liedjes kan toevoegen
maar ik zou ook graag willen aanvinken in zo'n checkbox of die dan
ook op de index pagina mag. Dus als die aangevinkt is dat er dan in
de kolom "index" "1" word gezet. Word die niet aangevinkt dan moet er
een "0" ingezet worden. Ik heb al goed gegoogled maar heb niks gevonden.
Ik heb het zelf ook geprobeerd maar het lukt me maar steeds niet.
Dit is de code die ik heb probeerd:
Quote:
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
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
<?php
$categorie = $_POST['categorie'];
$yes = 'yes';
$no = 'no';
if($_POST['toevoegen']) {
if(isset($_POST['index']) &&
$_POST['index'] == 'yes')
{
$insert = mysql_query('INSERT INTO songs (link, artiest, titel, categorie, index) VALUES ("'.mysql_real_escape_string($_POST['url']).'", "'.mysql_real_escape_string($_POST['artiest']).'", "'.mysql_real_escape_string($_POST['titel']).'", "'.mysql_real_escape_string($categorie).'", "'.$yes.'") ') or trigger_error(mysql_error());
echo '<h3>Succesvol toegevoegd!</h3>';
echo "Need wheelchair access.";
}
else
{
$insert = mysql_query('INSERT INTO songs (link, artiest, titel, categorie, index) VALUES ("'.mysql_real_escape_string($_POST['url']).'", "'.mysql_real_escape_string($_POST['artiest']).'", "'.mysql_real_escape_string($_POST['titel']).'", "'.mysql_real_escape_string($categorie).'", "'.$no.'") ') or trigger_error(mysql_error());
}
}
?>
$categorie = $_POST['categorie'];
$yes = 'yes';
$no = 'no';
if($_POST['toevoegen']) {
if(isset($_POST['index']) &&
$_POST['index'] == 'yes')
{
$insert = mysql_query('INSERT INTO songs (link, artiest, titel, categorie, index) VALUES ("'.mysql_real_escape_string($_POST['url']).'", "'.mysql_real_escape_string($_POST['artiest']).'", "'.mysql_real_escape_string($_POST['titel']).'", "'.mysql_real_escape_string($categorie).'", "'.$yes.'") ') or trigger_error(mysql_error());
echo '<h3>Succesvol toegevoegd!</h3>';
echo "Need wheelchair access.";
}
else
{
$insert = mysql_query('INSERT INTO songs (link, artiest, titel, categorie, index) VALUES ("'.mysql_real_escape_string($_POST['url']).'", "'.mysql_real_escape_string($_POST['artiest']).'", "'.mysql_real_escape_string($_POST['titel']).'", "'.mysql_real_escape_string($categorie).'", "'.$no.'") ') or trigger_error(mysql_error());
}
}
?>
Heeft iemand enig idee hoe dit moet?
Gewijzigd op 12/10/2012 18:53:45 door Remco van Akker
verder zou ik het zo doen
Code (php)
ook moet je niet variabelen kopieren onnodig ( regel 2 ) en je moet goed controleren of er iets naar de server gestuurd is ( een action event ) dat doe je met
== true is onzin als je hem in een if gebruikt
Spring je code ook meer/beter in. Je hebt nu (bijna) alles links uitgelijnd, waardoor je geen idee hebt welke { bij } hoort.
Jaron het is niet fout maar het is inderdaad makkelijker om alleen if($variabele) te gebruiken maar omdat hij de bedoeling van een boolean duidelijk moet snappen geef ik even een uitgebreid ( voor een gevorderde onnodige ) voorbeeld.
Ik volgde je advies op maar
het werkt nog steeds niet.
Ik heb nu ook alles netjes uitgelijnd
en de Request_method gebruikt en de rest.
Maar hij werk nog steeds niet.
Help?
EDIT:
Ik zit nu op een aparte pagina wat dingen uit te proberen
maar ik heb nu deze code en hij wil wel "hoi" in de kolom artiest
zetten maar niet de waarde van de variabel $check. Weet iemand hoe dit komt?
Dit is de code:
Quote:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
if($_POST['checken']) {
if($_POST['index'] == 'yes')
{
$check = 'check';
echo 'Check!';
} else {
$check = 'false';
echo 'Not checked!';
}
$sql = mysql_query('INSERT INTO songs (artiest, index) VALUES ("hoi", "'.$check.'")') or trigger_error(mysql_error());
}
?>
if($_POST['checken']) {
if($_POST['index'] == 'yes')
{
$check = 'check';
echo 'Check!';
} else {
$check = 'false';
echo 'Not checked!';
}
$sql = mysql_query('INSERT INTO songs (artiest, index) VALUES ("hoi", "'.$check.'")') or trigger_error(mysql_error());
}
?>
Gewijzigd op 13/10/2012 12:58:56 door Remco van Akker
Debuggen: echo je query naar het scherm. Staat daar wat je verwacht?
Kopieer die query eens en voer hem direct uit in phpadmin. Werkt het dan wel?
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
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
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$sql = "INSERT INTO songs
( link,
artiest,
titel,
categorie,
index
)
VALUES
( '" . mysql_real_escape_string($_POST['url']) . "',
'" . mysql_real_escape_string($_POST['artiest']) . "',
'" . mysql_real_escape_string($_POST['titel']) . "',
'" . mysql_real_escape_string($_POST['categorie']) . "',
'" . (isset($_POST['index']) ? 1 : 0) . "'
);
if(mysql_query($sql) === false)
{
// ERROR
}
else
{
// ga verder
}
}
?>
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$sql = "INSERT INTO songs
( link,
artiest,
titel,
categorie,
index
)
VALUES
( '" . mysql_real_escape_string($_POST['url']) . "',
'" . mysql_real_escape_string($_POST['artiest']) . "',
'" . mysql_real_escape_string($_POST['titel']) . "',
'" . mysql_real_escape_string($_POST['categorie']) . "',
'" . (isset($_POST['index']) ? 1 : 0) . "'
);
if(mysql_query($sql) === false)
{
// ERROR
}
else
{
// ga verder
}
}
?>
dan vul ik deze code in:
Quote:
INSERT INTO songs (artiest, index) VALUES ("hoi", "hoi")
En dan krijg ik de volgende melding:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'index) VALUES ("hoi", "hoi")' at line 1
EDIT:
OPGELOST! Het probleem was dat PHPMyAdmin de naam "index" voor een kolom, niet gebruikt kon worden. Dus index kan je niet als een naam gebruiken voor je kolom :S
Dus nu heb ik de kolom IND genoemd :)
Toch bedankt!
Gewijzigd op 13/10/2012 14:55:09 door Remco van Akker
Remco van Akker op 13/10/2012 14:47:11:
Dus index kan je niet als een naam gebruiken voor je kolom
http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html
Ja, dat wist ik dus nog niet hahaha xD