Er was een sql fout, die is nu opgelost.
Daarom heb ik de title en zo veranderd.


Hoi ik heb een script gescreven met een sql fout en een php fout :)
Ja waar hoort dit topic dan in:)
Maar ik ben op het forum gekomen omdat hier veel profs zijn.




<?php
include("safe.php");
include("config.php");
if ( isset( $_POST['submit']  )  )//controleerd als er op submit is geklikt:
{

mysql_connect($db_host,$db_user,$db_pass);
mysql_select_db($db_db);

    $query = " SELECT
                id,
                status,
                wachtwoord,
                actief
                geld
                FROM
                gebruikers
                WHERE
                id = '" . $_SESSION['user_id'] . "'
                AND
                status  = '" . $_SESSION['user_status'] . "'
                "; 
    $result = mysql_query( $query );
    $rij    = $rij = mysql_fetch_object($result);
    $dbpass = $dbpass = htmlspecialchars($rij->geld);
if("Carlo" == ($_POST['aa'])) {
echo 'Vraag 1 heeft u goed!';
printf('<br>uw opgegeven andwoord: %s', $_POST['aa']);

$geld = $dbpass + 10;

 $sql = "UPDATE gebruikers SET geld + 10  WHERE id='".$_SESSION['user_id']."'";
     $query = mysql_query($sql);

echo "<br> u heeft '.$geld.' op uw rekening staan";
}else{
echo " andwoord 1 is niet goed!";
}

if("Demi" ==($_POST['ab'])) {
echo 'Vraag 2 heeft u goed!';
printf('<br>uw opgegeven andwoord: %s', $_POST['aa']);

$geld = $dbpass + 10;

 $sql = "UPDATE gebruikers SET geld +10  WHERE id='".$_SESSION['user_id']."'";
     $query = mysql_query($sql);

echo "<br> u heeft '.$geld.' op uw rekening staan";
}else{
echo " andwoord 2 is niet goed!";
}


}else{//dit zorgt ervoor

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="nl" xml:lang="nl">
  <head>

    <meta http-equiv="Content-Language" content="nl" />
    <link rel="stylesheet" type="text/css" href="../style.css" />
    <title><?= $sitenaam ?> - Vragen</title>
  </head>
  <body>

<!--Hier kan je aan gaan werken demi!---!>

<form action="test.php" method="post" name="vragen"/>
Vraag 1:<br>

Ga op de site opzoek naar de gene waar je terecht kan als je problemen hebt met het inloggen.<br>
Wie is dat (schrijf de naam met hoofdletter)
<br><input type=text  name=aa><br>
<br>
 Vraag 2:<br>
Ga op de sit opzoek naar de gene waar je terecht kan als de lagout niet goed is.<br>
Wie is dat (schrijf de naam met een hoofdletter)
<br><input type=text  name=ab><br>
<br>
Vraag 3:<br>
Hoeveel personen hebben aan de site mee geholpen?<br>
 Schrijf dat hier op (inclusief *** en ***)
<br><input type=text name=ac><br>
<br>
Vraag 4:<br>
Hoeveel Speelgeld krijg je in het begin van het spel?<br>
 (exclussief bonissen)<br>
<input type=text name=ab><br>
<input type=submit valeu=Verzenden! name=submit>
</form>



<!---Hier niet meer werken demi---!>
<?php
//mysql close
}
?>
<!--Hier kan je weer werken--!>
</body>
</html>


---php fout---

Als eerste controleerd hij als ik carlo heb ingevult.
Maar als tweede moet hij controleren als je demi hebt ingevult, dat doet hij niet. hoe kan ik dat weer oplossen??

Je verhoogt de waarde wel, maar wijst 'm niet toe:
UPDATE gebruikers SET geld + 10

moet dus zijn:
UPDATE gebruikers SET geld = geld + 10
Ik vind het vreemd, hij blijft op 1 staan.
Zo roep ik het op:


$query = " SELECT
                id,
                status,
                wachtwoord,
                actief
                geld
                FROM
                gebruikers
                WHERE
                id = '" . $_SESSION['user_id'] . "'
                AND
                status  = '" . $_SESSION['user_status'] . "'
                "; 
    $result = mysql_query( $query );
    $rij    = $rij = mysql_fetch_object($result);
    $dbpass = $dbpass = htmlspecialchars($rij->geld);
    if ( $result === false )
    {
        echo '<p>Er is een fout opgetreden:';
        echo '<br />Query: ' . $query;
        echo '<br />Foutmelding: ' . mysql_error() . '</p>';

Hier staat nog allemaal php, en html en op de laaste regel staat dus:

<?php echo " U heeft '.$dbpass.' Euro  op uw rekening staan!"; ?>
Je post is nu niet echt leesbaar. Pas je post even aan en gebruik [ignore]
 en 
[/ignore] tags om je code heen. Om php code zet je uiteraard dit:<?php en ?>Gebruik je knop om dit te doen.

SanThe.

Edit:
$dbpass = $dbpass = htmlspecialchars($rij->geld);

Twee keer = gebruiken geeft een true (= 1)
IK ben nog een newbie in php, maar ik snap dit niet:

$dbpass = $dbpass = htmlspecialchars($rij->geld);

Twee keer = gebruiken geeft een true (= 1)


$var = 'iets';
Dat is normale syntax.
Als dat dus goed gaat geeft dat een true die je normaliter nergens terugziet.

Alleen jij zet dat dus in een $var door dit te doen.
$var = $var = 'iets';

Geen idee waarom je dit doet.
Ow bedoel je dat zo :P
Nouw ik heb m'n script niet afgemaakt en dan gaat iemand anders er aan werken.
Maar m'n probleem is er nog :(.
Als ik kijk in phpmyadmin, daar zie ik dat het gewoon 11 is maar als ik het opvraag is het 1..

Hoe kan dat?
echo $rij->geld;

Edit:
SanThe schreef op 09.03.2009 19:55
$var = 'iets';
Dat is normale syntax.
Als dat dus goed gaat geeft dat een true die je normaliter nergens terugziet.

Alleen jij zet dat dus in een $var door dit te doen.
$var = $var = 'iets';

Geen idee waarom je dit doet.

Dus als je hebt $var = $var = 'iets';
En je doet echo $var; => Dat geeft dus die 1.
Ik heb dat weggedaan maar ik blijf die een zien
<?php
$query = " SELECT
id,
status,
wachtwoord,
actief
geld
FROM
gebruikers
WHERE
id = '" . $_SESSION['user_id'] . "'
AND
status = '" . $_SESSION['user_status'] . "'
";
$result = mysql_query( $query );
if(!$result)
{
echo '<p>Er is een fout opgetreden:';
echo '<br />Query: ' . $query;
echo '<br />Foutmelding: ' . mysql_error() . '</p>';
}
else
{
$rij = mysql_fetch_object($result);
echo $rij->geld;
}
?>
Nu komt er alleen een 1 te staan :(

Wat doe ik fout

Reageren