Hallo,

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:


<?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());

}
}

?>


Heeft iemand enig idee hoe dit moet?
hmm 2 korte vraagjes waarom niet gewoon een boolean gebruiken maar yes en no?

verder zou ik het zo doen

<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {

if(isset($_POST['toevoegen']) && isset($_POST['checkboxnamehier']) == true) {

// hier je query

}
else if(isset($_POST['toevoegen']) && isset($_POST['checkboxnamehier']) == false) {
// hier je andere query zonder index
}

}
?>

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

<?php

if($_SERVER['REQUEST_METHOD'] == 'POST') {

}

?>
@Reshad

== true is onzin als je hem in een if gebruikt
nog los van het onnodig kopiƫren: je controleert niet eens of $_POST['categorie'] wel bestaat.

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.
@Reshad F
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:
<?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());

}
?>
Krijg je een foutmelding?
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?
<?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
}
}
?>
Als ik probeer de query uit te voeren in PHPMyAdmin zelf
dan vul ik deze code in:
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!
Ja, dat wist ik dus nog niet hahaha xD

Reageren