2015-11-11 3 views
0

В принципе, у меня есть этот код, и все работает в нем. EXCEPT Я хочу, чтобы раскрывающийся список заполнял параметры из другой таблицы базы данных.PHP dropdown values ​​box из базы данных

Когда я помещаю новую информацию в другую таблицу базы данных, я хочу, чтобы она была доступна для меня, чтобы выбрать ее в качестве опции в раскрывающемся списке. Я отмечен прямо над строкой, и я хочу автозаполнение с параметрами из другой таблицы базы данных.

Спасибо! Это близко к дну, я просто хотел, чтобы у вас была функция WHOLE.

 <?php 
     function editarea($id) { 

    if (isset($_POST["submit"])) { 

     extract($_POST); 
     $errors = 0; 
     $errorlist = ""; 
     if ($name == "") { $errors++; $errorlist .= "Name is required.<br />"; } 
     if ($latitude == "") { $errors++; $errorlist .= "Latitude is required.<br />"; } 
     if (!is_numeric($latitude)) { $errors++; $errorlist .= "Latitude must be a number.<br />"; } 
     if ($longitude == "") { $errors++; $errorlist .= "Longitude is required.<br />"; } 
     if (!is_numeric($longitude)) { $errors++; $errorlist .= "Longitude must be a number.<br />"; } 
     if ($elevation == "") { $errors++; $errorlist .= "Elevation is required.<br />"; } 
     if (!is_numeric($elevation)) { $errors++; $errorlist .= "Elevation must be a number.<br />"; } 
     if ($creatureid == "") { $errors++; $errorlist .= "creatureid is required.<br />"; } 
     if (!is_numeric($creatureid)) { $errors++; $errorlist .= "creatureid must be a number.<br />"; } 
     if ($exploretext == "") { $errors++; $errorlist .= "Explore Text is required.<br />"; } 

     if ($errors == 0) { 
      $query = doquery("UPDATE {{table}} SET name='$name',latitude='$latitude',longitude='$longitude',elevation='$elevation',creatureid='$creatureid',n='$n',s='$s',e='$e',w='$w',nw='$nw',ne='$ne',se='$se',sw='$sw',u='$u',d='$d' ,exploretext='$exploretext' WHERE id='$id' LIMIT 1", "area"); 
      admindisplay("Area updated.","Edit Area"); 
     } else { 
      admindisplay("<b>Errors:</b><br /><div style=\"color:red;\">$errorlist</div><br />Please go back and try again.", "Edit Area"); 
     }   

    } 


    $query = doquery("SELECT * FROM {{table}} WHERE id='$id' LIMIT 1", "area"); 
    $row = mysql_fetch_array($query); 

$page = <<<END 
<b><u>Edit Area</u></b><br /><br /> 
<form action="admin.php?do=editarea:$id" method="post"> 
<table width="90%"> 
<tr><td width="20%">ID:</td><td>{{id}}</td></tr> 
<tr><td width="20%">Name:</td><td><input type="text" name="name" size="30" maxlength="30" value="{{name}}" /></td></tr> 
<tr><td width="20%">Latitude:</td><td><input type="text" name="latitude" size="5" maxlength="10" value="{{latitude}}" /><br /><span class="small">Positive or negative integer.</span></td></tr> 
<tr><td width="20%">Longitude:</td><td><input type="text" name="longitude" size="5" maxlength="10" value="{{longitude}}" /><br /><span class="small">Positive or negative integer.</span></td></tr> 
<tr><td width="20%">Elevation:</td><td><input type="text" name="elevation" size="5" maxlength="10" value="{{elevation}}" /><br /><span class="small">Positive or negative integer.</span></td></tr> 
<tr><td width="20%">Creature ID:</td><td><input type="text" name="creatureid" size="5" maxlength="10" value="{{creatureid}}" /> ID<br /><span class="small">Positive integer.</span></td></tr> 
<tr><td width="20%">Exploring Text:</td><td><input type="text" name="exploretext" size="50" maxlength="255" value="{{exploretext}}" /><br /><span class="small">Exploring Text to be seen.</span></td></tr> 
<tr><td width="20%">Value connects NORTH to:</td><td><input type="text" name="n" size="5" maxlength="10" value="{{n}}" /><br /><span class="small">Area ID.</span></td></tr> 
<tr><td width="20%">Value connects EAST to:</td><td><input type="text" name="e" size="5" maxlength="10" value="{{e}}" /><br /><span class="small">Area ID.</span></td></tr> 
<tr><td width="20%">Value connects SOUTH to:</td><td><input type="text" name="s" size="5" maxlength="10" value="{{s}}" /><br /><span class="small">Area ID.</span></td></tr> 
<tr><td width="20%">Value connects WEST to:</td><td><input type="text" name="w" size="5" maxlength="10" value="{{w}}" /><br /><span class="small">Area ID.</span></td></tr> 
<tr><td width="20%">Value connects NORTHWEST to:</td><td><input type="text" name="nw" size="5" maxlength="10" value="{{nw}}" /><br /><span class="small">Area ID.</span></td></tr> 
<tr><td width="20%">Value connects NORTHEAST to:</td><td><input type="text" name="ne" size="5" maxlength="10" value="{{ne}}" /><br /><span class="small">Area ID.</span></td></tr> 
<tr><td width="20%">Value connects SOUTHEAST to:</td><td><input type="text" name="se" size="5" maxlength="10" value="{{se}}" /><br /><span class="small">Area ID.</span></td></tr> 
<tr><td width="20%">Value connects SOUTHWEST to:</td><td><input type="text" name="sw" size="5" maxlength="10" value="{{sw}}" /><br /><span class="small">Area ID.</span></td></tr> 
<tr><td width="20%">Value connects UP to:</td><td><input type="text" name="u" size="5" maxlength="10" value="{{u}}" /><br /><span class="small">Area ID.</span></td></tr> 
<tr><td width="20%">Value connects DOWN to:</td><td><input type="text" name="d" size="5" maxlength="10" value="{{d}}" /><br /><span class="small">Area ID.</span></td></tr> 



<------------------THIS one below is the one i want to autopull for dropbox--------------------> 
<tr><td width="20%">North Connection:</td><td><select name="area"><option value="0" {{n0select}}>None</option><option value="{{id}}">$row[name] Lat:$row[latitude] Long:$row[longitude] Elev:$row[elevation]</option></select><br /><span class="small">test</span></td></tr> 
</table> 
<input type="submit" name="submit" value="Submit" /> <input type="reset" name="reset" value="Reset" /> 
</form> 

END; 
    if ($row["n"] == 0) { $row["n1select"] = "selected=\"selected\" "; } else { $row["n1select"] = ""; } 
    if ($row["n"] != 1) { $row["n2select"] = "selected=\"$row[n]\" "; } else { $row["n2select"] = ""; } 


    $page = parsetemplate($page, $row); 
    admindisplay($page, "Edit Area"); 

} 
+0

