Data opvragen en bewerken in PHP

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2 3 ... 5 6 7

Thomas Bakker

Thomas Bakker

10/08/2017 13:23:14
Quote Anchor link
- 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.


Interessant dan. Als ik deze text intype in de MySQL console geeft hij wel de resultaten in de vorm van een getal.
 
PHP hulp

PHP hulp

21/11/2024 18:51:38
 
Ben van Velzen

Ben van Velzen

10/08/2017 14:28:02
Quote Anchor link
En dus? De MySQL console is heel wat anders dan het gebruik in een script.
 
Peter K

Peter K

10/08/2017 15:32:37
Quote Anchor link
Je moet nu nog in php de MySQL resultaten verwerken.
 
Thomas Bakker

Thomas Bakker

13/08/2017 17:04:55
Quote Anchor link
Goedemiddag mensen, op dit moment zijn mijn radio buttons per standaard niet 'aangeklikt'.
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?
 
- Ariën  -
Beheerder

- Ariën -

13/08/2017 17:14:26
Quote Anchor link
Als je een radio-button standaard wilt selecteren, dan gebruik je checked in je HTML.
Bijvoorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
  <input type="radio" name="geslacht" value="female" checked>Vrouw<br>


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 -
 
Adoptive Solution

Adoptive Solution

13/08/2017 17:27:53
Quote Anchor link
Hier een deel van de code om een vinkje te zetten bij het tonen van een record :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>
 
Thomas Bakker

Thomas Bakker

13/08/2017 17:33:37
Quote Anchor link
Ik dacht op deze manier;

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<input type="radio" name="Aanwezig['.$i.']" id="Aanwezig'.$i.'" <?php if($_POST['Presentie']=="Afwezig") echo "checked";?> value="Afwezig">
 
- Ariën  -
Beheerder

- Ariën -

13/08/2017 17:34:39
Quote Anchor link
En ter informatie:
Hier wordt de ternary operator gebruikt. Dit is een verkorte if-else statement:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$checked
= ( $row->present == 1 ? 'checked' : '' );
?>

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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$var = (voorwaarde ? true : false);


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 -
 
Adoptive Solution

Adoptive Solution

13/08/2017 17:56:22
Quote Anchor link
Hier een voorbeeld van een sortement presentielijst :

http://adoptive.esy.es/members/

Alleen de vinkjes worden bewaard. Dus knoeien mag.
 
Thomas van den Heuvel

Thomas van den Heuvel

13/08/2017 19:21:42
Quote Anchor link
Thomas Bakker op 13/08/2017 17:33:37:
Ik dacht op deze manier;

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<input type="radio" name="Aanwezig['.$i.']" id="Aanwezig'.$i.'" <?php if($_POST['Presentie']=="Afwezig") echo "checked";?> value="Afwezig">


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...
 
Thomas Bakker

Thomas Bakker

14/08/2017 00:13:48
Quote Anchor link
Ik dacht dat ik er zo wel zou komen, kan iemand mij vertellen waarom dit niet werkt?
Ik krijg http 500 error..

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$radio = $row['Presentie'];

<input type="radio" name="Aanwezig['.$i.']" id="Aanwezig'.$i.'" <?php echo ($radio=='Afwezig')?'checked':'' ?> value="Afwezig">


Edit; hier is mijn volledige code

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
<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>&nbsp;</td><td>Aan</td><td>Afw</td><td>Afg</td></tr>
<tr><td>&nbsp;</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>&nbsp;</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
 
- Ariën  -
Beheerder

- Ariën -

14/08/2017 00:16:52
Quote Anchor link
Ik vermoed dat je PHP-code in een PHP-code wilt plaatsen, of direct HTML in een PHP-code.

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 -
 
Thomas Bakker

Thomas Bakker

14/08/2017 00:32:27
Quote Anchor link
Ariën, ja, dit is per radio button de volledige code die ik heb geprobeerd.
Inderdaad, dit speelt zich af in een php bestand.
 
- Ariën  -
Beheerder

- Ariën -

14/08/2017 00:55:51
Quote Anchor link
Welke exacte foutmelding is het die je krijgt, en in je log staat. Ik zie geen syntax fouten.
 
Thomas Bakker

Thomas Bakker

14/08/2017 01:43:38
Quote Anchor link
Ik kan hem niet vinden.. :(
Enig idee waar ik zou moeten zoeken?

Hier nog even een update van mijn code.

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
<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>&nbsp;</td><td>Aan</td><td>Afw</td><td>Afg</td></tr>
<tr><td>&nbsp;</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>&nbsp;</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
 
- Ariën  -
Beheerder

- Ariën -

14/08/2017 06:24:26
Quote Anchor link
Zet anders dit bovenaan:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
ini_set('display_startup_errors', 1);
ini_set('display_errors', 1);
error_reporting(-1);
?>
 
Adoptive Solution

Adoptive Solution

14/08/2017 08:04:44
Quote Anchor link
Niet zo :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
echo ( $radio == 'Afwezig' ) ? 'checked' : '' ?>


Maar zo :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
echo ( $radio == 'Afwezig' ? 'checked' : '' ) ?>


Een topic gespreid over 7 paginas om een checkbox. Godskolere.
 
Ben van Velzen

Ben van Velzen

14/08/2017 10:37:02
Quote Anchor link
Qua syntax mag het met of zonder haakjes, waar je die haakjes neerzet doet ook niet tezake, tenzij je directe concatenatie doet. Desnoods had hij mogen neerzetten
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $radio == 'Afwezig' ? 'checked' : '' ?>

en het had nog steeds probleemloos gewerkt.
 
- Ariën  -
Beheerder

- Ariën -

14/08/2017 10:59:24
Quote Anchor link
Ik vraag me af of de topicstarter meer behoefte aan een basis-cursus PHP, en aan de hand daarvan wat praktische opdrachten kan maken, waarbij zijn afwezigheidssysteem even in de ijskast wordt gezet.

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 -
 
Ben van Velzen

Ben van Velzen

14/08/2017 11:37:39
Quote Anchor link
Volgens mij heb ik het advies om een cursusje te volgen al eens gegeven. Het wordt meer en meer duidelijk dat het nodig is.
Gewijzigd op 14/08/2017 11:37:55 door Ben van Velzen
 

Pagina: « vorige 1 2 3 ... 5 6 7



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.