php - Else does not work in selection of $row -
i want check if user has set gender. if not, display 1st echo. if yes, it'll display echo of gender. problem page shows 1st echo though there set gender in database... don't know why not working... code:
<?php $username = $_session['username']; $sql = " select gender members username = ?"; $stmt->bind_param('s', $username); $stmt->execute(); $stmt->bind_result($username); while ($stmt->fetch()){ if($row['gender'] == ""){ echo "you have not selected gender yet."; // 1st echo , 1 displayed } else { echo "you selected {$row['gender']}."; // not displayed no matter what... } } ?> what have wrong?
i'm not php expert, think code work better don't think $row contains (i don't see it's being set anywhere, , according docs, bind_result doesn't work way anyway):
$username = $_session['username']; $stmt = $mysqli->prepare("select gender members username = ?"); $stmt->bind_param('s', $username); $stmt->execute(); $stmt->bind_result($gender); while ($stmt->fetch()){ if(empty($gender)){ echo "you have not selected gender yet."; } else { echo "you selected " . $gender; } } edit
used empty() instead of = "" in case nulls returned $gender.
edit 2
i noticed don't ever use $sql. updated code proper syntax, assuming database connection called $mysqli.
might want check docs here: https://php.net/manual/en/mysqli-stmt.bind-result.php
Comments
Post a Comment