Как использовать переменные массива php в html для вывода списка ul?

#php #mysql #html #arrays #web

#php #mysql #HTML #массивы #веб

Вопрос:

         //Setting up variables
        $server = "**********";
        $username = "**********";
        $password = "******";
        $database = "*******";

        //Connecting to Server
        mysql_connect($server, $username, $password)or die (mysql_error());
        //echo "Connected to MySQL";

        //Connecting to database
        mysql_select_db($database) or die (mysql_error());
        //echo "Connected to my Database";

        //variable selecting the reach_codes table
        $result = mysql_query("SELECT * FROM reach_Codes");


        //set variable to store column arrays
        $fault_Codes = array();
        //while loop fetching all rows
        while(false !== ($row = mysql_fetch_assoc($result)))
        {
            $fault_Codes[] = $row['fault_ID'];
        }

        echo $fault_Codes[1];



        mysql_close();
    ?>
 

Привет всем, итак, я относительно новичок в веб-программировании, но я программирую на c , поэтому я хотел, чтобы на этом веб-сайте отображалась некоторая информация о коде ошибки, поскольку я работаю на вилочных погрузчиках на работе, просто чтобы облегчить себе жизнь. Теперь я понимаю, как работают массивы, я просто не могу найти информацию о том, как использовать эти переменные массива в html. любая помощь или указание в правильном направлении будут с радостью оценены.

Комментарии:

1. Итак, я продолжаю получать ошибку синтаксического анализа: синтаксическая ошибка в той же строке, в которую я ввел первый тег <ul>, может быть, потому что я немного устал, я что-то упускаю из виду.

Ответ №1:

просто убедитесь, что ваш файл заканчивается расширением .php, и тогда вы сможете сделать что-то вроде этого. (Предполагая, что ваш приведенный выше код находится в том же файле )

 <ul>
    <? foreach($fault_codes as $code) { ?>
    <li><?php echo $code;?></li>
    <? } ?>
</ul>
 

Комментарии:

1. Два быстрых замечания. Во-первых, я считаю, что в этой ситуации более удобно использовать альтернативный синтаксис (т.е. foreach(...): and endforeach; . Во-вторых, поскольку вы предполагаете, что короткие теги включены, вы можете просто сделать <?=$code?> , а не использовать echo явно в этой ситуации.

2. @AgentConundrum Ну, я думаю, это вопрос мнения… способ, которым я написал, более удобочитаем для меня, а также вы не можете использовать сочетание клавиш «математические скобки» в текстовом редакторе без скобок, не так ли? ха-ха. Я очень хорошо осведомлен о <?=$codde?> стиле, но я пытался эмулировать стиль OP, используя echo

3. Я не критиковал. Я просто пытался добавить некоторую дополнительную информацию, о которой вы или ОП, возможно, не знаете. Вероятно, вы правы насчет поддержки IDE, но у меня с этим нет проблем, поскольку я бы не использовал эти конструкции нигде, кроме как вокруг блока raw-HTML, и <?php?> теги были бы столь же узнаваемы для IDE в этой ситуации.

Ответ №2:

зачем использовать array, когда вы можете легко повторить HTML-код на php..

 echo "<ul>";
while($row = mysql_fetch_assoc($result)){
   echo "<li>{$row}</li>";
}
echo "</ul>";
 

Комментарии:

1. спасибо, я попробовал что-то подобное, но я, вероятно, перепутал sintax, все остальные ответы тоже кажутся подходящими, если бы я использовал массив. Спасибо, ребята

Ответ №3:

Если ваш код находится в файле представления, вы можете использовать этот синтаксис:

 <ul>
    <?php foreach ($falt_codes as $item): ?>
    <li><?= $item ?></li>
    <?php endforeach; ?>
</ul>
 

<?= Тег является сокращением для <?php echo; , но вам нужно будет short-open-tag включить его в вашем php.ini (если ваша версия 5.4.0 или выше).

Редактировать Согласно комментарию к другому ответу, короткий тег <?= обесценился и находится в плохой форме. Я, очевидно, не получил эту заметку.

Редактировать 2: следующее взято из документации, касающейся вышеупомянутого <?= :

Эта директива [short-open-tag] также повлияла на сокращение <?= до PHP 5.4.0, которое идентично <? echo . Использование этого ярлыка требовало, чтобы short_open_tag был включен. Начиная с PHP 5.4.0, <?= всегда доступен.

Видя, как они сделали это первоклассным гражданином, я в недоумении относительно того, почему это было расценено как обесцененное в комментарии.

Комментарии:

1. Я думаю, дело было не в том, что <?= это не поощрялось, а в том, что короткие теги не поощрялись. (Я действительно не знаю, почему это не рекомендуется, хотя я помню, как читал что-то в тот день, в котором говорилось, что это столкнулось с XML или что-то в этом роде.) Когда выйдет 5.4, он отключит хорошее <?= поведение от синтаксиса коротких тегов, так что вы можете отключить короткие теги, но все равно использовать его, тем самым обходя проблему. Также помните, что 5.4 еще не вышла, поэтому сейчас нет рабочей версии, которая не требует коротких тегов для работы, поэтому она по-прежнему не рекомендуется.

2. Ах, спасибо за очень информативный и образовательный комментарий.

Ответ №4:

Убедитесь, что вы включили короткие коды в php.ini на сервере, чтобы вышеупомянутое работало.

Комментарии:

1. по короткому коду tdk2fe ссылается на <?=, что означает то же самое, что и <?php echo, за исключением того, что оно предположительно устарело и больше считается дурным тоном.

2. @Kai: Psh. К черту это. Мне нравятся короткие теги. Они могут получить мой <?=, когда вырвут его из моих холодных мертвых рук.

3. PHP точно не известен своей элегантностью 🙂

4. @chao — lol да, я знаю. Я не понимаю, почему люди ополчаются на что-то подобное, когда это ваш сайт и ваш выбор запускать любую версию PHP, которую вы выберете. С другой стороны, я должен соответствовать определенным ожиданиям, потому что я работаю в фирме, ориентированной на клиента. Правила, вы знаете.