неопорный способ отображения записей или полей - mysqli

0

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

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

хранимая процедура (connect.php)

<?php

function db_connect() {

    // Define connection as a static variable, to avoid connecting more than once 
    static $con;

    // Try and connect to the database, if a connection has not been established yet
    if(!isset($con)) {
         // Load configuration as an array. Use the actual location of your configuration file
        $config = parse_ini_file('config.ini'); 
        $con = mysqli_connect('localhost',$config['username'],$config['password'],$config['dbname']);
    }

    // If connection was not successful, handle the error
    if( $con === false) {
        // Handle error - notify administrator, log to a file, show an error screen, etc.
        return mysqli_connect_error(); 
    }
    return  $con;
}

function db_query($query) {
    // Connect to the database
     $con = db_connect();


    // Query the database
    $result = mysqli_query( $con,$query);

    return $result;
}

function db_error() {
     $con = db_connect();

        return mysqli_error($con);
}

function db_select($query) {
    $rows = array();
    $result = db_query($query);

    // If query failed, return 'false'
    if($result === false) {
        return false;
    }

    // If query was successful, retrieve all the rows into an array
    while ($row = mysqli_fetch_assoc($result)) {
        $rows[] = $row;
    }
    return $rows;
}
function db_quote($value) {
     $con = db_connect();

        return "'" . mysqli_real_escape_string($con,$value) . "'";
}
?>

PHP/HTML

<div class="grid_4">
        <div class="left-1">
            <h2 class="top-1 p3">Find a property</h2>
            <form id="form-1" method="post" class="form-1 bot-1" action="prop_result.php">
                <div class="select-1">
                    <label>Select Area</label>
                    <select name="field4" id="field4" >
    <?php



$rows = db_select("SELECT id,city_id,area FROM area");
    if($rows === false) {
    $error = db_error();

    }else
    {
    while($rows=mysqli_fetch_assoc($result))
{
?>
<option value=""><?php $rows['
area'];?></option>

<?php 
}}

?>

                    </select>   
                </div>

Я не понимаю, как использовать хранимую процедуру в цикле while, чтобы она выводила данные в ID полей и области, поэтому поле выбора и любой другой вход можно правильно заполнить на основе запроса

текущий

Я пробовал разные способы:

<?php



$rows = db_select("SELECT id,city_id,area FROM area");
    if($rows === false) {
    $error = db_error();

        }
    while($rows=mysqli_fetch_assoc($result))
{
?>
<option value=""><?php $rows['
area'];?></option>

<?php 
}

?>

а также

$rows = db_select("SELECT id,city_id,area FROM area");
    if($rows === false) {
    $error = db_error();

        }
{
?>
<option value=""><?php $rows['
area'];?></option>

<?php 
}

?>

а также

 <?php



$rows = db_select("SELECT area_id from property");
    if($rows === false) {
    $error = db_error();

    }

{
echo "<option value='".$rows['id']."'>".$rows[$col4]."</option>";
}
    ?>

Ни один из них не выводит никаких данных. Echoing $ rows не дает данных. Я не знаю, что такое логика для использования хранимой процедуры для вывода вывода.

Любая помощь будет оценена, если какая-либо другая информация необходима для решения этой проблемы, сообщите мне.

  • 0
    Я предполагаю, что когда вы выводите $ row, вы получаете Array ()? Попытка сделать print_r ($ row) и посмотреть, что вы получите.
  • 0
    Также ... поскольку db_query () возвращает уже проанализированный массив, вам не нужно использовать mysqli_fetch_assoc (). Вот где может помочь цикл foreach ().
Показать ещё 1 комментарий
Теги:
mysqli

2 ответа

0
Лучший ответ

Siniseus way работает, но слишком много кода для простой задачи. Я работал с ним, чтобы наконец прийти к этому

<select name="field4" id="field4" >

<?php       
$rows = db_select("SELECT id, city_id,area FROM area");
foreach($rows as $row){
echo "<option value='".$row['id']."'>".$row['area']."</option>";
}
?>
</select>

Простой, чистый и действительно прямой, без слишком большого количества переменных.

$ rows = db_select ("Выбрать запрос") foreach ($ rows as $ row) {сделать это}

1

Удивительно слышать, что данные возвращаются. Попробуйте это для размера...

foreach($rows as $key => $value){
    foreach($value as $k => $v){
        if($k == 'id'){
           $newID = $v;
        }
        if($k == 'type'){
           $newType = $v
        }
    }
    echo "<option value='".$newID."'>".$newType."</option>";
}

с этим вы должны быть способны заставить его работать по вашему вкусу.

Edit: Не видел дополнительные массивы до тех пор, пока... вложенной циклы не будет лучше.

  • 0
    Кажется, это работает. но теперь, как его использовать, чтобы я мог легко перечислить только область. я не думаю, что мне нужно использовать этот код для каждой итерации. => Set 0: id = 3 type = Apartment Set 1: id = 2 type = Land Set 2: id = 1 type = Villa
  • 0
    Я изменил код выше, что вы ищете.
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню