2017-05-16 11 views
-4

nach dem anmelden und umleitung auf die nächste seite, überprüfe ich den benutzer mit $_SESSION. Dann, wenn Benutzername gültig ist, möchte ich Dropdown-Liste anzeigen, die die Liste aus der Datenbank abgerufen wird. Ich bin verwirrt, wie man echo.verwirrt in echo mysql result innerhalb 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

Sie wollen also nur eine andere 'echo'-Anweisung innerhalb der' äußeren 'verwenden? BTW: Warum tust du Tonnen von '\ t'? Der HTML ist es egal, ob es richtig gemeint ist. –

+1

das ist wirklich schlechtes Design obwohl. Warum hast du keine View-Datei dafür? Dann füge den HTML-Code separat hinzu. Mit einem einfachen Include erhalten Sie Ihr Dropdown-Menü – Akintunde007

+1

_ "Ich bin verwirrt wie Echo" _ - in Situationen wie diesem: Am besten nicht Echo überhaupt verwenden. http://php.net/manual/en/language.basic-syntax.phpmode.php Und Sie sollten auch keine SQL-Abfragen oder andere Datensammlung/Manipulation dort haben - tun Sie das zuerst. https://en.wikipedia.org/wiki/IPO_model – CBroe

Antwort

0

Als Akintunde & sagte SheperOfFire die schön und ordentlich Art und Weise ist, wie:

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

Denn innerhalb von forminputcar hat php tag und echo auch. Oder Sie können oben Skript oben auf forminputcar Seite setzen. Wenn die Sitzung übereinstimmt, bleiben wir auf der aktuellen Seite.

<?php 
session_start(); 

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

Dies wäre wahrscheinlich besser:

<?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 } ?> 

Ehrlich gesagt noch nicht, dass ich glaube, dies ist ein sehr schöner Weg ist. Verwenden Sie nach Möglichkeit Ansichtsdateien. Ich denke, es ist vernünftig zu sagen, dass Sie kein Echo innerhalb eines anderen Echos verwenden sollten. Echo wird verwendet, um etwas auf Ihren Bildschirm zu drucken, daher sollte es nicht notwendig sein, ein Echo innerhalb desselben Echos zu verwenden.

+0

Danke, nachdem Sie mir das Skript zeigen. Ich denke, mein Skript wird unordentlich. Besser muss ich View-Dateien verwenden. – nunu

+0

Könnten Sie bitte genauer sein? – SheperdOfFire

0

Überprüfen Sie diesen Beispielcode. Vielleicht hilft es dir.

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