Nogen der kan forklare denne kode? (2d array)
Hejsa.Jeg har fundet den kode der står længere nede på http://dk2.php.net/manual/da/function.mysql-fetch-array.php#52806 . Er der nogen der kan forklare koden for mig, vil nemlig gerne bruge koden til mit databasekald, da det vist vil blive en smule lettere... :)
================Koden=============
<?
class mysql_resultset
{
var $results, $map;
function mysql_resultset($results)
{
$this->results = $results;
$this->map = array();
$index = 0;
while ($column = mysql_fetch_field($results))
{
$this->map[$index++] = array($column->table, $column->name);
}
}
function fetch()
{
if ($row = mysql_fetch_row($this->results))
{
$drow = array();
foreach ($row as $index => $field)
{
list($table, $column) = $this->map[$index];
$drow[$table][$column] = $row[$index];
}
return $drow;
}
else
return false;
}
}
?>
The class is initialized with a mysql_query result:
<?
$resultset = new mysql_resultset(mysql_query($sql));
?>
The constructor builds an array that maps each field index to a ($table, $column) array so we can use mysql_fetch_row and access field values by index in the fetch() method. This method then uses the map to build up the 2d-array.
An example:
<?
$sql =
"select orders.*, clients.*, productos.* ".
"from orders, clients, products ".
"where join conditions";
$resultset = new mysql_resultset(mysql_query($sql));
while ($drow = $resultset->fetch())
{
echo 'No.: '.$drow['orders']['number'].'<br>';
echo 'Client: '.$drow['clients']['name'].'<br>';
echo 'Product: '.$drow['products']['name'].'<br>';
}
?>
Dét jeg ikke forstår ved koden, og som nok også er grunden til at jeg ikke kan får den til at virke er dette her:
$sql =
"select orders.*, clients.*, productos.* ".
"from orders, clients, products ".
"where join conditions";
Den første "order" er da en colum ik'? og hvorfor er der .* efter? Er det fordi den skal hente det hele fra tabellerne Order, clients og productos??? Det er vel det samme som at skrive $sql = "select orders from orders where ..." `(hvis det nu kun var orders der skulle hentes fra ik'?)
Hvis det nu er det samme som $sql = "select orders from orders where ..." så kan jeg ikke forstå det her echo 'No.: '.$drow['orders']['number'].'<br>'; (Hvad er number?)
Håber der er en der ude der vil svare på alle mine spørgsmål :D
