• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPのIF文で条件の記述の仕方について)

PHPのIF文で条件の記述の仕方について

このQ&Aのポイント
  • PHPのIF文を用いて、データベースから取り出した特定のレコードが変数に入っている値と一致する場合とそうでない場合で処理を分けたいです。
  • 具体的には、ボタンをクリックした時にtestレコードに入っている値がredirectなら/redirect/testへ、それ以外は次の処理へと進みたいです。現在の記述では条件に引っかからず、次の処理に進んでしまいます。
  • PHPのIF文の記述方法が間違っている可能性があります。PHPに関してはまだ初心者のため、原因がわかりません。お手数ですが、どなたか助けていただけると幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

>$db = mysql_query('SELECT * FROM redirect_records WHERE user_id='.$userid, $connect); $useridはどうやってfunctionに引き渡されているのでしょうか?functionには$formしか渡されていませんよね。 とりあえず $sql = 'SELECT * FROM redirect_records WHERE user_id='.$userid; print $sql . "<br />" . PHP_EOL; $db = mysql_query($sql, $connect) or die('error 1'); $row = mysql_fetch_array($db) or die('error 2'); if ($row['test'] == 'redirect'){ $form_state['redirect'] = '/redirect/test'; } のようにしてみてください。

midorinodonchan
質問者

お礼

回答ありがとうございます。 とても参考になりました。 ご教示いただいた方法等色々試してみましたが、 結果、 $form_state['redirect'] = $url;を header("Location :".$url); にしたら無事飛んでくれました。

その他の回答 (1)

回答No.2

デバッグとして if文で比較するまえに比較対象にどんな値が入っているか 調べてみるとなにかわかるかもしれません。 例えばechoで表示してみるとか。 具体的には $Comparison1=$db['test']; $Comparison2='redirect'; if ($Comparison1 == $Comparison2){ を以下のようにしてみる。 $Comparison1=$db['test']; $Comparison2='redirect'; echo "Compa 1 is ".$Comparison1; echo "Compa 2 is ".$Comparison2; if ($Comparison1 == $Comparison2){

midorinodonchan
質問者

お礼

回答ありがとうございます。 とても参考になりました。 ご教示いただいた方法等色々試してみました。 (echoで表示させても中身は同じ内容でした) 結果、 $form_state['redirect'] = $url;を header("Location :".$url); にしたら無事飛んでくれました。