Data opvragen en bewerken in PHP
Pagina: « vorige 1 2 3 ... 5 6 7
- Ariën - op 10/08/2017 07:15:41:
Logisch, een query telt ook niks.
Het voert enkel een opdracht uit naar MySQL/MariaDB.
De functie geeft normaal een resource die je verder kan gebruiken met bijv. mysqli_num_rows of mysqli_fetch_* functies.
Lees anders eens een MySQLi-tutorial.
Het voert enkel een opdracht uit naar MySQL/MariaDB.
De functie geeft normaal een resource die je verder kan gebruiken met bijv. mysqli_num_rows of mysqli_fetch_* functies.
Lees anders eens een MySQLi-tutorial.
Interessant dan. Als ik deze text intype in de MySQL console geeft hij wel de resultaten in de vorm van een getal.
En dus? De MySQL console is heel wat anders dan het gebruik in een script.
Je moet nu nog in php de MySQL resultaten verwerken.
Ik zou graag willen zien dat een radio button aanstaat op het moment dat de kolom 'Presentie' een bepaalde waarde bevat.
Hoe doe ik dat?
Bijvoorbeeld:
Je zult dus aan de hand van je data die je gefetched hebt moeten controleren of de waarde gelijk is met 'female'. En dan toon je dus checked
Gewijzigd op 13/08/2017 17:15:09 door - Ariën -
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$checked = ( $row->present == 1 ? 'checked' : '' );
$checked_color = ( $row->present == 1 ? 'navy' : 'green' );
?>
<input name="present[]" type="checkbox" id="present_<?php echo $row->id; ?>" <?php echo $checked; ?> value="<?php echo $row->id; ?>" />
<label for="present_<?php echo $row->id; ?>" style="color: <?php echo $checked_color; ?>;"><?php echo ( $checked <> '' ? 'Aanwezig' : 'Afwezig' ); ?></label>
$checked = ( $row->present == 1 ? 'checked' : '' );
$checked_color = ( $row->present == 1 ? 'navy' : 'green' );
?>
<input name="present[]" type="checkbox" id="present_<?php echo $row->id; ?>" <?php echo $checked; ?> value="<?php echo $row->id; ?>" />
<label for="present_<?php echo $row->id; ?>" style="color: <?php echo $checked_color; ?>;"><?php echo ( $checked <> '' ? 'Aanwezig' : 'Afwezig' ); ?></label>
Hier wordt de ternary operator gebruikt. Dit is een verkorte if-else statement:
De waarde $checked wordt bepaald aan de hand van de voorwaarde $row->present == 1. Als deze waar is, dan is $checked de waarde 'checked', en anders is het gewoon een lege string zonder inhoud, dus ''.
Dus als opbouw is het dit:
En waarom gebruik jij $_POST['Presentie']?
Je wilt toch in je database kijken wat je waarde is, en niet in de formulierdata.
Gewijzigd op 13/08/2017 17:42:15 door - Ariën -
Thomas Bakker op 13/08/2017 17:33:37:
Persoonlijk zou ik eerst het formulier in een aparte stap verwerken en opslaan, waarna je eventueel weer terug wordt gestuurd naar het overzicht. Ik zou nooit rechtstreeks na/tijdens verwerken het formulier meteen weer tonen op grond van wat er in $_POST zit, je code wordt dan al snel één grote rommel...
Ik krijg http 500 error..
Code (php)
1
2
3
2
3
$radio = $row['Presentie'];
<input type="radio" name="Aanwezig['.$i.']" id="Aanwezig'.$i.'" <?php echo ($radio=='Afwezig')?'checked':'' ?> value="Afwezig">
<input type="radio" name="Aanwezig['.$i.']" id="Aanwezig'.$i.'" <?php echo ($radio=='Afwezig')?'checked':'' ?> value="Afwezig">
Edit; hier is mijn volledige code
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
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
<html>
<head>
<title>Groep A - Aanwezigheid</title>
</head>
<body>
<?php
//Alle variabelen instellen
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "dbname";
//Verbinden met de database
$conn = mysqli_connect($servername, $username, $password, $dbname);
//Query opstellen door middel van variabele
$result = mysqli_query($conn,"SELECT * FROM `Aanwezigheid` WHERE `Groep` = 'A'");
?>
<table width="250">
<tr><th align="left">Naam</th><th align="left" colspan="3">Presentie</th></tr>
<tr><td> </td><td>Aan</td><td>Afw</td><td>Afg</td></tr>
<tr><td> </td></tr>
<form action="Checkbox.php" method="post">
<?php
while($row = mysqli_fetch_array($result))
{
echo "<tr><td>{$row['Naam']}</td>";
$i = $row['id'];
$radio = $row['Maandag'];
echo '<td><input type="radio" name="Aanwezig['.$i.']" id="Aanwezig'.$i.'" value="Afwezig"></td><td><input type="radio" name="Aanwezig['.$i.']" id="Aanwezig'.$i.'" value="Present"></td><td><input type="radio" name="Aanwezig['.$i.']" id="Aanwezig'.$i.'" value="Afgemeld"></td>';
echo "<td>{$row['Presentie']}</td></tr>";
}
?>
<tr><td> </td></tr>
<tr><td colspan="4"><button type="submit">Opslaan</button></td></tr>
</form>
</body>
</html>
<head>
<title>Groep A - Aanwezigheid</title>
</head>
<body>
<?php
//Alle variabelen instellen
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "dbname";
//Verbinden met de database
$conn = mysqli_connect($servername, $username, $password, $dbname);
//Query opstellen door middel van variabele
$result = mysqli_query($conn,"SELECT * FROM `Aanwezigheid` WHERE `Groep` = 'A'");
?>
<table width="250">
<tr><th align="left">Naam</th><th align="left" colspan="3">Presentie</th></tr>
<tr><td> </td><td>Aan</td><td>Afw</td><td>Afg</td></tr>
<tr><td> </td></tr>
<form action="Checkbox.php" method="post">
<?php
while($row = mysqli_fetch_array($result))
{
echo "<tr><td>{$row['Naam']}</td>";
$i = $row['id'];
$radio = $row['Maandag'];
echo '<td><input type="radio" name="Aanwezig['.$i.']" id="Aanwezig'.$i.'" value="Afwezig"></td><td><input type="radio" name="Aanwezig['.$i.']" id="Aanwezig'.$i.'" value="Present"></td><td><input type="radio" name="Aanwezig['.$i.']" id="Aanwezig'.$i.'" value="Afgemeld"></td>';
echo "<td>{$row['Presentie']}</td></tr>";
}
?>
<tr><td> </td></tr>
<tr><td colspan="4"><button type="submit">Opslaan</button></td></tr>
</form>
</body>
</html>
Gewijzigd op 14/08/2017 00:31:34 door Thomas Bakker
Is dit de volledige code die je geeft?
En verder kan je "error 500' foutmeldingen ook in je log-bestanden terugvinden.
Gewijzigd op 14/08/2017 00:18:40 door - Ariën -
Inderdaad, dit speelt zich af in een php bestand.
Welke exacte foutmelding is het die je krijgt, en in je log staat. Ik zie geen syntax fouten.
Enig idee waar ik zou moeten zoeken?
Hier nog even een update van mijn code.
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
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
<html>
<head>
<title>Groep A - Aanwezigheid</title>
</head>
<body>
<?php
//Alle variabelen instellen
$servername = "Nee";
$username = "Nee";
$password = "Nee";
$dbname = "Nee";
//Verbinden met de database
$conn = mysqli_connect($servername, $username, $password, $dbname);
//Query opstellen door middel van variabele
$result = mysqli_query($conn,"SELECT * FROM `Aanwezigheid` WHERE `Groep` = 'A'");
?>
<table width="250">
<tr><th align="left">Naam</th><th align="left" colspan="3">Presentie</th></tr>
<tr><td> </td><td>Aan</td><td>Afw</td><td>Afg</td></tr>
<tr><td> </td></tr>
<form action="Checkbox.php" method="post">
<?php
while($row = mysqli_fetch_array($result))
{
echo "<tr><td>{$row['Naam']}</td>";
$i = $row['id'];
$radio = $row['Maandag'];
echo '<td><input type="radio" name="Aanwezig['.$i.']" id="Aanwezig'.$i.'" <?php echo ($radio=='Afwezig')?'checked':'' ?> value="Afwezig"></td><td><input type="radio" name="Aanwezig['.$i.']" id="Aanwezig'.$i.'" value="Present"></td><td><input type="radio" name="Aanwezig['.$i.']" id="Aanwezig'.$i.'" value="Afgemeld"></td>';
echo "<td>{$row['Maandag']}</td></tr>";
}
?>
<tr><td> </td></tr>
<tr><td colspan="4"><button type="submit">Opslaan</button></td></tr>
</form>
</body>
</html>
<head>
<title>Groep A - Aanwezigheid</title>
</head>
<body>
<?php
//Alle variabelen instellen
$servername = "Nee";
$username = "Nee";
$password = "Nee";
$dbname = "Nee";
//Verbinden met de database
$conn = mysqli_connect($servername, $username, $password, $dbname);
//Query opstellen door middel van variabele
$result = mysqli_query($conn,"SELECT * FROM `Aanwezigheid` WHERE `Groep` = 'A'");
?>
<table width="250">
<tr><th align="left">Naam</th><th align="left" colspan="3">Presentie</th></tr>
<tr><td> </td><td>Aan</td><td>Afw</td><td>Afg</td></tr>
<tr><td> </td></tr>
<form action="Checkbox.php" method="post">
<?php
while($row = mysqli_fetch_array($result))
{
echo "<tr><td>{$row['Naam']}</td>";
$i = $row['id'];
$radio = $row['Maandag'];
echo '<td><input type="radio" name="Aanwezig['.$i.']" id="Aanwezig'.$i.'" <?php echo ($radio=='Afwezig')?'checked':'' ?> value="Afwezig"></td><td><input type="radio" name="Aanwezig['.$i.']" id="Aanwezig'.$i.'" value="Present"></td><td><input type="radio" name="Aanwezig['.$i.']" id="Aanwezig'.$i.'" value="Afgemeld"></td>';
echo "<td>{$row['Maandag']}</td></tr>";
}
?>
<tr><td> </td></tr>
<tr><td colspan="4"><button type="submit">Opslaan</button></td></tr>
</form>
</body>
</html>
Gewijzigd op 14/08/2017 01:46:59 door Thomas Bakker
Code (php)
1
2
3
4
5
2
3
4
5
<?php
ini_set('display_startup_errors', 1);
ini_set('display_errors', 1);
error_reporting(-1);
?>
ini_set('display_startup_errors', 1);
ini_set('display_errors', 1);
error_reporting(-1);
?>
Maar zo :
Een topic gespreid over 7 paginas om een checkbox. Godskolere.
en het had nog steeds probleemloos gewerkt.
Als ik in de code kijk zie ik dit staan:
$radio = $row['Maandag'];
Ik neem aan dat hij nog meer wilt gebruiken dan enkel de maandag, en die variabele zal zich ook niet zomaar vanzelf aanpassen naar 'dinsdag'. En als je dan mogelijk nog code gaat dupliceren, dan ben je helemaal op de fout weg bezig....
Gewijzigd op 14/08/2017 10:59:39 door - Ariën -
Gewijzigd op 14/08/2017 11:37:55 door Ben van Velzen