2016-05-12 5 views
0

Я столкнулся с очень странной проблемой.Array не работает должным образом в php

У меня есть функция, которая печатает имя столбца данной таблицы базы данных из MySql.

function getColoumn() { 

    //replace it with your host normally it could be localhost 
    $hostname='localhost'; 
    //mysql user name 
    $username='admin_datauser'; 
    //mysql user password 
    $password='iCoq4KrJM8'; 
    //connect to the mysql server 
    $ss = mysql_pconnect($hostname, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR); 
    //select a database on the mysql server 
    //please change as you like the database name 
    mysql_select_db('admin_data'); 

    //SHOW COLUMNS FROM TABLENAME 
    $query=mysql_query('SHOW COLUMNS FROM user') or die(mysql_error()); 


    foreach($fields as $key=>$field){ 
    echo '"'.$field->Field.'", '; // print each field name 

    } 
} 

Результат выглядит

цен ниже
"id", "first_name", "last_name", "email", "address", "country", "city", "state", "phone_number", "fax", "image", "datecreated", "dateupdated", "Company", "token", 

У меня есть другой переменный массив, где текущие статические значения являются как

цен ниже
$searchArray = array("first_name","last_name","email","address","country","city","state","phone_number","fax","image"); 

мне нужно использовать переменную функцию в этом $ searchArray. Я попытался вызвать переменную в arrya, но это никоим образом не работает.

Любая помощь пожалуйста ??

+4

Пожалуйста, не используйте [расширение базы данных mysql_'] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php), оно устарело (ушло навсегда в PHP7) Специально, если вы просто изучаете PHP, потратьте свои силы на изучение расширений базы данных «PDO». [Начать здесь] (http://php.net/manual/en/book.pdo.php) – RiggsFolly

+0

И после 'mysql_query()', который запускает запрос и создает набор результатов. Вы должны прочитать строки из этого набора результатов с чем-то вроде '$ fields = mysql_fetch_object();' Обычно записывается в цикле 'while() {}' – RiggsFolly

+0

Эта функция не выглядит так, как будто она должна работать. '$ fields' не определено, если я не пропущу что-то. –

ответ

1

Прежде всего, вы не должны использовать функции mysql_, так как они устарели и подвержены SQL-инъекциям. скорее используйте собственные библиотеки PHP PDO или mysqli.

, то это гораздо проще непосредственно добавлять элементы в массив в цикле foreach:

$searchArray = array(); 

foreach($fields as $key=>$field){ 
    $searchArray[]= $field->Field; 
} 

Примечание:[]= оператор в PHP действует аналогично оператору +=. но вместо добавления к числовому значению он добавляет элементы в массив.

+2

И снова, откуда происходит '$ fields'? Вы пропустили этот OP, не читающий результирующий набор – RiggsFolly

+0

@RiggsFolly true, но OP говорит, что «вывод выглядит как ниже» - это не может быть правдой, если он/она не читает набор результатов. –

+0

Вы действительно верны! – RiggsFolly

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