Goedenmorgen,
Ik ben hier nu al een tijd mee aan het worstelen en ik heb 2 problemen (probleempjes). ik kom er in ieder geval niet uit.

1. Als je op inschrijven klikt zou hij moeten weergeven "Je schreef je in voor deze tocht (tocht naam)"
2.en zou hij moeten optellen bij aantal ingeschreven.
3.Hij zou ook echt moeten inschrijven, als ik de 1e while laat doorlopen schrijft hij wel in maar dan ook voor Alle tochten.

hier de code ik zal er even wat duidelijke comments bij zetten alvast bedankt.

</head>
<!--
___________________
| |
|Door Bas Visscher |
|___________________|
-->
<body>
<h1> Tochten</h1>
<?php
//Controle op recht en ingelogd zijn.
if(empty($_SESSION['log_user'])){
print("Logt u zich alstublieft in");
}
else{


//Connectie met de database
$connectie = mysql_connect("localhost", "***" , "****") or die("Geen connectie met db".mysql_error());
mysql_select_db("kroegentochten")or die("Kan databbase niet selecteren".mysql_error());

//Opvragen gegevens van de tochten

$query = mysql_query("SELECT * FROM tocht ORDER BY t_datum ASC") or die ("query tocht werkt niet".mysql_error());

?>
<!-- Form voor weergeven van alle tochten -->
<form action="index.php?Page=schrijfin" method="post" >
<table bgcolor="#0099FF" bordercolor="#FFFFFF" border="2" ><tr><td>Naam:</td><td>Datum:</td><td>Maximum deelnemers</td><td>Aantal ingeschreven:</td><td>Kosten:</td><td>Inschrijven:</td></tr>
<?php
//de query moet volgens onze opdracht met fetch assoc!
while($row_tocht = mysql_fetch_assoc($query)){
//Hier zou hij moeten kijken hoeveel mensen er zijn ingeschreven, maar dat doet hij niet.
$query2 = "SELECT COUNT(gbr_id) AS aantal FROM inschrijving WHERE tocht_id = '".$row_tocht['tocht_id']."'";
$result = mysql_query($query2);
print("<tr><td><a href=\"index.php?Page=schrijfin&id=".$row_tocht['tocht_id']."\" onclick=\"return window.alert('Extra informatie.') \">".$row_tocht['t_naam']."</a></td><td>".$row_tocht['t_datum']."</td><td>".$row_tocht['max_deelnemers']."</td><td>".$result."</td><td>".$row_tocht['kost_tocht']."</td><td><input type=\"submit\" name=\"submit\" value=\"schrijf in\" /></td></tr>");


}
//Inschrijf code

if(isset($_POST['submit']) ){
//Dit werd een check om te kijken of je al ingeschreven bent, werkt nog niet.

/* $email_check = mysql_query("SELECT tocht_id FROM inschrijving WHERE gbr_id = '".$_SESSION['user_id']."' " )or die(print("Waarschijnlijk een fout in de check query".mysql_error()));
if (mysql_num_rows($email_check) == 1 ) {
print("U heeft zich al ingeschreven voor deze tocht. ");
}else{ */


$query3 = mysql_query("SELECT * FROM tocht WHERE tocht_id = '".$row_tocht['tocht_id']."' ") or die("deze query werkt niet".mysql_error());
while($row_tocht2 = mysql_fetch_assoc($query3))
mysql_query("INSERT INTO `inschrijving` (`tocht_id` , `kost_tocht` , `kost_vervoer` , `gbr_id` )
VALUES ('".$row_tocht2['tocht_id']."' , '".$row_tocht2['kost_tocht']."' ,
'".$row_tocht2['kost_vervoer']."' , ".$_SESSION['user_id'].") " )or die
("Kan niet inschrijven neem <a href=\"contact.php\">contact</a> op.".mysql_error());
//Dit werkt ook niet, omdat ik denk dat je de eerste $row_tocht moet hebben maar die kan ik niet door laten lopen. anders schrijft hij voor alles in!
print("Je schreef je in voor deze tocht".$row_tocht2['t_naam']);
}
mysql_free_result($query);
mysql_close($connectie);

print("</table></form> ");

}
?>

Edit1: Bij aantal ingeschreven geeft hij trouwens dit weer oplopend qua getallen. : Resource id #5

dan moet je weer een selectie maken, maar laat even je code zien wat het nu is.
<?php
//Opvragen gegevens van de tochten

$query = mysql_query("SELECT * FROM tocht ORDER BY t_datum ASC") or die ("query tocht werkt niet".mysql_error());

?>
<form action="index.php?Page=schrijfin" method="post" >
<table bgcolor="#0099FF" bordercolor="#FFFFFF" border="2" ><tr><td>Naam:</td><td>Datum:</td><td>Maximum deelnemers</td><td>Aantal ingeschreven:</td><td>Kosten:</td><td>Inschrijven:</td></tr>
<?php
while($row_tocht = mysql_fetch_assoc($query)){

$query2 = mysql_query("SELECT COUNT(gbr_id) AS aantal FROM inschrijving WHERE tocht_id = '".$row_tocht['tocht_id']."'");
while($result = mysql_fetch_assoc($query2)){

print("<tr><td><a href=\"index.php?Page=schrijfin&id=".$row_tocht['tocht_id']."\" onclick=\"return window.alert('Extra informatie.') \">".$row_tocht['t_naam']."</a></td><td>".$row_tocht['t_datum']."</td><td>".$row_tocht['max_deelnemers']."</td><td>".$result['aantal']."</td><td>".$row_tocht['kost_tocht']."</td><td><input type=\"submit\" name=\"submit\" value=\"schrijf in\" /></td></tr>");}


}
//Inschrijf code

if(isset($_POST['submit']) ){
/* $email_check = mysql_query("SELECT tocht_id FROM inschrijving WHERE gbr_id = '".$_SESSION['user_id']."' " )or die(print("Waarschijnlijk een fout in de check query".mysql_error()));
if (mysql_num_rows($email_check) == 1 ) {
print("U heeft zich al ingeschreven voor deze tocht. ");
}else{ */


$query3 = mysql_query("SELECT * FROM tocht WHERE tocht_id = '".$row_tocht['tocht_id']' ") or die("deze query werkt niet".mysql_error());
while($row_tocht2 = mysql_fetch_assoc($query3)){
mysql_query("INSERT INTO `inschrijving` (`tocht_id` , `kost_tocht` , `kost_vervoer` , `gbr_id` )
VALUES ('".$row_tocht2['tocht_id']."' , '".$row_tocht2['kost_tocht']."' ,
'".$row_tocht2['kost_vervoer']."' , ".$_SESSION['user_id'].") " )or die
("Kan niet inschrijven neem <a href=\"contact.php\">contact</a> op.".mysql_error());
print("Je schreef je in voor deze tocht".$row_tocht2['t_naam']);
}

}
mysql_free_result($query);
mysql_close($connectie);

print("</table></form> ");

}
?>

Edit1: ipv $get_id dus row_tocht['tocht_id']
bij while moet je do gebruiken!
je code is nogal rollemig maar volgens mij moet dit werken.
welke while?

want hij zegt nu dat de { er niet moet staan, (ik heb nog nooit van DO gehoort.)

<?php
$i = 0;
do {
echo $i;
} while ($i > 0);
?>
@phpnoobie;

1 - bij het WHERE'en van een var in een query altijd [php]mysql_real_escape_string()[/php]
2 - om te kijken of er is gesubmit gebruik if($_SERVER['REQUEST_METHOD'] == 'POST') en niet if(isset($_POST['submit']))
3 - [php]die()[/php] is geen oplossing, wat als je dan nog wat extra code daarna wilt uitvoeren ?

kijk ook even naar deze punten, volgens mij zitten er nog wel wat meer in
aah ik snap hem dus eerst wat hij moet doen binnen de while tussen de {} van de "DO"

http://www.tizag.com/phpT/dowhile.php las ik net ;)

Die doe werkt natuurlijk niet, omdat hij die variabele dan niet meer kent?
Kwartje gevallen?

En lees de post even van Ivo, dat had ik namelijk ook al gezegd.
neej nog niet,,
omdat als ik die do{ *1} gebruik herkent hij variabelen die in de WHILE staat bij *1 niet meer.

Reageren