2017-05-16 11 views
-4

にログインした後に混乱し、次のページにリダイレクトすると、私は$_SESSIONでユーザをチェックします。 それからユーザー名が有効な場合、リストがデータベースから取得するドロップダウンリストを表示したい。私はどのようにechoに混乱しています。echo mysqlの結果がecho

<?php 
    session_start(); //Start the session 
    if(!isset($_SESSION['pic'])) 
    { 
     header('Location:index.php?p=signin'); 
    } 
    else { 
     echo '<div class="form-group"> 
      <label for="symcat" class="control-label">Symptom Category</label> 
      <select id="symcat" name="symcat" class="selectlist form-control"> 
      <option value=""></option> 
      $sql='SELECT category FROM sym_category'; 
      if ($sql) { 
       $res=mysqli_query($dbc,$sql) or die(_ERROR26.': '.mysqli_connect_error()); 
      } 
      while ($dat = mysqli_fetch_array($res, MYSQLI_NUM)) { 
       echo '\t<option value="'.$dat[0].'">'.$dat[0].'</option>\n'; 
      } 
      mysqli_free_result($res); 
      </select> 
      </div> <!-- /form-group -->'; 
} 
?> 
+0

「外側」の中に別の 'echo'文を使いたいだけですか? Btw:なぜあなたは何トンもの "\ t"を喰わしているのですか? HTMLは適切に意図されているかどうかは気にしません。 –

+1

これは本当に悪いデザインです。なぜこれについてのビューファイルがありませんか?次に、そこにHTMLを個別に追加します。単純なインクルードの場合、ドロップダウンを取得します – Akintunde007

+1

_このような状況では、 "エコーする方法を混乱させます":最高のエコーを使用しないでください。 http://php.net/manual/en/language.basic-syntax.phpmode.phpまた、そこにSQLクエリやその他のデータの収集/操作を行うべきではありません。 https://en.wikipedia.org/wiki/IPO_model – CBroe

答えて

0

は素晴らしく、整頓の方法は同様であると述べました。または、上記のスクリプトをforminputcarページの上部に置くこともできます。したがって、セッションが一致する場合は、現在のページにとどまります。

<?php 
session_start(); 

if(isset($_SESSION['pic'])) 
{ 
    header('charset=UTF-8'); 
} 
else { 
    header('Location:index.php?p=signin'); 
    } 
?> 
1

これはおそらく良いだろう:

<?php 
    session_start(); //Start the session 
    if(!isset($_SESSION['pic'])) 
    { 
     header('Location:index.php?p=signin'); 
    } 
    else { 
     $sql = 'SELECT category FROM sym_category'; 
     if ($sql) { 
      $res = mysqli_query($dbc,$sql) or die(_ERROR26.': '.mysqli_connect_error()); 
     } 
     ?> 
     <div class="form-group"> 
      <label for="symcat" class="control-label">Symptom Category</label> 
      <select id="symcat" name="symcat" class="selectlist form-control"> 
       <option value=""></option> 
       <?php if (isset($res)): ?> 
        <?php while ($dat = mysqli_fetch_array($res, MYSQLI_NUM)): ?> 
         <option value="<?php echo $dat[0] ?>"><?php echo $dat[0] ?></option> 
        <?php endwhile ?> 
        <?php mysqli_free_result($res); ?> 
       <?php endif ?> 
      </select> 
     </div> <!-- /form-group --> 
<?php } ?> 

正直なところ、私はまだ、これは非常に良い方法だとは思いません。可能であれば、ビューファイルを使用してください。 別のエコーでエコーを使用しないでください。 Echoはスクリーンに何かを印刷するために使用されるので、同じエコー内でエコーを使う必要はありません。

+0

おかげで助けてください。私の脚本は曖昧になると思う。ビューファイルを使用する必要があります。 – nunu

+0

より具体的に教えてください。 – SheperdOfFire

0

このサンプルコードを確認してください。多分それがあなたを助けるでしょう。

<?php 
session_start(); //Start the session 
if(!isset($_SESSION['pic'])) 
{ 
    header('Location:index.php?p=signin'); 
} 
else { 
    header('Location:index.php?p=forminputcar'); 
    } 
?> 

forminputcarの内側にはphp tagechoもが持っている、ので:Akintunde & SheperOfFireとして

// Create connection 
$conn = mysqli_connect($servername, $username, $password, $dbname); 
// Check connection 
if (!$conn) { 
    die("Connection failed: " . mysqli_connect_error()); 
} 

// Fetch the option list details from DB 
$optionList = array(); 
$sql = "SELECT category FROM sym_category"; 
$result = mysqli_query($conn, $sql); 

if (mysqli_num_rows($result) > 0) { 
    // output data of each row 
    while($row = mysqli_fetch_assoc($result)) {   
     $optionList[] = $row['category'] 
    } 
} else { 
    echo "0 results"; 
} 

// Create the dropdown list 
echo "<div class='form-group'>"; 
    echo '<label for="symcat" class="control-label">Symptom Category</label>'; 
     echo '<select id="symcat" name="symcat" class="selectlist form-control">'; 
      echo '<option value=""></option>'; 
      foreach ($optionList as $key => $value) 
      { 
       echo "<option value='$value'>$value</option>"; 
      } 
     echo '</select>'; 
    echo '</label>'; 
echo "</div>"