Если вы можете, вы должны [прекратить использование '' mysql_ * функции] (http://stackoverflow.com/questions/12859942/why-shouldnt-i -use-MySQL-функции-в-PHP). [Эти расширения] (http://php.net/manual/en/migration70.removed-exts-sapis.php) были удалены в PHP 7. Узнайте о [подготовленном] (http://en.wikipedia.org/ wiki/Prepared_statement) для [PDO] (http://php.net/manual/en/pdo.prepared-statements.php) и [MySQLi] (http://php.net/manual/en/mysqli.quickstart .prepared-statements.php) и подумайте об использовании PDO, [это действительно не сложно] (http://jayblanchard.net/demystifying_php_pdo.html). –

+0

У меня есть тонны и тонны кода, которые уже запрограммированы в mysql ... я не могу пройти через тысячи строк кода и изменить его все в mysqli, поскольку это займет много времени, и я не верю, что я бы с успехом справился с этим эта точка. –

+0

Я использую mysql .... не PDO или mysqli .. я разместил свой текущий код, чтобы я мог знать, что делать только для MYSQL. Я не могу перепрограммировать тысячи строк прямо сейчас, поэтому мне просто нужен код для mysql. –

ответ

0

Вы можете добавить опции в свой элемент <select> с помощью PHP. Извлеките элементы, которые вы хотите распечатать, в качестве параметров в массиве, и вы можете прокручивать элементы и печатать их соответствующим образом.

Вы можете попробовать что-то вроде этого:

<select name="area"> 
    <option value="#">-- Make a choice --</option> 
    <?php 
    $query = 'SELECT * FROM `example` WHERE `projectId` = 1'; // Example query to fetch some objects. 

    $result = $pdo->query($query); 

    if ($result->rowCount() > 0) { // Check if result has rows. 
     foreach ($result as $row) { 
      echo '<option value="'.$row['id'].'">'.$row['title'].'</option>'; // Print row as a new option in the select dropdown. 
     } 
    } 
    ?> 
</select> 
+0

Зачем OP «попробовать что-то подобное»? Хороший ответ всегда будет объяснять, что было сделано, и почему это было сделано именно так, не только для OP, но и для будущих посетителей SO. –

+0

Я изменил свой ответ коротким объяснением. Я не чувствую, что могу подробно разбираться в деталях, так как это довольно короткий и простой код. Может быть, вы можете показать мне, где и как я могу научиться давать хорошие и полезные ответы? –

+0

http://stackoverflow.com/help/how-to-answer –

Смежные вопросы