2013-10-02 7 views
0

действительно очень новый для PHP и Mysql здесь и пытается научить себя! Я использовал echo mysql_field_name($result, 0) , чтобы отобразить определенное имя поля из таблицы и изменить его, изменив номер. Мой вопрос: как я могу эхо-список конкретных имен полей, например, 2-8, чтобы поместить их в таблицу html?Как отобразить конкретные имена полей?

Спасибо!

+2

Не могли бы вы просто вызвать 'mysql_field_name' в цикле и увеличить число, которое вы передаете ему? – mam8cc

+1

[** Пожалуйста, не используйте 'mysql_ *' функции в новом коде **) (http://bit.ly/phpmsql).Они больше не поддерживаются [и официально устарели] (https://wiki.php.net/rfc/mysql_deprecation). См. [** красное поле **] (http://j.mp/Te9zIL)? Узнайте о [* подготовленных операторах *] (http://j.mp/T9hLWi) и используйте [PDO] (http://php.net/pdo) или [MySQLi] (http://php.net/ mysqli) - [эта статья] (http://j.mp/QEx8IB) поможет вам решить, какой из них. Если вы выберете PDO, [здесь хороший учебник] (http://j.mp/PoWehJ). – h2ooooooo

+0

Ах, да, я не знал о PDO, я просмотрю учебник и попытаюсь понять его. Я думаю, что учебники, которые я изучал mysql, должны быть старыми! – Anon

ответ

0

Если вы используете некоторую библиотеку, такую ​​как PDO или mysqli (которую вы должны использовать вместо mysql), и вы используете параметры для извлечения каждой строки данных в качестве ассоциативного массива, имена полей будут ключевыми значениями для массив. Вы можете получить имена полей таким образом без каких-либо дополнительных накладных расходов, чтобы запросить отдельно, чтобы получить имена полей.

+0

Спасибо, кто-то упомянул PDO и mysqli в другом комментарии, я думаю, это будет что-то еще для меня, чтобы учиться! – Anon

0

Так несколько комментариев ...

Во-первых, библиотеки mysql_ амортизируются в 5.5 и более поздних версий. Если вы новичок в PHP, я бы предложил вам научиться mysqli library и использовать версию объекта. Мои примеры предполагают, что у вас есть объект mysqli. Существуют процедурные способы сделать то же самое, вам просто нужно будет каждый раз передавать указатель на соединение с БД.

Итак, у нас есть какой-то запрос с разъемом DB.

$sql = 'Some statement here'; 
$result = $mysqli->query($sql); 

На данный момент у нас есть результат. Есть несколько лучших способов получить данные из таблицы, чем mysql_field_name. Один из них - fetch_object, а другой - fetch_assoc. Разница заключается в том, что FETCH_ASSOC даст вам ассоциативный массив, а другой даст вам объект

$row = $result->fetch_assoc(); 
echo $row['fieldname']; 

$row = $result->fetch_object(); 
echo $row->fieldname; 

Есть другие способы, чтобы получить данные, но они являются двумя наиболее распространенными, поскольку они являются самыми легкими для понимания.

Теперь, если вы не знаете названия своих полей, вы можете всегда использовать fetch_fields() для получения этих данных.

+0

Это тоже полезно, так как я хочу построить запрос, не зная имена полей. – Anon

0

Если вы хотите использовать MySqli, вы можете легко сделать это, используя цикл While. Если вы хотите отобразить в таблице, это действительно легко сделать.

Подключение к источнику данных (если вы используете MySQL не Mysqli, рекомендую коммутацию.)

$con=mysqli_connect("example.com","peter","abc123","my_db");

Затем вы хотите запустить SQL скрипт, чтобы получить данные:

$mydata = mysqli_query($con, "SELECT * FROM mytable");

Здесь будет отображаться цикл While, отображаемый в таблице.

echo '<table><tr><th>Field1</th><th>Field2</th></tr>'; 

//This bascially says while you can fetch data from your database, do the 
//the following with the label $mytable. 
while($mytable = mysqli_fetch_array($mydata)) { 
    echo '<tr><td>'.$mytable['yourfieldnameinyourdb'].'<td>'; 
    echo '<td>'.$mytable['your2fieldnameinyourdb'].'</td></tr>'; 
} 

echo '</table>'; 

Так полный код будет выглядеть так:

<? 
// Connect your your DB 
$con=mysqli_connect("example.com","peter","abc123","my_db"); 
// Get your data 
$mydata = mysqli_query($con, "SELECT * FROM mytable"); 
// Start the table 
echo '<table><tr><th>Field1</th><th>Field2</th></tr>'; 
// Do the loop 
while($mytable = mysqli_fetch_array($mydata)) { 
    echo '<tr><td>'.$mytable['yourfieldnameinyourdb'].'<td>'; 
    echo '<td>'.$mytable['your2fieldnameinyourdb'].'</td></tr>'; 
} 
// End your table 
echo '</table>'; 
?> 

Если это не совсем ответ на ваш вопрос, просто дайте мне знать.

+0

Это действительно хороший ответ, и я просто хочу поблагодарить вас! – Anon

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