checkbox uit $rows en UPDATE sql
Ik zit helemaal vast met een checkbox functie waarmee ik de waarde in mijn sql kan updaten. Het lukt me niet om uit de `$row["zinNummer"]` die zich bevind in een tabel te posten op de verwerkpagina UpdateZin.php
Ik heb een aantal zinnen die in de database ingesteld zijn als `actief = "n"`
Met een backend pagina wil ik de zinnen die ingesteld zijn als `actief` = "n" veranderen naar de value "J" (in het veld: actief). Dit wil ik doen door een checkbox achter de getoonde zin te plaatsen. Ik ben mijn php boek al aan het doorspitten en heb niets kunnen vinden wat me zou kunnen helpen. Op het internet vind ik alleen simpele checkbox voorbeelden waar ik weinig aan heb.
Anyway hopelijk kan iemand zien wat er fout is...
admin pagina
-----------------------------------
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
31
32
33
34
35
36
37
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
$sql = "SELECT `zinNummer`, `datum`, `zinTekst`, `actief` FROM OPENINGSZIN WHERE `actief` = \"N\" ORDER BY `datum` DESC";
$resultSet = mysql_query($sql) or trigger_error(mysql_error());
if (mysql_num_rows($resultSet) > 0)
{
while ($rows = mysql_fetch_assoc($resultSet))
{
$zinNummer = $rows["zinNummer"];
echo "<tr><td bgcolor=\"#BBBBBB\" align=\"center\">";
echo strftime("%d %b", strtotime($rows["datum"]));
echo "</td><td bgcolor=\"#E1E1E1\" align=\"left\">";
echo " \" ";
echo "<a id=\"nieuwlink\" href='openingszin.php?zinNummer=";
echo $rows["zinNummer"];
echo "'>";
echo $rows["zinTekst"];
echo "</a>";
echo " \" ";
echo "</td>";//cell sluiten
echo "<td bgcolor=\"#E1E1E1\" align=\"center\">";
/*???*/ echo "<input name='" . $rows['zinNummer'] . "' type='checkbox' value='J'/> ";
echo "</td>";//cell sluiten
echo "</tr>";
}
}
else
{
echo "<p>Er zijn geen zinnen gevonden in de database</p>";
}
}
?>
$sql = "SELECT `zinNummer`, `datum`, `zinTekst`, `actief` FROM OPENINGSZIN WHERE `actief` = \"N\" ORDER BY `datum` DESC";
$resultSet = mysql_query($sql) or trigger_error(mysql_error());
if (mysql_num_rows($resultSet) > 0)
{
while ($rows = mysql_fetch_assoc($resultSet))
{
$zinNummer = $rows["zinNummer"];
echo "<tr><td bgcolor=\"#BBBBBB\" align=\"center\">";
echo strftime("%d %b", strtotime($rows["datum"]));
echo "</td><td bgcolor=\"#E1E1E1\" align=\"left\">";
echo " \" ";
echo "<a id=\"nieuwlink\" href='openingszin.php?zinNummer=";
echo $rows["zinNummer"];
echo "'>";
echo $rows["zinTekst"];
echo "</a>";
echo " \" ";
echo "</td>";//cell sluiten
echo "<td bgcolor=\"#E1E1E1\" align=\"center\">";
/*???*/ echo "<input name='" . $rows['zinNummer'] . "' type='checkbox' value='J'/> ";
echo "</td>";//cell sluiten
echo "</tr>";
}
}
else
{
echo "<p>Er zijn geen zinnen gevonden in de database</p>";
}
}
?>
<!--HEADER-->
<div id="inhoud">
<div id="tabellijst">
<form action="UpdateZin.php" method="post">
<!-- Tabel overzicht ingestuurde zinnen -->
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="1">
<tr>
<th width="11%" height="24" bgcolor="#FF6600">Date</th>
<th width="70%" bgcolor="#FF9900">Openingszin</th>
<th width="auto" bgcolor="#FF9900">OK</th>
</tr>
/* hier wordt functie uitgevoerd*/
</table>
<input id="verstuurknop" type="submit" name="submit" value="Update">
</form>
</div>
</div>
?>
Op de verwerkpagina (Updatezin.php)
Heb ik deze sql om te updaten:
mysql_query("UPDATE `OPENINGSZIN` SET actief = 'J' WHERE zinNummer = '$zinNummer'");
Maar als ik echo op $zinNummer krijg ik geen waarde terug...
Ook niet als ik zeg $zinNummer = POST_["zinNummer"];
Dus hoe krijg ik het werkend dat de het zinNummer van de desbetreffende checkbox wordt meegestuurd? Het zijn totaal 25 zinnen dus elke zin heeft in de database een eigen id (zinNummer)
Moet ik misschien de checkbox value veranderen naar: $rows["zinNummer"] en de naam bvb checkbox[] maken?
Help please :P
Gewijzigd op 07/06/2011 19:23:40 door Erwin Roossien
Kan je code-tags gebruiken?
Je zou kunnen proberen:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
require 'mysql_connect.inc.php';
$sql="UPDATE `zinNummer` velddatveranderdmoetworden=".$_POST['checkbox']." WHERE id=".$_POST['idvanzin'];
if (mysql_query($sql)){
echo "Update succesvol";
}else{
echo "Iets mislukte. </br>";
echo mysql_error();
}
$sql="UPDATE `zinNummer` velddatveranderdmoetworden=".$_POST['checkbox']." WHERE id=".$_POST['idvanzin'];
if (mysql_query($sql)){
echo "Update succesvol";
}else{
echo "Iets mislukte. </br>";
echo mysql_error();
}
Gewijzigd op 07/06/2011 18:57:21 door Max van den Bosch
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
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
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
<?php
/******************Connecting*****************************************/
session_start();
ob_start();
function connectToDatabase($host, $username, $password, $databaseName)
{
$connection = mysql_connect($host, $username, $password);
if (!$connection)
{
die('verbinding mislukt: ' . mysql_error());
}
if (!mysql_select_db($databaseName, $connection))
{
die('database niet gevonden');
}
return $connection;
}
function executeQuery($sql, $connection)
{
$hasExecuted = mysql_query($sql, $connection);
return $hasExecuted;
}
//*************************Verbinding maken met server********************/
$con = connectToDatabase("localhost", "***", "***", "***");
if (isset($_POST["submit"]))
//&&
//$_POST['$zinNummer'] == 'J')
{
$checkbox = $_POST["checkbox"];
$zinTekst = $_POST["zinTekst"];
$categorieNaam = $_POST["categorieNaam"];
$zinNummer = $_POST["zinNummer"];
$actief = $_POST["actief"];
//$zinNummer etc geeft geen waarde terug via echo //
echo $zinNummer;
echo $actief;
echo $zinTekst;
$sql = "UPDATE `OPENINGSZIN` SET actief = 'J' WHERE zinNummer = '$zinNummer'";
//mysql_query("UPDATE `OPENINGSZIN` SET actief = 'J' WHERE zinNummer = '$zinNummer'");
//$sql = "UPDATE OPENINGSZIN SET actief='" . $actief . "' WHERE zinNummer='" . $zinNummer . "'";
if (executeQuery($sql, $con))
{
header("Location:admin.php");
}
else
{
echo "Er is iets mis gegaan: " . mysql_error();
}
}
?>
/******************Connecting*****************************************/
session_start();
ob_start();
function connectToDatabase($host, $username, $password, $databaseName)
{
$connection = mysql_connect($host, $username, $password);
if (!$connection)
{
die('verbinding mislukt: ' . mysql_error());
}
if (!mysql_select_db($databaseName, $connection))
{
die('database niet gevonden');
}
return $connection;
}
function executeQuery($sql, $connection)
{
$hasExecuted = mysql_query($sql, $connection);
return $hasExecuted;
}
//*************************Verbinding maken met server********************/
$con = connectToDatabase("localhost", "***", "***", "***");
if (isset($_POST["submit"]))
//&&
//$_POST['$zinNummer'] == 'J')
{
$checkbox = $_POST["checkbox"];
$zinTekst = $_POST["zinTekst"];
$categorieNaam = $_POST["categorieNaam"];
$zinNummer = $_POST["zinNummer"];
$actief = $_POST["actief"];
//$zinNummer etc geeft geen waarde terug via echo //
echo $zinNummer;
echo $actief;
echo $zinTekst;
$sql = "UPDATE `OPENINGSZIN` SET actief = 'J' WHERE zinNummer = '$zinNummer'";
//mysql_query("UPDATE `OPENINGSZIN` SET actief = 'J' WHERE zinNummer = '$zinNummer'");
//$sql = "UPDATE OPENINGSZIN SET actief='" . $actief . "' WHERE zinNummer='" . $zinNummer . "'";
if (executeQuery($sql, $con))
{
header("Location:admin.php");
}
else
{
echo "Er is iets mis gegaan: " . mysql_error();
}
}
?>
Toevoeging op 07/06/2011 19:08:21:
Hey Max, het probleem is dat hij dus geen POST_ waarde herkent op de UpdateZin.php pagina. Als ik echo op $zinNummer krijg ik een geen waarde te zien.
Gewijzigd op 07/06/2011 19:04:32 door Erwin Roossien