Voor een spel dat ik aan het maken ben, probeer ik een banksysteem te maken.
De bedoeling is dat de gebruiker het bedrag wat op zijn bank staat en wat hij "contant" heeft, kan aanpassen.
Maar niet boven een bepaald bedrag.
<?php
session_start(); ?>
<?php
if(isset($_GET['id']))
{
$id = intval($_GET['id']);
// getting info from db
}
?>
<?php
if(isset($_GET['club']))
{
$club = $_GET['club'];
// getting info from db
}
$maxbudget = "500.000";
?>
<?php
//=============Configuring Server and Database=======
$host = 'localhost';
$user = 'root';
$password = '';
$database = 'voetbal';
$conn = mysqli_connect($host,$user,$password, $database) or die('Server Information is not Correct');
//===============End Server Configuration============
//=============Starting Registration Script==========
$budget = mysqli_real_escape_string($conn, $_POST['budget']);
$bank = mysqli_real_escape_string($conn, $_POST['bank']);
if ($budget > $maxbudget){
if(isset($_POST['update']))
{
$sql = "UPDATE clubs SET budget ='$budget', bankbudget ='$bank' WHERE id='$id'";
if ($conn->query($sql) === TRUE) {
echo "Je financiën zijn gewijzigd! <a href='index.php?id=$id&&club=$club'>Klik hier om terug te gaan naar de homepagina</a>";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
}}
else if ($bank > $maxbudget){
if(isset($_POST['update']))
{
$sql = "UPDATE clubs SET budget ='$budget', bankbudget ='$bank' WHERE id='$id'";
if ($conn->query($sql) === TRUE) {
echo "Je financiën zijn gewijzigd! <a href='index.php?id=$id&&club=$club'>Klik hier om terug te gaan naar de homepagina</a>";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
}}
else {
echo "Het ingevulde bedrag is te hoog!";
}?>
$maxbudget is dat maximale budget. Maar nu wil ik door middel van die if en else if dat dus regelen.
Maar als ik in het form vakje van het bedrag wat ik op bank wil hebben bijv 600.000 invul, geeft hij aan dat het bedrag te hoog is, maar dat doet hij ook bij 450.000. Terwijl dat niet te hoog is (aangezien de max 500.000 is).
Dat hij die melding dan niet gaf op de andere pagina`s viel me op. Maargoed, de error is opgelost.
De $club is "Cambuur";
Hij zegt nu:
Unknown column 'Cambuur' in 'field list'
Aha thx.
Nu is er iets wat ik best opvallend vind.
Hij voert de query door: het lege vakje onder "CLUB" in de database vult hij met Cambuur.
Maar toch geeft hij een error over de Num_Rows.
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in
De code
<?php
if ( isset($_SESSION['username']) ) {
if(isset($club)) {
$query = "UPDATE users SET club='".$club."' WHERE id=".$id;
// execute query
$result = mysqli_query($con, $query) or die ("Error in query: $query. ".mysqli_error($con));
// see if any rows were returned
if (mysqli_num_rows($result) > 0) {
echo "Je hebt gekozen voor $club<br>";}
else { echo "Welkom bij VoetbalLeven. Het nieuwste voetbalmanagementspel van Nederland.<br> Log in."; }
} else {
echo "Kies je club:";
include "clubtabel.php"; }}
else { echo "Welkom bij VoetbalLeven. Het nieuwste voetbalmanagementspel van Nederland.<br> Log in."; }?>
Dat is punt 1.
Punt 2 gaat zoals eerder opnieuw over het "Te koop zetten van een speler":
$result = mysqli_query($con,"SELECT algemeen FROM spelers WHERE speler_id='".$speler_id."'");
$algemeen = mysqli_fetch_assoc($result);
$result = mysqli_query($con,"SELECT leeftijd FROM spelers WHERE speler_id='".$speler_id."'");
$leeftijd = mysqli_fetch_assoc($result);
$result = mysqli_query($con,"SELECT naam FROM spelers WHERE speler_id='".$speler_id."'");
$naam = mysqli_fetch_assoc($result);
$Bedrag = mysqli_real_escape_string($con, $_POST['bedrag']);
{
$sql = "INSERT INTO transfers (naam, leeftijd, algemeen, vraagprijs) VALUES ('$naam','$leeftijd','$algemeen','$Bedrag')";
Waarom voert hij hier alleen $Bedrag (vraagprijs) door en de rest niet?
PUNT 3
Gaat over hetgeen waar ik dit topic over begon: het banksysteem.
Ik heb nu dat je max 500k contant kan hebben en tegelijkertijd 500k max op de bank.
Maar wat ik het liefst heb is dat contant+bank samen max 500k kan zijn. Maar hoe doe ik dat?
De volledige code van waar hij checkt of je bedrag klopt en niet te hoog is:
<?php
session_start();
if(isset($_GET['id']))
{
$id = intval($_GET['id']);
// getting info from db
}=
if(isset($_GET['club']))
{
$club = $_GET['club'];
// getting info from db
}
$maxbudget = 500000;
//=============Configuring Server and Database=======
$host = 'localhost';
$user = 'root';
$password = 'superbart';
$database = 'voetbal';
$conn = mysqli_connect($host,$user,$password, $database) or die('Server Information is not Correct');
//===============End Server Configuration============
//=============Starting Registration Script==========
$budget = mysqli_real_escape_string($conn, $_POST['budget']);
$bank = mysqli_real_escape_string($conn, $_POST['bank']);
if ($budget < $maxbudget){
if(isset($_POST['update'])){
$sql = "UPDATE clubs SET budget ='$budget', bankbudget ='$bank' WHERE id='$id'";
if ($conn->query($sql) === TRUE) {
echo "Je financien zijn gewijzigd! <a href='index.php?id=$id&&club=$club'>Klik hier om terug te gaan naar de homepagina</a>";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;}
$conn->close();
}}
else if ($bank < $maxbudget){
if(isset($_POST['update'])){
$sql = "UPDATE clubs SET budget ='$budget', bankbudget ='$bank' WHERE id='$id'";
if ($conn->query($sql) === TRUE) {
echo "Je financien zijn gewijzigd! <a href='index.php?id=$id&&club=$club'>Klik hier om terug te gaan naar de homepagina</a>";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
}}
else {
echo "Het ingevulde bedrag is te hoog!";
}?>
BTW: Het zijn veel vragen die ik stel, dat snap ik. Maar ik maak dit voetbalspel ook met name om meer te leren coderen wat PHP-codering betreft.
1) Vreemd, gaat het om dezelfde mysqli_num_rows? Die zou moeten worden uitgevoerd zolang je query uitgevoerd wordt. Wel zie ik in je tweede codeblok dat je hier MySQLi-OO (Object-Oriented; met ->) toepast, en dit mengt met de procedurele variant. (mysqli_****()). Dit raad ik niet aan. Kies één van beiden.
Ikzelf prefereer de OO-variant,
2) Waarom voer je hier drie queries uit om 3 velden uit de zelfde tabel te halen, je kan prima meerdere velden in een SELECT query gebruiken: SELECT dit, dat, zus, zo FROM dingetjes WHERE zus='zo'.
Daarna fetch je het als je het opgehaald hebt met mysqli_query().
3) Je moet dan de contant en bank bij elkaar optellen. Kan prima met PHP.