[snip]
I'm reading data. Can I open a connection within a connection and write
data to another $db.$table or do I have to write my data to an array. In
an array, how do I do this?

I've looked at array_push, but don't think this is what I want?
$authors = array();
      array_push($singleauthor,$mydata->id);
I've been reading http://ca3.php.net/manual/en/function.array-push.php
[/snip]

Here is some pseudo-code that may help...

$sqlSelect = "SELECT `foo` FROM `table1` WHERE condition ";
$sqlQuery = mysql_query($sqlSelect, $myConnection);

while($row = mysql_fetch_array($sqlQuery)){
        echo $row['foo'] . "\n"; // so we can see `foo`
        $sqlInsert = "INSERT INTO `table2`(`newFoo`) ";
        $sqlInsert .= "VALUES('" . $row['foo'] . "') ";
        $sqlInQuery = mysql_query($sqlInsert, $myConnection);
}

What is bad here is that an INSERT is called each time through the loop
for `foo`, which may be inefficient. As with anything PHP there is more
than one way to skin a cat though.

$arrayIndex = 0;
while($row = mysql_fetch_array($sqlQuery)){
        $newFooArray[$arrayIndex] = $row['foo'];
        $arrayIndex++;
}

for($i = 0; $i < count($newFooArray); $i++){
        echo $newFooArray[$i] . "\n";
        $sqlInsert = "INSERT INTO `table2`(`newFoo`) ";
        $sqlInsert .= "VALUES('" . $newFooArray[$i] . "') ";
        $sqlInQuery = mysql_query($sqlInsert, $myConnection);
}

Again, the INSERT is called each time.

There is one more way to do this, and it would all be in one query. This
the most efficient, especially if you do not have to manipulate the data
before placing it in the second table.

$sqlSelectAndInsert = "INSERT INTO `table2` (`newFoo`) ";
$sqlSelectAndInsert .= "SELECT `foo` FROM `table1` ";
$sqlSelectAndInsert .= "WHERE conditions ";
$sqlSIQuery = mysql_query($sqlSelectAndInsert, $myConnection);

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to