首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >前一次拉出连接表数据

前一次拉出连接表数据
EN

Stack Overflow用户
提问于 2015-01-23 04:59:07
回答 3查看 53关注 0票数 0

我是MySQL和PHP写作方面的新手。我遇到的问题是在while行之前从特定的表中提取数据。我目前的代码是

代码语言:javascript
复制
$query_join_tables  = "SELECT m.*, c.id, c.firstname, c.lastname, 
                        IFNULL(m.system_customer,c.id) AS client_id
                        FROM ... AS m
                        LEFT
                        JOIN ... as c
                        ON m.system_customer = c.id
                        WHERE system_customer=".$clientid."
                        ORDER BY system_id ASC";

$result = mysql_query($query_join_tables);
if (!$result) {
    die('Invalid query: ' . mysql_error());
}

echo "BLA BLA BLA";

while($row = mysql_fetch_array($result)){

    echo "MORE BLA BLA";

问题是,当我试图在while线之前从表中拔出时,它不会拉。如果我在后面拉的话,效果会很好的。

不起作用:

代码语言:javascript
复制
echo ".$row['firstname'].";
while($row = mysql_fetch_array($result)){

是否有效:

代码语言:javascript
复制
while($row = mysql_fetch_array($result)){
    echo ".$row['firstname'].";

另外,在提到mysqli或PDO之前-我做不到。我正在为加密和硬编码的东西编写一个模块。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-01-23 05:04:41

你会觉得很傻的。$row变量还没有被赋予获取的行。当线

代码语言:javascript
复制
$row = mysql_fetch_array($result)

是运行的,即将一行的数据提供给$row。在此之前调用$row只会给出一个空值。

每当while循环再次启动时,它都会得到一个新行。这叫ITERATOR。它一次一行地向下移动,直到它运行而什么也找不到。这就是它退出循环的时候。

编辑(01/23/2015):现在我了解到您实际上希望有两个循环使用相同的结果。我将展示如何重置迭代器。

代码语言:javascript
复制
while($row = mysql_fetch_array($result)) {Do Stuff}

mysql_data_seek($result, 0);

while($row = mysql_fetch_array($result)) {Do Stuff}

希望这能有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2015-01-23 05:31:46

mysql扩展将被取消,并将在将来删除。使用mysqli。试试下面的代码。

代码语言:javascript
复制
$con = mysqli_connect("localhost","root","","dbname");

$query_join_tables = "SELECT m.*, c.id, c.firstname, c.lastname, 
IFNULL(m.system_customer,c.id) AS client_id
FROM ... AS m
LEFT
JOIN ... as c
ON m.system_customer = c.id
WHERE system_customer=".$clientid."
ORDER BY system_id ASC";

$result = $con->query($query_join_tables);

$row = mysqli_fetch_array($result,MYSQLI_ASSOC);
echo $row["firstname"];
$conn->close();
票数 0
EN

Stack Overflow用户

发布于 2015-01-23 05:47:33

好吧,试试这个。应该管用的。

代码语言:javascript
复制
mysql_connect("localhost", "root", "") or
die("Could not connect: " . mysql_error());
mysql_select_db("dbName");

$query_join_tables = "SELECT m.*, c.id, c.firstname, c.lastname, 
IFNULL(m.system_customer,c.id) AS client_id
FROM ... AS m
LEFT
JOIN ... as c
ON m.system_customer = c.id
WHERE system_customer=".$clientid."
ORDER BY system_id ASC";

$result = mysql_query($query_join_tables);
$res = mysql_fetch_array($result);
echo $res['vBookName'];

mysql_free_result($result);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28103309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档