如何使用PHP脚本

时间:2015-05-29 06:41:45

标签: php mysql

我正在尝试从MySql数据库中获取三列。我能够获取内容,但这不是我需要的。我只需要将内容作为字符串数组,以便我可以使用它们来填充我的java代码中的列表视图。

我脚本的当前回复是:

{  ["UID"]=>  string(1) "1"  ["UserName"]=>  string(7) "abc@123"  ["Subject"]=>  string(15) "My Android Post"}object(stdClass)#4 (3) {  ["UID"]=>  string(1) "2"  ["UserName"]=>  string(7) "abc@123"  ["Subject"]=>  string(15) "My Android Post"}

我需要一些如下所示的字符串数组或列表:

1 abc@123 My Android Post
2 abc@123 My Android Post

如何只获取PHP中存储在列中的值。我是PHP脚本的新手,所以请帮我解决这个问题。

我当前的PHP脚本如下所示:

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "iFocusBlogs";



$obtainedUserName = 1;         

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql="SELECT UID, UserName, Subject FROM AndroidTable WHERE Status ='" .$obtainedUserName. "'";
$result=mysqli_query($conn,$sql);

while($obj = $result->fetch_object()){ 
var_dump($obj);

 } 

$conn->close();
?>

请让我知道我需要在脚本中进行哪些更改才能获取列的内容。欢迎所有建议。在此先感谢。

4 个答案:

答案 0 :(得分:2)

使用fetch_array代替fetch_object。 您可能需要进行一些额外的修改才能完全按照您的意愿获得阵列,但至少它距离更近。

如果指定MYSQL_NUM作为第二个参数,您将得到一个没有键和数字索引的数组。该阵列足够干净,可以进一步处理。

您可以使用for循环输出数组...

foreach($array as $item) {
  echo $item . '<br>';
}

或使用implode() ...

echo implode($array);

或使用json_encode() ...

echo json_encode($array);

这完全取决于你想要如何显示你的数组。

print_rvar_dump等函数对于检查数组和其他变量的内容很有用,但不太可能以外部程序可用的格式输出该内容。

答案 1 :(得分:2)

您可以访问对象'->'符号

$tCont="";
while($obj = $result->fetch_object()){ 
//var_dump($obj);
$tCont.='<tr><td>'.$obj->UID.'</td><td>'.$obj->UserName.'</td><td>'.$obj->Subject.'</td></tr>';

 } 
 echo $tCont;

答案 2 :(得分:2)

您也可以使用mysqli_fetch_row()

/* fetch associative array */
    while ($row = mysqli_fetch_row($result)) {
        printf ("%s (%s)\n", $row[0], $row[1]).PHP_EOL;
    }

尝试更新

$query="SELECT UID, UserName, Subject FROM AndroidTable WHERE Status ='" .$obtainedUserName. "'";

 if ($result = $conn->query($query)) {

    /* fetch associative array */
    while ($row = $result->fetch_assoc()) {
        printf ("%s (%s)\n", $row["UID"], $row["UserName"],$row["Subject"]);
    }
}

答案 3 :(得分:1)

更改您的select语句,可能会连接列:

$sql="SELECT CONCAT (UID,' ' , UserName,' ', Subject) AS myresult FROM AndroidTable WHERE Status =" . $obtainedUserName ;

$result = $conn->query($sql);

使用fetch_assoc并打印每一行:

while($row = $result->fetch_assoc()){ 

echo $row['myresult'];

 }