Jobet Avila Jobet Avila - 2 years ago 109
PHP Question

Beginner at PHP - Where clause

Im very new to php and would like to know if my where clause is correct, i think that im missing something in my where clause. please see below:

$val1 = $_SESSION['dbase_user']['id'];

$gen = "SELECT gender FROM tbl_users WHERE id = $val1";
$result1 = dbQuery($gen);
$row1 = dbFetchAssoc($result1);

<td width="180" height="30" class="label"><strong>Gender</strong></td>
<td height="30" class="content">
<input type="text" class="frmInputs" size="10" value="<?php echo strtoupper($row1['gender']) ?>" disabled="disabled"/></td>

The output: It always gets the first gender of the 1st row in the database.

The Question: I wanted it to point to other records based on my where clause.

Notes and tried scenario:

  1. Id is the primary key in my DB <--- ID is int

  2. i also tried using
    WHERE fname = $val1
    <-- this is a string

Many many thanks!

Answer Source

Your code should work correctly when $val1 is a number.

When it's a string, you need to put quotes around it in the SQL.

$gen = "SELECT gender FROM tbl_users WHERE fname = '$val1'";

But it would be best if you use a database API that supports prepared queries, either MySQLI or PDO. Then you don't have to worry about this at all.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download