我是一个相当新手的php程序员,在一个教程中获得了这个php代码来创建一个随机生成的引用,但我不完全理解代码
尤其是,我不明白
a)第4行--“行”从哪里来。那是当场杜撰的名字吗?它是不是也可以被称为“法拉利”呢?
b)第9行-- "storedtext“从何而来?是当场编造的吗?
c)根据代码,你知道数据库应该是什么样子的吗?它只是一个名为"text“的数据库,里面有一个名为"quotables”的表吗?
<?
//
// count() gets the number of rows from database text--
//it assigns a number to rowcount
1 $rowcount = mysql_query("select count() as rows from text");
// don't understand what exactly is happening here, where did "rows" come from
2 while ($row = mysql_fetch_assoc($rowcount))
3 {
4 $max = $row["rows"];
5 }
// Selects an item's index at random
6 $rand = rand(1,$max)-1;
//there is a database table called "quotables?" taking one random row
7 $result = mysql_query("select from quotables limit $rand, 1");
8 $row = mysql_fetch_array($result);
//where does "storedText" come from?????
9 $randomOutput = $row['storedText'];
10 echo '<p>' . $randomOutput . '</p>';
11 ?>发布于 2011-07-11 20:01:17
A) rows是mysql查询中第一行中count()函数的别名。如果您将第一行中的行更改为ferrari,然后将第4行中的行更改为ferrari,那么它仍然可以工作。
B)存储的文本来自第7行的第二个mysql查询。这将是该表中某列的名称。
C)根据您给出的代码,我可以告诉您,您有一个数据库,我不知道它的名称,该数据库有两个表,一个称为text,另一个是quotables,我可以告诉您,quotables有一个名为storedText的列。
发布于 2011-07-11 20:00:25
“行”是从哪里来的?
它是分配给SQL查询select count() as rows from text中的值的名称。
"storedtext“从何而来?
它似乎是quotables表中某个字段的名称。
根据代码,你知道数据库应该是什么样子的吗?它只是一个名为"text“的数据库,里面有一个名为"quotables”的表吗?
不是的。我们不能透露任何关于数据库名称的信息。但是这个数据库包含表text和quotables,后者至少有字段storedText。
发布于 2011-07-11 19:59:22
a)是的。b)它必须是数据库中的列。在第7行,它拉取了数据库中的所有列,但没有指定它的名称c)不,您可以使用print_r($row)来查看表结构(将打印出数组,显示所有列)。您还应该能够访问db (要使其工作,您需要设置db和表),因此,无论如何,mysql_connect()和mysql_select_db()将告诉您主机/db的名称。
https://stackoverflow.com/questions/6649716
复制相似问题