Jobet Avila Jobet Avila - 7 months ago 16
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:

<?php
$val1 = $_SESSION['dbase_user']['id'];

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

<tr>
<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>
</tr>


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

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.