Ja, du kan ju bara skriva
$log = mysql_fetch_array($log_array);
i koden ovan, istället för din while-konstruktion. Senare i koden kan du då bara loopa igenom din array $log för att skriva ut resultatet.
7 svar · 260 visningar · startad av prey
Rubriken säger väl det mesta, men ur sparar jag en tabell som hämtas ur MySQL i en variabel? Jag vill nämligen kunna hämta all information överst i php-filen, så att all "hämta-kod" är fixad när det är dags att skriva ut filen.
Just nu ser det ut så här:
<?php
/* Här hämtas informationen från databasen */
require("./dbvars.php");
$log_array = mysql_query("$sql");
while($log = mysql_fetch_array($log_array)){
?>
<tr>
<td width="160" valign="top" align="left"><?=$log["datum"]?><br>
<i style="color:#DDDDDD;">(upplagd:<br>
<?=$log["upplagd"]?>)</i></td>
<td width="57" valign="top" align="left"><?=$log["av"]?></td>
<td valign="top" align="left"><?=$log["text"]?></td>
</tr>
<? } mysql_close($link); ?>
Som ni ser loopas informationen ut tillsammans med lite html-kod... Kan jag spara det här på nått sätt, istället för att skriva ut?? Så att jag längre ner i filen kan skriva nåt som t.ex.
echo min_db_array[];
Ja, du kan ju bara skriva
$log = mysql_fetch_array($log_array);
i koden ovan, istället för din while-konstruktion. Senare i koden kan du då bara loopa igenom din array $log för att skriva ut resultatet.
Ja, du kan ju bara skriva: $log = mysql_fetch_array($log_array);
Jag förstår inte riktigt vad du menar...
Dock vill jag kunna ansluta till MySQL, samt KOPPLA NER MySQL länken INNAN värdena skrivs ut, jag antar att jag måste spara värdena i någon PHP-array (dessutom vill jag ha HTML koden i variabeln också, fast jag vill inte behöva spara html i databasen).
Förstår ni vad jag menar? :l
Jag har tidigare sett värden sparas med hjälp av "->" tecken, fast det förstår jag mig inte riktigt på.. Ngn som känner för å förklara?
Tackar på förhand!
För att förklara det lite ytterligare:
jag vill spara en array I EN ANNAN array:
$person[1] =
$detaljer["namn"] (med värdet JOHAN)
$detaljer["nummer"] (med värdet 007)
$person[2] =
................
Sen vill jag loopa ut alla personerna så att det står t.ex:
--------------------------
| JOHAN 007 |
--------------------------
| RICKARD 006 |
--------------------------
| JONAS 100 |
--------------------------
i en fin lite tabell....
Alltså om du skriver:
$log = mysql_fetch_array($log_array);
så HAR du ju en "PHP-variabel" som du uttrycker det. $log är en array och du kan nu koppla ner din mySQL-koppling men ändå ha kvar dina värden i $log. Sen kan du enkelt loopa igenom din variabel med t.ex:
foreach ($log as $key => $value) {
echo "$key = $value<br>";
}
Testa ska du se - du kan lägga till din HTML vid loopen istället för att lägga in den i arrayen.
Och för att göra det ännu klarare:
foreach ($log as $key => $value) {
echo "<tr><td>$key</td><td>$value</td></tr>\n";
}
sjyscht! nu fattar jag :birp tror ja :)
Måste bara fråga en grej till:
Om jag ahr variabeln $log["namn"] = "ANDERS";
Innebär det att $key = "namn" samt $value = "ANDERS"?
(I just fallet: $log["namn"] = ANDERS;?)
Om jag ahr variabeln $log["namn"] = "ANDERS";
Innebär det att $key = "namn" samt $value = "ANDERS"?
Ja det stämmer.
Nu är du kanske inne på andra och bättre vägar, men för att svara på din ursprungliga fråga så kan man göra så här:
<?php
/* Här hämtas informationen från databasen */
require("./dbvars.php");
$log_array = mysql_query("$sql");
while($log = mysql_fetch_array($log_array)){
$min_db_array[] = "<tr>
<td width=\"160\" valign=\"top\" align=\"left\">{$log['datum']}<br>
<i style=\"color:#DDDDDD;\">(upplagd:<br>{$log['upplagd']})</i></td>
<td width=\"57\" valign=\"top\" align=\"left\">{$log['av']}</td>
<td valign=\"top\" align\="left\">{$log['text']}</td>
</tr>\n";
}
mysql_close($link);
foreach ($min_db_array as $val) echo $val;
?>