I det efterfølgende indlæg kan der være fejl i PHP koden, da denne er skrevet direkte i dette forum og ikke testet.
Hvis du laver en fil kaldet hello.php på din hjemmeside med koden:
<?php
print 'hello';
?>
Vil du få udskrevet 'hello', hver gang du besøger siden på internettet:
http://www.waterhorses.yup.dk/hello.phpMed andre ord bliver PHP koden af siden afviklet hver gang du besøger siden.
Så hvis du udskifter den kode jeg skrev med logikken til at afvikle dine konkurrencer. Så vil dine konkurrencer blive afviklet hver gang du besøger den side.
Følgende kode antager at du har tabellerne, prikkerne er andre felter i tabellerne.
heste:
hest_id
..
konkurrencer
konkurrence_id
..
tilmeldinger:
hest_id
konkurrence_id
resultater:
hest_id
konkurrence_id
dato
afvikle.php:
<?php
// Det her taget fra din anden post:
$host="localhost"; // Host name
$username="users_camilla"; // Mysql username
$password=""; // Mysql password
$db_name="users_camilla"; // Database name
// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
//DET HER ER LOGIKKEN
$res = mysql_query('SELECT * FROM `tilmeldinger` ORDER konkurrence_id');
if(mysql_num_rows($res)>0){
$now = time();
$resultater = array();
$konkurrence = array();
$konkurrence[] = mysql_fetch_row($res);
while($row = mysql_fetch_row($res)){
if($konkurrence[0]['konkurrence_id']!=$row['konkurrence_id']){
$vinder = array_rand($konkurrence);
$resultater[] = '('.$vinder['konkurrence_id'].','.$vinder['hest_id'].','.$now.')';
$konkurrence = array();
}
$konkurrence[] = $row;
}
$vinder = array_rand($konkurrence);
$resultater[] = '('.$vinder['konkurrence_id'].','.$vinder['hest_id'].','.$now.');
mysql_query('INSERT INTO `resultater`(`konkurrence_id`,`heste_id`,`tid`) VALUES'.implode(',',$resultater));
mysql_query('DELETE FROM `tilmeldinger`');
}
?>
Tilmeldinger
I det link du har fra hesten til valg af konkurrencer. Kan du indkode hestens id i linket.
<a href="deltag_i_konkurrencer.php?hId=HEST_ID">Vælg konkurrencer</a>
Du må selv lige skrive deltag_i_konkurrencer.php og HEST_ID rigtigt.
I deltag_i_konkurrencer.php, Du skal selv lige skrive logikken til at teste om hesten er brugerens. Det burde være en simpel select hvor du teste om du får en række når du søger med hestens id og brugerens.
<?php
session_start();
// Det her taget fra din anden post:
$host="localhost"; // Host name
$username="users_camilla"; // Mysql username
$password=""; // Mysql password
$db_name="users_camilla"; // Database name
// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
if(isset($_POST['sumibt'])){
$tilmeld = true;
if(!is_numeric($_GET['hId'])){
$tilmeld = false;
}
if(!is_numeric($_POST['konkurrence'])){
$tilmeld = false;
}
// INDSÆT HER LOGIK TIL AT TESTE OM HESTEN ER BRUGERENS
if($tilmeld){
$res = mysql_query('SELECT 1 FROM `konkurrencer` WHERE `konkurrence_id`='.$_POST['konkurrence'].' LIMIT 1);
if(mysql_num_rows($res)==0){
$tilmeld = false;
}
}
if($tilmeld){
mysql_query('INSERT INTO `tilmeldinger`(`konkurrence_id`,`hest_id`) VALUES('.$_POST['konkurrence'].','.$_GET['hId'].')');
}
}
$konkurrencer = mysql_query('SELECT * FROM `konkurrencer`');
?>
<form action="deltag_i_konkurrencer.php?hId=<?php echo $_GET['hId'];?>" method="post">
<select name="konkurrence">
<?php
while($row = mysql_fetch_row($konkurrence)){
echo '<option value="'.$row['konkurrence_id'].'">'.$row['name'];
}
?>
</select>
<input type="submit" name="submit" value="Deltag"/>
</form>