mysql_fetch_row:怎么知道哪一行?

Im trying to get to grips with PHP and MYSQL programming, but after seeing an example, I cant understand how mysql_fetch_row knows which row to return. For example:

<?php

$query = "SELECT * FROM classics";
$result = mysql_query($query);

$row = mysql_fetch_row($result); //gets the rows refering to the query

echo $row[0]; //returns the data in column 1

?>

In the code above, echo $row[0]; returns the data in the first column in the table, but how does it know which row to take this data from (assuming the query returns more than one row)?

Moreover, if I put the code in a loop:

<?php

$query = "SELECT * FROM classics";
$result = mysql_query($query);

for ($j = 0 ; $J < 4 ; ++$j)
{
$row = mysql_fetch_row($result);
echo $row[0];
}

?>

The values echoed are the values in (row1,column1) (row2,column1,) (row3,column1). How does this work if the incremented value $j isnt directly affecting the mysql_fetch_row function??

It advances to the next row each time you call it, which is why it's typically used in a while loop

you nust have to add a "where" to your select:

for example:

$value="mozart";

$query = " SELECT * FROM classics where author='$value' ";

the sentence is: select all data from classics where the author is mozart