2012-01-16 2 views
2

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

Хорошо видеть, когда пользователь входит в его адрес электронной почты в веб-сайт, мы используем PHP сценарии и извлечение данных из MySQL и поместить эти данные на странице с использованием в основном printf или echo

Так есть possibilty 2 путей сделать

, например, один из таблицы моей базы данных выглядит следующим образом

name  birthday aboutme gender dreams music movies blabla// 
    someperson xx  xx  xx  xx  xx xx 

первый метод demo.php

<html> 
<body> 
name: <?some php script to get user name?> 
<20 lines of html tags and data> 
birthday: <?some php script to get user name?> 
<20 lines of html tags and data> 
about user <?some php script to get user about?> 
<some more html data> 
<?some more php scripting?> 

В первом методе мы всегда соединяясь к базе данных и получать данные, а затем через 20 строк кода HTML, а затем снова мы подключаемся к одной и той же таблицы и базы данных и получения следующего значения столбцов и разъединителей он, а затем снова мы подключаемся к серверу и многое другое. В этом процессе мы подключаемся и отключаемся от сервера

Итак, в первом методе мы всегда подключаемся и отключаемся от сервера, я просто думал, что это может вызвать серьезные накладные расходы на сервере при подключении и отключении на каждые 10 строки кода. Я думаю, что это правда или что-то не так?

второй метод demo.php

<?php 
retrieve all the data you need at a time here and then use 
echo "<html>" 
echo "<body>" 
echo "name: <?just php variable value that was retrieved?> 
echo "<20 lines of html tags and data>" 
echo "birthday: <?just php variable value that was retrieved?> 
?> 

Во втором методе мы используем PHP скрипт запуска сервера только получить данные в начале, а затем просто повторить их с HTML-тегами и данными, был восстановлен, но я думал, что это так необъяснимо, потому что мы заставляем сервер выполнять теги html, в которых нормальный браузер явно будет делать

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

Ну, есть ли способ получить данные сразу из базы данных, а затем просто откликнуться обратно между тегами html?

просто как

<?get all the data from database here>? 
    <div> echo 'some php variable' 
    <span> echo 'some php variable' 

Есть ли способ, как это? Пожалуйста, дайте мне знать, лучший подход, чтобы сделать it.thanks

помощь очень ценится

ответ

1

Вы правы, думая, что вам не нужно объявлять все ваши html, используя php echo. PHP генерирует HTML, когда он перемещается вниз по вашему коду. Таким образом, вы можете объявлять HTML между вызовами php.

Например:

<html> 
<body> 
<?php 
    $results = mysql_query(SELECT name,gender FROM table WHERE id='34'; 
    // Additional code to assign $results array to variables 
?> 
<div><?=$name;?></div> 
<div><?=$age;?></div> 
</body> 
</html> 

Самое главное, чтобы отметить, что вы можете вызвать PHP несколько раз через вне документа, и он будет продолжать работать от прошлых вызовов PHP. Все переменные и функции хранятся на всей странице.

Надеюсь, это поможет.

1

Если все ваши данные в одной таблице, то вам нужно только один запрос. И вы должны переключаться и выходить из php вместо того, чтобы составлять html внутри php. Это может выглядеть примерно так:

<?php 

$db = new PDO($dsn, $user, $password); 
$stmt = $db->prepare('SELECT * FROM user_profile WHERE user_id = ?'); 
$stmt->execute(array($user_id)); 
$profile = $stmt->fetch(PDO::FETCH_ASSOC); 
$stmt->close(); 

?> 
<html> 
<head> 
    <title> <?php echo $profile['username']; ?> Profile</title> 
</head> 
<body> 
    <div> 
    <div> 
    <div> 
     <?php foreach($profile as $attribute => $value): ?> 
     <div> 
      <span class="label"><?php echo $attribute ?></span> 
      <span class="profile_value"><?php echo $value; ?> </span> 
     </div> 
     <?php endforeach; ?> 
    </div> 
    </div> 
    </div> 
</body> 
</html> 
1

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

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

<? 
// here is where you get all the data from MySQL using PHP 
?> 
<!-- HTML now --> 
<div> 
<? 
//PHP starts again 
echo $something; 
//PHP ends 
?> 
<!-- HTML again --> 
</div> 

Вы можете прыгать и из PHP столько раз, сколько вы хотите, когда это наиболее необходимо.

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