Variable sql checken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 3 volgende »

Wouterjan Muchu

Wouterjan Muchu

14/03/2011 21:33:39
Quote Anchor link
Ik heb heel wat zitten scripten en gegoogled vanavond. Maar hier kom ik niet uit.

Ik heb in een script dit staan:

$sql = "SELECT * FROM betalingen WHERE random = '".$_SESSION[‘rand’]."'";
$query = mysql_query($sql) or die ( mysql_error () );

if ($query['betaalcode'] == 0){
echo'Je moet eerst betalen';
}
elseif ($query['betaalcode'] !== 0){
echo'je hebt betaald';
}



?>


De waarden in betaalcode is standaard 0. Tenzij er betaald is en er daardoor een betaalcode is ingevoerd. Maar het werkt niet goed.
Ziet iemand wat er fout gaat?
 
PHP hulp

PHP hulp

22/12/2024 13:25:26
 
Vincent Huisman

Vincent Huisman

14/03/2011 21:36:14
Quote Anchor link
en wat gaat er niet goed?....
 
Wouterjan Muchu

Wouterjan Muchu

14/03/2011 21:36:46
Quote Anchor link
Hij lijkt altijd Je moet eerst betalen weer te geven. Ook alstaat er wat anders dan 0
 
Jasper DS

Jasper DS

14/03/2011 21:37:46
Quote Anchor link
je moet natuurlijk eerst fetchen!

- sql injectie mogelijk
- geen or die gebruiken -> nette foutafhandeling
Gewijzigd op 14/03/2011 21:40:46 door Jasper DS
 
Wouterjan Muchu

Wouterjan Muchu

14/03/2011 21:39:58
Quote Anchor link
Wat is Fetchen?! Met google word ik niet veel wijzer helaas.
 
Joris van Rijn

Joris van Rijn

14/03/2011 21:40:51
 
Vincent Huisman

Vincent Huisman

14/03/2011 21:40:51
Quote Anchor link
klik dan ook op zijn link
 
Wouterjan Muchu

Wouterjan Muchu

14/03/2011 21:41:46
Quote Anchor link
Die link was er net nog niet! :P
 
Jasper DS

Jasper DS

14/03/2011 21:41:49
 
Wouterjan Muchu

Wouterjan Muchu

14/03/2011 21:54:06
Quote Anchor link
Oke, ik heb nu dit:


Quote:
$conn = mysql_connect("localhost", "$mysql_user", "$mysql_password");
if (!$conn) {
echo "Unable to connect to DB: " . mysql_error();
exit;
}

if (!mysql_select_db("$dbname")) {
echo "Unable to select mydbname: " . mysql_error();
exit;
}

$sql = "SELECT betaalcode
FROM betalingen
WHERE random = '".$_SESSION[‘rand’]."'";

$result = mysql_query($sql);

if (!$result) {
echo "Could not successfully run query ($sql) from DB: " . mysql_error();
exit;
}

if (mysql_num_rows($result) == 0) {
echo "No rows found, nothing to print so am exiting";
exit;
}

// While a row of data exists, put that row in $row as an associative array
// Note: If you're expecting just one row, no need to use a loop
// Note: If you put extract($row); inside the following loop, you'll
// then create $userid, $fullname, and $userstatus
while ($row = mysql_fetch_assoc($result)) {
echo $row["betaalcode"];
}

mysql_free_result($result);



if ($row["betaalcode"] == 0){
echo'Je moet eerst betalen';
}
elseif ($row["betaalcode"] !== 0){
$test = $_SESSION[‘rand’];
echo $test;

}


?>


Maar ik krijg nog steeds hetzelfde probleem :S
 
Jasper DS

Jasper DS

14/03/2011 21:56:11
Quote Anchor link
ik zie je nergens fetchen?
 
Wouterjan Muchu

Wouterjan Muchu

14/03/2011 21:57:11
Quote Anchor link
Ik heb het letterlijk van deze website overgenomen http://php.net/manual/en/function.mysql-fetch-assoc.php
 
Jasper DS

Jasper DS

14/03/2011 21:58:15
Quote Anchor link
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
41
42
43
44
45
46
47
48
49
50
<?php
# sql-debug: bovenaan script

 # sql debug

    define('DEBUG_MODE',true);  // true == aan, false == uit


    # functie voor sql debug

    function showSQLError($sql,$error,$text='Error')
    {

        if (DEBUG_MODE)
        {

            return  '<pre>Error: ' . $error . '<br />' . $sql . '</pre>';
        }

        else
        {
            return $text;
        }
    }
  
    
    

# je query: op gewenste plaats
    
$sql = "SELECT betaalcode
        FROM betalingen
        WHERE random = '"
.mysql_real_escape_string($_SESSION['rand']."'";
        
if(($query = mysql_query($sql)) === false )
{

    # als de query fout is -> foutafhandeling
    echo showSQLError($sql,mysql_error(),'Fout met database.');
}

else
{
    # query is gelukt -> fetchen
    $row = mysql_fetch_assoc($query),
    
    # Rows uitlezen en afhandelen
    if($row['betaalcode'] == 0)
    {

        echo'Je moet eerst betalen';
    }

    else
    {
        echo 'je hebt betaald';
    }
}


?>


gebruik [code][/code] tags

lees dit nog eens goed door nette foutafhandeling
+ de sql beginners handleiding.
Gewijzigd op 14/03/2011 22:03:19 door Jasper DS
 
Wouterjan Muchu

Wouterjan Muchu

14/03/2011 22:03:13
Quote Anchor link
Bedankt Jasper,

Ik ga even kijken hoever ik daarmee kom. En even kijken hoe dit precies werkt. Want is anders dan ik eerst dacht.



Toevoeging op 14/03/2011 22:18:3:

Ik snap het echt niet. betaalcode is nu 1 en bij blijft geven 'Je moet eerst betalen'

:S
Gewijzigd op 14/03/2011 22:18:47 door Wouterjan Muchu
 
Wesley PHP

Wesley PHP

14/03/2011 22:23:11
Quote Anchor link
Staat het wel goed in de database?
 
Wouterjan Muchu

Wouterjan Muchu

14/03/2011 22:31:08
 
Wesley PHP

Wesley PHP

14/03/2011 22:33:01
Quote Anchor link
En de betaalcode is 1 en niet 0?
 
Wouterjan Muchu

Wouterjan Muchu

14/03/2011 22:36:25
Quote Anchor link
Yep Zeker weten.
 

14/03/2011 22:36:45
Quote Anchor link
Het zal vast wel weer kut klinken, maar goed. Is het niet slim om gewoon eerst eens te leren?
Volgens mij doe je maar wat. Zeker als ik naar je database zo kijk.
 
Wouterjan Muchu

Wouterjan Muchu

14/03/2011 22:38:28
Quote Anchor link
Opzich heb ik wel Php ervaring. Alleen niet zo veel met SQL. En inderdaad script ik niet heel net. Maar daar ligt de fout helaas niet. Dus dat heeft er niet heel veel mee te maken.

En in dit geval is het script letterlijk van Jasper, dus zou misschien aan de SQL database kunnen liggen?
 

14/03/2011 22:40:52
Quote Anchor link
Ja. Php heeft niks met sql te maken. Toevallig is het zo dat je in php via sql een database kan benaderen. Dus eerst maar wat in sql verdiepen?
 

Pagina: 1 2 3 volgende »



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.