Как проверить наличие столбца NULL, а затем что-то сделать в подготовленном операторе SELECT? - PullRequest
1 голос
/ 10 марта 2020

Вот текущий код, но все, что он делает, это выбирает столбцы из 1 строки.

<?php
session_start();
include 'sqlconnection.php';
$conn = OpenCon();

$stmt = $conn->prepare('SELECT uid,coverphoto,profilepic,bio FROM profile WHERE uid = ?');
$stmt->bind_param('i', $_SESSION['uid']);
$stmt->execute();
$stmt->bind_result($uid,$coverphoto,$profilepic,$bio);
while($stmt->fetch()) {
    $output=array(
        'uid' => $uid,
        'coverphoto' => $coverphoto,
        'profilepic' => $profilepic,
        'bio' => $bio
    );
}
$json=json_encode($output);
echo $json;
$stmt->close();
CloseCon($conn);
?>

Как мне добавить к нему оператор if, чтобы, если coverphoto и / или profilepi c = null, вручную присвоили значение coverphoto и профилю pi c для выходного массива? Я покажу свою неверную попытку ниже:

<?php
session_start();
include 'sqlconnection.php';
$conn = OpenCon();

$stmt = $conn->prepare('SELECT uid,coverphoto,profilepic,bio FROM profile WHERE uid = ?');
$stmt->bind_param('i', $_SESSION['uid']);
if ($stmt->execute()){
   if (coverphoto=null){
     $coverphoto = 'coverphoto.jpg';
    }else{
     if (profilepic=null){
     $profilepic = "profilepic.jpg";
    }else{
$stmt->bind_result($uid,$coverphoto,$profilepic,$bio);
while($stmt->fetch()) {
    $output=array(
        'uid' => $uid,
        'coverphoto' => $coverphoto,
        'profilepic' => $profilepic,
        'bio' => $bio
    );
}
}
}
}
$json=json_encode($output);
echo $json;
$stmt->close();
CloseCon($conn);
?>

1 Ответ

1 голос
/ 10 марта 2020

Я думаю, у вас просто какая-то синтаксическая ошибка.

<?php
session_start();
include 'sqlconnection.php';
$conn = OpenCon();

$stmt = $conn->prepare('SELECT uid,coverphoto,profilepic,bio FROM profile WHERE uid = ?');
$stmt->bind_param('i', $_SESSION['uid']);
$result = $stmt->execute();
if ($result){
   if ($result['coverphoto']){
     $coverphoto = 'coverphoto.jpg';
    }else{
     if ($result['profilepic']){
     $profilepic = "profilepic.jpg";
    }else{
$stmt->bind_result($uid,$coverphoto,$profilepic,$bio);
while($stmt->fetch()) {
    $output=array(
        'uid' => $uid,
        'coverphoto' => $coverphoto,
        'profilepic' => $profilepic,
        'bio' => $bio
    );
}
}
}
}
$json=json_encode($output);
echo $json;
$stmt->close();
CloseCon($conn);
?>

Вы также можете сделать это так

<?php
<?php
session_start();
include 'sqlconnection.php';
$conn = OpenCon();

$stmt = $conn->prepare('SELECT uid,coverphoto,profilepic,bio FROM profile WHERE uid = ?');
$stmt->bind_param('i', $_SESSION['uid']);
$stmt->execute();
$stmt->bind_result($uid,$coverphoto,$profilepic,$bio);
while($stmt->fetch()) {
    $output=array(
        'uid' => $uid,
        'coverphoto' => $coverphoto ? $coverphio : 'coverphoto.jpg',
        'profilepic' => $profilepic ? $profilepic : 'profilepic.jpg',
        'bio' => $bio
    );
}
$json=json_encode($output);
echo $json;
$stmt->close();
CloseCon($conn);
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...