2010-11-27 3 views
2

У меня есть таблица базы данных, созданная в phpmyadmin. Я хочу, чтобы элементы таблицы сохранялись по строкам в массиве. У меня есть три столбца с именем edge_id, vertexA и VertexB. Я хочу, чтобы элементы этих трех столбцов были сохранены в массив.Хранить элементы данных в массиве

Я не знаю этих команд для PHP. Пожалуйста, помогите мне.

+0

прошу дать полный пример того, что вы пытаетесь выполнить. Вы имеете в виду mysql `table` или html`

`? И вы говорите о том, чтобы помещать содержимое db в таблицу html или печатать содержимое db-запроса в структуре таблицы html? – prodigitalson2010-11-27 04:44:06

ответ

2

у меня есть столбцы в моей таблице с именем «vertexa» и «vertexb», я хочу, чтобы магазин в colums в двух отдельных массивов ... как я могу сделай это??

Самый простой способ будет:

$db = new PDO('mysql:host=localhost;dbname=your_db_name;', $user, $password); 
$vertices_a = array(); 
$vertices_b = array(); 

foreach($db->query('SELECT * from your_table_name') as $row){ 
    $id = $row['edge_id']; 

    // add them to the proper array using the edge_id as the index - 
    // this assumes edge_id is unique 
    $vertices_a[$id] = $row['vertexa']; 
    $vertices_b[$id] $row['vertexb']; 
} 

Так с PDO:

$db = new PDO('mysql:host=localhost;dbname=your_db_name;', $user, $password); 

foreach($db->query('SELECT * from your_table_name') as $row){ 
    echo $row['edge_id']; 
    echo $row['vertexA']; 
    echo $row['vertexB']; 
} 

Теперь, если вам нужно использовать входные данные, вам нужно, чтобы избежать его. Лучший способ сделать это - использовать подготовленный оператор, потому что escaping является дескриптором, когда параметры привязаны к запросу.

Допустим, к примеру, вы хотите использовать edge_id подаваемую из запроса GET, как mysite.com/show-boundry.php?edge=5 ...

$db = new PDO('mysql:host=localhost;dbname=your_db_name;', $user, $password); 

// create a prepared statement 
$stmt = $db->prepare('SELECT * from your_table_name WHERE edge_id = ?'); 

// execute the statement binding the edge_id request parameter to the prepared query 
$stmt->execute(array($_GET['edge'])); 

// loop through the results  
while(false !== ($row = $stmt->fetch(PDO::FETCH_ASSOC))){ 
    echo $row['edge_id']; 
    echo $row['vertexA']; 
    echo $row['vertexB']; 
} 

Кроме того, вы не должны использовать смешанный регистр имен столбцов/таблиц, как vertexA использовать вместо подчеркивания разделителей, как vertex_a.

+0

thnx prodigy. Надеюсь, это сработает. Дай мне попробовать ! – 2010-11-27 05:12:17

2

Сначала необходимо подключиться к базе данных:

$link = mysql_connect('localhost','username','password'); 
if (!$link) { 
    // Cannot connect 
} 
$ret = mysql_select_db('database-name', $link); 
if (!$ret) { 
    // Cannot select database 
} 

Затем вам нужно выполнить запрос:

$ret = mysql_query('SELECT * FROM `table`;', $link); 
if (!$ret) { 
    // Query failed 
} 

Тогда вы просто загрузить каждую строку:

$data = array(); 
while ($row = mysql_fetch_assoc($ret)) { 
    $data[] = $row; 
} 

Тогда вы должны бесплатно получить ваши результаты запроса

mysql_free_result($ret); 

И вуаля.

+0

Только не используйте расширение `mysql`. используйте `PDO` или` mysqli` ... предпочтительно PDO. – prodigitalson 2010-11-27 04:46:51

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