suchen

Heim  >  Fragen und Antworten  >  Hauptteil

PHP-Schleife beim Lesen von Daten aus der Datenbank. Problem

Wie im Bild unten gezeigt, warum kann das Programm die Datenbankdaten nicht lesen?

世界只因有你世界只因有你2734 Tage vor1087

Antworte allen(4)Ich werde antworten

  • ringa_lee

    ringa_lee2017-06-29 10:10:05

    你的代码上有几个问题:

    1. 连接上数据库之后,选择数据表的操作mysql_select_db()要在查询操作mysql_query()之前,否则查询不知道在哪个数据表中查,就会直接在整个数据库运行语句。然而,你这个SQL语句写法却不符合数据库上查询的格式,所以会执行失败,也就是没有数据。

    2. mysql_query()对于SELECT语句,返回的是一个资源引用或者FALSE值,要遍历里面所有的行需要使用mysql_fetch_assoc()遍历资源并返回行数据。

    3. 建议不要将<?php的问号和php分开来写,因为这个是引擎识别PHP开始的标识,分开可能会导致引擎识别出错

    所以,
    第一点,把mysql_select_db()mysql_query()两行调换位置。
    第二点,将foreach($result as $row)改为while($row = mysql_fetch_assoc($result))

    Antwort
    0
  • PHP中文网

    PHP中文网2017-06-29 10:10:05

    应该是mysql_select_db('news', $conn);

    Antwort
    0
  • 代言

    代言2017-06-29 10:10:05

    mysql_query() 仅对 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,如果查询执行不正确则返回 FALSE。
    对于其它类型的 SQL 语句,mysql_query() 在执行成功时返回 TRUE,出错时返回 FALSE。
    非 FALSE 的返回值意味着查询是合法的并能够被服务器执行。这并不说明任何有关影响到的或返回的行数。很有可能一条查询执行成功了但并未影响到或并未返回任何行。

    mysql_fetch_assoc() 函数从结果集中取得一行作为关联数组。
    返回根据从结果集取得的行生成的关联数组,如果没有更多行,则返回 false。

    while($row = mysql_fetch_assoc($result)) {
        echo $row["id"];
    }

    Antwort
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-06-29 10:10:05

    去掉判断的!

    Antwort
    0
  • StornierenAntwort