Hallo iedereen,
Ik ben bezig met mijn browsergame en ik loop compleet vast bij het opzetten van de eerste keer dat iemand het speelt.
Het is de bedoeling dat als de user business_life 0 in de database heeft staan. Hij nog nooit gespeeld heeft dan moet de onderstaande html pagina gegeven worden maar ik gebruik MySQL! Ik heb al een query toegevoegd maar dan loop ik vast! Hopelijk kan iemand mijn hiermee helpen.


<?php
include 'config/mysql.php';
$userName = $_SESSION['userName'];
$query = mysql_query("SELECT * FROM `logins` WHERE `userName`='$userName' AND `business_life`='0'");
if(isset($_SESSION['userName'])) {
?>
<!DOCTYPE html>
<html>
    <head>
        <title>TeamCrafted: Business Life</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="stylesheet" type="text/css" href="http://www.teamgame.tk/css/game.css">
    </head>
    <body>
        <?php include_once("header.php"); ?>
    <div class="content">
            <div>
                <h2>Welkom <?php echo $_SESSION['userName'];?>,</h2>
              <p>op BUSINESS LIFE!</p>
              <p>We hebben vernomen dat dit de eerste keer is dat je dit spel speelt.</p>
              <p>Je kan starten als je wilt door op de startknop te klikken.</p>
              <form href="install_business_life.php">
              <button type="submit" class="button_kort" >Start</button>
              </form>
            </div>
    </div>
    </body>
</html>
<?php
} else {
    header('Location: index.php');
}
?>
**knip** op 14/07/2014 16:38:21

Kan je dit ook in een code zetten, leer ik meer uit dan iets onbekend.


Ik ben eigenlijk van mening dat, wanneer je aan de hand van een aanwijzing, zelf iets uitzoekt, je daar meer van op steekt dan wanneer je alles voorgekauwd krijgt.

Wanneer alles voorgekauwd wordt leer je zelf niet nadenken, leer jezelf niet(s) ontwikkelen en zul je altijd afhankelijk blijven van anderen.


Dit is mijn code nu hij geeft nog steeds ook als de business_life entry in de database op 1 zet krijg ik nog steeds niets gevonden!
<?php
include 'config/mysql.php';
$query = "SELECT * FROM logins WHERE userName = '$username' AND business_life = 0";
$result= mysql_query($query);
if($result) {
?>
<!DOCTYPE html>
<html>
    <head>
        <title>TeamCrafted: Business Life</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="stylesheet" type="text/css" href="http://www.teamgame.tk/css/game.css">
    </head>
    <body>
        <?php include_once("header.php"); ?>
    <div class="content">
            <div>
                <h2>Welkom <?php echo $_SESSION['userName'];?>,</h2>
              <p>op BUSINESS LIFE!</p>
              <p>We hebben vernomen dat dit de eerste keer is dat je dit spel speelt.</p>
              <p>Je kan starten als je wilt door op de startknop te klikken.</p>
              <form href="install_business_life.php">
              <button type="submit" class="button_kort" >Start</button>
              </form>
            </div>
    </div>
    </body>
</html>
<?php
    if(mysql_num_rows($query)==1) {
        echo '
    // ALS HET OM EEN ENKEL RECORD GAAT:
    // $data = mysqli_fetch_assoc($result);
    
    // ....OF BIJ MEERDERE...........
    // while($data=mysqli_fetch_assoc($result)) {
    
    //    }';
    } else {
        echo 'Niks gevonden';
    }

} else {
    echo 'Error contacteer de server administrator!';
}
?>


Voor de duidelijkheid het gaat hier om als ik in de database business_life naar 1 aanpas een scherm moet krijgen waar je al geregistreerd bent en je geen configuratie moet doornemen en als het 0 is moet je het configuratiescherm krijgen.
De echo op regel 32 wordt niet afgesloten.
Beetje rommelig daar.

Waar is de foutafhandeling?

if(mysql_num_rows($query)==1) {
In $query staat tekst.
Euh..... PHP-commentaar echo'en? Hoezo?
<?php
if(mysql_num_rows($query)==1) {
?>

Wat is een query en wat is een result?
Welke heb je in bovenstaande regel nodig?
Ik wil gewoon kijken of de business_life bij username op 0 staat indien ja pagina voorschotelen indien nee pagina voorschotelen.
Je moet mysql_num_rows wel de variabele van je mysql_query geven, en niet de string met je SQL-opdracht.
bestaat $username wel?
Ik heb nu ondertussen zelf een code ontwikkeld die deze foutmelding geeft:

Warning: mysql_num_rows() expects parameter 1 to be resource, string given in /home/u837763209/public_html/business_life.php on line 5

Hier de code:
<?php
include 'config/mysql.php';
if(isset($_SESSION['userName'])) {
$query = "SELECT * FROM logins WHERE userName = '$username' AND business_life = 0";
if (mysql_num_rows($query)==true) {
//Pagina wanneer 0
?>
<!DOCTYPE html>
<html>
    <head>
        <title>TeamGame: Business Life</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="stylesheet" type="text/css" href="http://www.teamgame.tk/css/game.css">
    </head>
    <body>
        <?php include_once("header.php"); ?>
    <div class="content">
            <div>
                <h2>Welkom <?php echo $_SESSION['userName'];?>,</h2>
              <p>op BUSINESS LIFE!</p>
              <p>We hebben vernomen dat dit de eerste keer is dat je dit spel speelt.</p>
              <p>Je kan starten als je wilt door op de startknop te klikken.</p>
              <form href="install_business_life.php">
              <button type="submit" class="button_kort" >Start</button>
              </form>
            </div>
    </div>
    </body>
</html>
<?php
} else {
//Pagina wanneer 1
?>

<?php    
}
} else {
    header('Location: index.php');
}
?>


**knip**
je voert de query niet uit.

<?php
$result = mysqli_query($connectie, $query);
if($result === false) {
echo 'een fout met '.$query .'<br>'.mysqli_error($connectie);
}
?>

[size=xsmall]Toevoeging op 15/07/2014 11:15:41:[/size]

dit tussen regel 4 en 5

en dan verder heb je $result nodig bij de functies als mysqli_num_row() en de fetch functies

[size=xsmall]Toevoeging op 15/07/2014 11:16:20:[/size]

zoals trouwens hierboven al een paar keer gezegd

Reageren