Отображение данных mysql в функции php - PullRequest
0 голосов
/ 17 марта 2011

Хорошо, теперь у меня проблема. Я хочу отобразить данные из базы данных и отобразить их через функцию. Как мне это сделать ??

, как будто я выбрал строку из базы данных и ее имяявляется $ row_field ['data'];и теперь это правильно, я назначил ему переменную, такую ​​как $ data = $ row_field ['data'];теперь, если я вызываю его в функции, он показывает неопределенную переменную, даже после того, как я назначил ее глобальной в функции, подобной этой

function fun(){
    global $data;
    echo $data;
}

, но если я присваиваю ему значение, подобное 1 или 2, или что-либо еще, оно отображается без каких-либоошибка, почему это так ??

Ответы [ 4 ]

0 голосов
/ 17 марта 2011

При изучении php старайтесь начинать с простых вещей.Например, чтобы получить какие-либо данные из базы данных, следуйте examples с сайта php.

<?php

$conn = mysql_connect("localhost", "mysql_user", "mysql_password");

if (!$conn) {
    echo "Unable to connect to DB: " . mysql_error();
    exit;
}

if (!mysql_select_db("mydbname")) {
    echo "Unable to select mydbname: " . mysql_error();
    exit;
}

$sql = "SELECT id as userid, fullname, userstatus 
    FROM   sometable
    WHERE  userstatus = 1";

$result = mysql_query($sql);

if (!$result) {
    echo "Could not successfully run query ($sql) from DB: " . mysql_error();
    exit;
}

if (mysql_num_rows($result) == 0) {
    echo "No rows found, nothing to print so am exiting";
    exit;
}

// While a row of data exists, put that row in $row as an associative array
// Note: If you're expecting just one row, no need to use a loop
// Note: If you put extract($row); inside the following loop, you'll
//       then create $userid, $fullname, and $userstatus
while ($row = mysql_fetch_assoc($result)) {
    echo $row["userid"];
    echo $row["fullname"];
    echo $row["userstatus"];
}

mysql_free_result($result);

Если все пойдет хорошо, перейдите немного дальше, немного измените цикл while.

$myArray = array();

while ($row = mysql_fetch_assoc($result)) {
    $myArray[] = $row;
}

mysql_free_result($result);

// now you can start playing with your data
echo $myArray[0];

Маленькие шаги ...

0 голосов
/ 17 марта 2011

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

0 голосов
/ 17 марта 2011

Если у вас есть столбец с именем data и ваш php-вызов был похож на

$result = mysql_query("SELECT data FROM mytable");

while ($row_field = mysql_fetch_assoc($result, MYSQL_NUM)) {
    ...  
}

Тогда вы можете заменить ... на print $row_field['data'].

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

0 голосов
/ 17 марта 2011

Глобал это зло.Я не знаю, что вы пытаетесь сделать, но почему вы просто не делаете запрос в самой функции?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...