Eenmalig data ophalen uit database (xboxlivecards)
Ben nu al een tijdje aan het prutsen maar kom er simpelweg niet uit. Heb voor mijn website: een systeem nodig die na betaling eenmalig een code uit mijn mysql database kan halen. Nu heb ik al een script die connectie maakt met mijn database en daar gegevens van de velden uit haalt. (xboxlivegold.net/gold.php. Alleen nu is de vraag: hoe haal ik gegevens uit die database die slechts 1 keer worden weergegeven en niet een tweede keer kunnen worden opgevraagd?
Hulp wordt zeer gewaardeerd!
Mijn code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http ://www .w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>MySQL testscript</title>
</head>
<body>
Code (php)
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
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
<?
//+---------------------------------------------------------+
//login gegevens |
$host = "localhost";//locatie van de MySQL server |
$username = "maarten1_mm";//gebruikersnaam van de MySQL server |
$password = "";//wachtwoord van de MySQL server |
$database = "maarten1_mm";//database die aangesproken moet worden |
$sql = "SELECT * FROM livecards";//SQL query |
//+---------------------------------------------------------+
//connecteren
$lnk = mysql_connect($host,$username,$password) or die(mysql_error());
mysql_select_db($database,$lnk) or die(mysql_error()." [".$database."]");
$resultaat = mysql_query($sql,$lnk)or die(mysql_error()." [".$sql."]");
$aantal_velden = mysql_num_fields($resultaat)or die(mysql_error()." [".$sql."]");
//weergave in tabelvorm
echo "<table border=\"1\" bordercolor=\"#000000\" cellspacing=\"0\" cellpadding=\"0\" width=20%>";
//opvragen velden
echo "<tr bgcolor=\"#CCCCCC\">";
while($col = mysql_fetch_field($resultaat)) //alle velden overlopen om kolomkoppen te genereren
{
echo "<td>".$col->name."</td>";
}
echo "</tr>";
//opvragen waarden
while($row = mysql_fetch_array($resultaat)) //alle rijen aflopen
{
echo "<tr>";
for($i=0;$i<$aantal_velden;$i++) //alle kolommen aflopen op basis van aantal velden
{
echo "<td>".$row[$i]."</td>";
}
echo "</tr>";
}
echo "</table>";
mysql_close($lnk);
?>
//+---------------------------------------------------------+
//login gegevens |
$host = "localhost";//locatie van de MySQL server |
$username = "maarten1_mm";//gebruikersnaam van de MySQL server |
$password = "";//wachtwoord van de MySQL server |
$database = "maarten1_mm";//database die aangesproken moet worden |
$sql = "SELECT * FROM livecards";//SQL query |
//+---------------------------------------------------------+
//connecteren
$lnk = mysql_connect($host,$username,$password) or die(mysql_error());
mysql_select_db($database,$lnk) or die(mysql_error()." [".$database."]");
$resultaat = mysql_query($sql,$lnk)or die(mysql_error()." [".$sql."]");
$aantal_velden = mysql_num_fields($resultaat)or die(mysql_error()." [".$sql."]");
//weergave in tabelvorm
echo "<table border=\"1\" bordercolor=\"#000000\" cellspacing=\"0\" cellpadding=\"0\" width=20%>";
//opvragen velden
echo "<tr bgcolor=\"#CCCCCC\">";
while($col = mysql_fetch_field($resultaat)) //alle velden overlopen om kolomkoppen te genereren
{
echo "<td>".$col->name."</td>";
}
echo "</tr>";
//opvragen waarden
while($row = mysql_fetch_array($resultaat)) //alle rijen aflopen
{
echo "<tr>";
for($i=0;$i<$aantal_velden;$i++) //alle kolommen aflopen op basis van aantal velden
{
echo "<td>".$row[$i]."</td>";
}
echo "</tr>";
}
echo "</table>";
mysql_close($lnk);
?>
</body>
</html>
Gewijzigd op 26/04/2012 13:41:52 door Maarten Moi
Hier wil je er 1 van hebben die nog niet eerder is uitgegeven.
Sowieso je query en wellicht structuur aanpassen
Nu moet je dus nog een update query uitvoeren als de code getoond wordt die ervoor zorgt dat de kolom showed naar bijvoorbeeld 1 gaat.
Op die manier kan elke code maar 1 keer getoond worden
Q S op 26/04/2012 14:22:55:
Als ik het goed begrijp heb je dus een tabel die vol staat met codes.
Hier wil je er 1 van hebben die nog niet eerder is uitgegeven.
Sowieso je query en wellicht structuur aanpassen
Nu moet je dus nog een update query uitvoeren als de code getoond wordt die ervoor zorgt dat de kolom showed naar bijvoorbeeld 1 gaat.
Op die manier kan elke code maar 1 keer getoond worden
Hier wil je er 1 van hebben die nog niet eerder is uitgegeven.
Sowieso je query en wellicht structuur aanpassen
Nu moet je dus nog een update query uitvoeren als de code getoond wordt die ervoor zorgt dat de kolom showed naar bijvoorbeeld 1 gaat.
Op die manier kan elke code maar 1 keer getoond worden
Heb niet heel veel verstand van SQL, maar begrijp het principe wel... Maar krijg je dan niet het probleem dat wanneer de pagina wordt herladen je weer een nieuwe code krijgt?
$_SESSION["codeIsShown"] = "ja";
$_SESSION["code"] = $code;
Quote:
Heb niet heel veel verstand van SQL, maar begrijp het principe wel... Maar krijg je dan niet het probleem dat wanneer de pagina wordt herladen je weer een nieuwe code krijgt?
Als je een betalingskenmerk in je url zet na succesvolle betaling kan je daarmee redeneren naar je xbox code. Je moet zorgen dat wanneer je een code ophaalt, dat je het id van die code opslaat bij die betaling.