Goedemiddag,

Ik ben retenieuw met PHP en ik heb een vraag.
Het is niet dat ik er niet uit kom, maar meer dat ik niet weet waar ik moet zoeken.

Ik heb een PHP pagina gemaakt die gelinkt is aan een database in MySQL.
De database in MySQL bestaat uit 3 kolommen, namelijk;

- Groep
- Naam
- Aanwezig

Ik heb nu een query opgesteld die, afhankelijk in welke groep je je bevind, iedereen toont in de groep.
Hij toont dus Groep, Naam en Aanwezig die nu nog leeg is.

Ik wil het zo kunnen maken dat de 'leiding' van een groep aanwezigheid kan registreren door middel van een checkbox.
Zodra de checkbox is aangevinkt, krijgt de kolom 'Aanwezig' de waarde 'Present' in de database.
Zo een checkbox wil ik dus voor iedereen aan kunnen vinken.
Zodra iedereen op de lijst is gecontroleerd, moet het resultaat naar de database worden verzonden en opgeslagen.
Zodra ik dan wil zien wie er allemaal zijn, moet hij de lijst tonen met de zojuist aangevinkte checkboxen.

Kolom 1 en kolom 2 moeten dus 'read only' worden en kolom 3 moet 'editable' worden.
Hoe kan ik dit het beste doen? Als het nodig is, wil ik hier wel mijn code plaatsen.
Er hoeft niet een hele code voor mij geschreven te worden, maar ik wil weten hoe ik dit aanpak.

Alvast bedankt!
Gewoon als tekst weergeven? En je moet ervoor zorgen dat je op een of andere manier weet voor welke (personen uit een) groep je de aanwezigheid aanvinkt. Dit hangt af van de manier waarop je groepen en personen identificeert, hopelijk met een auto increment id of een andere unieke identificatie?
Zoals Thomas zegt, je kunt je regels het beste identificeren d.m.v. een id.
Dit id kun je weer koppelen aan een input field:

<input type="checkbox" name="aanwezig_1">


Zo kun je een loop maken voor alle id's, waarin je de 1 vervangt door je loop index.

Later haal je dit weer op met
<?php $waarde = $_POST['aanwezig_1']; ?>


Ook dit kun je weer met eenzelfde loop verwerken.
Hey,

Bedankt voor jullie antwoorden.
Bij het woord Auto Increment slaat mijn hoofd al op hol (ja, ik ben écht nieuw).
Ik heb het als volgende 'georganiseerd';

- Ik heb een MySQL database
- Op dit moment worden de resultaten getoond d.m.v. een query

Een auto increment functie maak ik dan ook geen gebruik van.
Aan het formulier om alles aan te passen ben ik nog niet begonnen, dat gaat een nieuwe uitdaging vormen.

Edit: even voor het gemak hier een overzicht van mijn code.

--


	//Alle variabelen instellen
	$servername = "servername";
	$username = "username";
	$password = "password";
	$dbname = "databasename";

	//Verbinden met de database
	$conn = mysqli_connect($servername, $username, $password, $dbname);

	//Controleren van de verbinding
	if ($conn->connect_error) {
		die("Verbinden mislukt: " . $conn->connect_error);
	}
	
	//Query opstellen door middel van variabele
	$result = mysqli_query($conn,"SELECT * FROM `Aanwezigheid` WHERE `Groep` = 'A'");
	
	echo"<table border='1'>";
	echo"<tr><th>Groep</th><th>Naam</th><th>14-8-2017</th></tr>";
	while($row = mysqli_fetch_assoc($result)) {
		echo"<tr><td>{$row['Groep']}</td><td>{$row['Naam']}</td><td>{$row['14-8-2017']}</td></tr>";
	} 
	echo"<table>";
	
	$conn->close();
Auto_increment is een functie in MySQL om records automatisch oplopend te nummeren met een uniek nummer, ter identificatie.

PS: codes kan je het best tussen code-tags plaatsen.
Kan ik die nog toepassen nadat ik alle records heb gemaakt? Dus nu alsnog alle records een Id geven m.b.v. een auto increment functie?

Edit: thanks, gewijzigd.
Ja, geen enkel probleem. Als je ID-veld maar een Primairy Key is.
Oke, thanks, ik ga mijn best doen.
Als ik weer op problemen stuit horen jullie het van mij ;)
Je moet hiervoor eerst een extra kolom toevoegen, bijvoorbeeld: 'Aanwezigheid_id'
Deze geef je vervolgens de auto increment mee, not null.


Wat betreft je data ophalen en de index meenemen: (een heel simpel voorbeeld)

<?php
$result = mysqli_query("
SELECT `Aanwezigheid_id` FROM Aanwezigheid WHERE ....
");
	
$rows = mysqli_num_rows($result);
for ($index = 0 ; $index < $rows; $index++)
{
$data = mysqli_fetch_object($result);
$gegeven[$index]['id'] = $data->Aanwezigheid_id;
}
?>
Ik heb zojuist met behulp van auto increment de ID's verkregen.
Alle rijen hebben nu een ID. Ik ga jouw commentaar meenemen Peter.
Alvast bedankt zover.

[size=xsmall]Toevoeging op 03/08/2017 13:08:11:[/size]

Oke, ik heb dus een nieuw scriptje opgesteld.
Ik krijg alleen een foutmelding, unexpected end of file en ik snap niet waarom.


<html>
<head>
<title>Groep A - Aanwezigheid</title>
</head>
<body>

<?php

	//Alle variabelen instellen
	$servername = "localhost";
	$username = "root";
	$password = "";
	$dbname = "aanwezigheid";

	//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>
	<tr>
		<th>Groep</th>
		<th>Naam</th>
		<th>14-8-2017</th>
	</tr>
	
	<?php
	while($row = mysqli_fetch_array($result))
	{
			echo "<tr><form action=Checkbox.php method=post>";
			echo "<td>{$row['Groep']}</td>";
			echo "<td>{$row['Naam']}</td>";
			echo "<td><input type=checkbox name=presentie value='".$row['14-8-2017']."'</td>";
			echo "<input type=hidden name=id value='".$row['ID']."'>";
			echo "<td><input type=submit></td>";
			echo "</form></tr>";
	?>
	
</table>
</body>
</html>


Dit is mijn Checkbox.php, maar daar komt ie nog niet eens, dus heb het nog niet kunnen testen, maar zou volgens mij moeten werken..

<?php

	//Alle variabelen instellen
	$servername = "localhost";
	$username = "root";
	$password = "";
	$dbname = "aanwezigheid";

	//Verbinden met de database
	$conn = mysqli_connect($servername, $username, $password, $dbname);
	
	//Query opstellen door middel van variabele
	$result = "UPDATE aanwezigheid SET Groep='$_POST[Groep]',Naam='$_POST[Naam]',14-8-2017='$_POST[14-8-2017]' WHERE ID='$_POST[id]'";

	//Query draaien
	if(mysqli_query($conn,$result))
		header("refresh:1; url=GroepA.php");
	else
		echo "Not updated";
?>
$_POST[Groep] => $_POST['Groep'] => lekker onveilig trouwens.
$_POST[Naam] => hetzelfde.
En wat mag dit zijn? => 14-8-2017='$_POST[14-8-2017]' => -2011='$_POST[-2011]'

Reageren