AndreasCMedlem sedan mars 20011 924 inlägg
Jag försöker hämta en radserie från mySQL och få den som en array på en websida men vet inte riktigt hur jag ska lösa det.
Jag har en db tabell som innehåller ett antal rader. Varje rad består av en url. Vad jag vill göra är att hämta dessa rader och göra någon typ av array som jag sedan lägger i en variabel. På websidan vill jag sedan hämta in denna variabel för en serie med <a href="">-taggar så varje länk får en url tilldelad från databasen. URL'erna ska tilldelas i den ordning som de står i databasen.
Har suttit i flera timmar med detta men kan inte få någon kod att fungera. Vet inte vad jag gör fel. Hur kan jag skriva? Jag vet att det inte krävs mycket kod för att detta ska fungera men jag lyckas ändå inte.
EDIT: Ska tilläggas att jag har två kolumner i databasen. En kolumn med ID och en kolumn med URL.
ShakorMedlem sedan aug. 201035 inlägg
en loop med mysql_fetch_array borde fixa biffen =)
t.ex.
$urls = array();
$result_set = mysql_query("SELECT id, url FROM links ");
while($fetched_row = mysql_fetch_array($result_set))
{
$urls[$fetched_row['id']] = $fetched_row['url'];
}
foreach ($urls as $id => $url)
{
echo "<a href='".$url."'>".$id."</a>";
}
Nu lagras data:t i en array innan det printas ut, alternativt kan du ju printa ut allt direkt.
AndreasCMedlem sedan mars 20011 924 inlägg
Jag har nu satt upp koden såhär
<?php
/**
* Return an Array of URLS's in the Database
*/
$urls = array();
$sql = "SELECT * FROM ".TBL_NAV_URLs_0."";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
$urls[$row['urlid']] = $row['url'];
}
foreach ($urls as $id => $url)
{
}
?>
På websidan där jag vill ha länkarna inkluderar jag ovanstående kod och anger för länkarna
<a href=\"$url\">
Om jag anger det i första koden som du gjorde så fungerar det men inte om jag lägger länkarna utanför första koden så fungerar det inte längre. Istället för url visas Array i webläsaren när jag för muspekaren över länkarna. Det står bara array som URL för alla länkarna.
Hur kan jag få med mig url'erna till mina länkar?
ShakorMedlem sedan aug. 201035 inlägg
$urls är en array, så du måste loopa igenom den för att få ut nåt.
$urls[0], $urls[1], $urls[2] etc. etc. fungerar om du vill skriva ut det manuellt
Vill du förresten inte använda dig utav ID:t så kan du ju göra loppen ovan lite kortare.
while($row = mysql_fetch_array($result))
{
array_push($urls, $row['url']);
}
och då
foreach ($urls as $url)
{
echo "<a href='".$url."'>";
}
AndreasCMedlem sedan mars 20011 924 inlägg
Vill du visa bara hur jag skriver? vart skriver jag urls[0], urls[1] osv? I länkarna?
ShakorMedlem sedan aug. 201035 inlägg
Det gör du i länkarna :)
<a href=\"".$urls[0]."\">
<a href=\"".$urls[1]."\">
<a href=\"".$urls[2]."\">
Men är det inte smidigare att loopa igenom arrayen?
AndreasCMedlem sedan mars 20011 924 inlägg
Vet inte vad jag gör för fel. Jag gör som du säger men istället för rätt url så står bara $urls[0], $urls[1] osv för länkarna.
ShakorMedlem sedan aug. 201035 inlägg
skriver du det innanför php-taggarna då?
<?php echo "<a href=\"".$urls[0]."\">"; ?>
alt.
<a href="<?php echo $urls[0]; ?>">
AndreasCMedlem sedan mars 20011 924 inlägg
Hade inte inom php-taggar :/ Nu för jag dock "undefined offset"
Ska det stå något i foreach?
ShakorMedlem sedan aug. 201035 inlägg
Om du inte tänker skapa länkarna dynamiskt så behövs inte foreach-loopen.
Ändrade du till nedanstående, så borde det fungera med $urls[0], 1,2,3,etc.
while($row = mysql_fetch_array($result))
{
array_push($urls, $row['url']);
}
AndreasCMedlem sedan mars 20011 924 inlägg
Super. Tack :) Nu funkar det perfekt.