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

Controleer nooit op deze manier of iemand is ingelogd! Dit is makkelijk te omzeilen en veel te kort. Zet ook nooit een post of get direct in je sql, mysql_real_escape_string weet je nog? gebruik voor print echo en ga nooit met if(isset($_POST['submit']) ){ na of er op post gedrukt is. organiseer je code want dan pas kunnen we zien wat er mis is.
Edit1: Bij aantal ingeschreven geeft hij trouwens dit weer oplopend qua getallen. : Resource id #5
Deze vraag is eenvoudig te beantwoorden: je vergeet de resultaten van je query van regel 6 te fetchen. Je gebruikt nu $result in je echo, maar dat is de complete resultaat set. Gebruik mysql_fetch_assoc() om de resultaten te fetchen ;-)
nu geeft hij Array weer,,
moet ik heb nog for eachen?
phpnoobie schreef op 05.01.2009 12:23
nu geeft hij Array weer,,
moet ik heb nog for eachen?

for of while ken ook net wat je makkelijk vind
Je moet uit de array maar eentje halen dus $query['naam'] of $query['id']. Snapie?
weet ik maar het is een count wat moet ik dan selecteren?

dit is de query:
<?php
$query2 = mysql_query("SELECT COUNT(gbr_id) AS aantal FROM inschrijving WHERE tocht_id = '".$row_tocht['tocht_id']."'");
$result = mysql_fetch_assoc($query2);
$result['aantal']


?>maar dan geeft hij overal hetzelfde aantal weer namelijk 3
Wat ga je nu doen? Je zet een query result in een andere query. Gebruik for, forech, of while. Kijk even op php.net.
ok optellen doet hij nu, maar hij schrijf niet in..
dat moet ook binnen de loop
dat probeerde ik eerder ook al maar dan schrijft hij in op alle tochten die er zijn,
ik zit nu te denken aan het meegeven van de id mbv een Get, dus als je op de schrijf in button clickt returnt hij de tocht_id ,,

Reageren