Eenmalig data ophalen uit database (xboxlivecards)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Maarten Moi

Maarten Moi

26/04/2012 13:40:39
Quote Anchor link
Hallo,

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)
PHP script in nieuw venster Selecteer het PHP script
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
<?
//+---------------------------------------------------------+
//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
 
PHP hulp

PHP hulp

22/12/2024 19:12:48
 
Q S

Q S

26/04/2012 14:22:55
Quote Anchor link
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

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$sql
= "SELECT * FROM livecards where showed = '0' LIMIT 0,1";
?>


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
 
Maarten Moi

Maarten Moi

26/04/2012 14:36:57
Quote Anchor link
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

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$sql
= "SELECT * FROM livecards where showed = '0' LIMIT 0,1";
?>


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?
 
Q S

Q S

26/04/2012 14:41:11
Quote Anchor link
Dat zou je d.m.v. een sessie variabele af kunnen vangen.

$_SESSION["codeIsShown"] = "ja";
$_SESSION["code"] = $code;

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
if($_SESSION["codeIsShown"] == "ja"){
   //code tonen zonder alle queries uit te voeren
   echo $_SESSION["code"];
}
else{
   //code ophalen en dan tonen

   //sessie wegschrijven

   $_SESSION["codeIsShown"] = "ja";
   $_SESSION["code"] = $code;
}

?>
 
Gerhard l

gerhard l

26/04/2012 15:33:29
Quote Anchor link
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.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.