Just nu i M3-nätverket
Jump to content

Skriva ut värden i en array..


makke

Recommended Posts

Jag har en query som hämtar ett antal rader ur min tabell.. Jag vill att värdena skall skrivas ut

värde1, värde2, värde3 osv..

 

Tänkte använda mig av implode vilket ju verkar vara ett vettigt sätt tackla problemet..

Dock vet jag inte hur jag ska formulera arrayandet för att få som jag vill.. Hur får man alla de hämtade raderna att skrivas in i arrayen?

Testade följande

 

PHP: 
1:  $query = mysql_query("SELECT * FROM tabell");
2: $rows = mysql_fetch_array($query);
3:  
4: echo $comma_separated = implode(", ", $rows); 

 

 

Det ger bara utskriften

värde1, värde1

 

när jag vill att utskriften ska bli

värde1, värde2

 

Link to comment
Share on other sites

Och det är ju det jag har förökt med men inte fattar hur jag ska göra.

 

Rent spontant hade jag ju gissat på något liknande

 

$array = array();

$query = mysql_query("SELECT * FROM tabell");

 

while($rows = mysql_fetch_array($query)) { $array[] = $row['varde'] } ;

 

Men det funkar ju inte..

 

Link to comment
Share on other sites

Pröva så här istället kanske?

$result = mysql_query("SELECT varde FROM tabell");

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
{printf("%s , ", $row["varde"]; }

 

Link to comment
Share on other sites

Det funkade inte alls.. Antingen var det en ; som var unexpected, och tog man bort den så var } unexpected..

 

Kan man få en förklaring över vad de olika sakerna gör..

Jag har inte riktig koll på MYSQL_ASSOC

och jag förstår knappt hälften av {printf("%s , ", $row["varde"]; }

 

Link to comment
Share on other sites

Jag missade en parentes, det ska vara

while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{printf("%s , ", $row["varde"]); }

 

MYSQL_ASSOC innebär att arrayen som hämtas blir en associativ array, där nyckel->värde-paren motsvarar databasens Fältnamn->Fältvärde

 

Använder du istället MYSQL_NUM hämtas en vanlig array, som du då använder index för att hämta ut värden ur istället.

 

printf formatterar strängen så att argumentet stoppas in där det står %s

Ex. skriver printf("%s - %s", "a", "b") ut strängen 1 - 2

 

 

Link to comment
Share on other sites

I din första kod:

 

PHP:

1: $query = mysql_query("SELECT * FROM tabell");

2: $rows = mysql_fetch_array($query);

3:

4: echo $comma_separated = implode(", ", $rows);

 

hämtar du resultatet med en array, vilket inte är möjligt.

Du kan däremot hämta "objektet" först. Därefter kan du hämta varje rad som array för att kunna tillämpa implode.

 

 

Hämta resultatet:

http://se2.php.net/manual/sv/function.mysql-query.php

 

Hämta varje rad:

http://se2.php.net/manual/sv/function.mysql-fetch-array.php

 

Utskrift mha implode():

http://se2.php.net/manual/sv/function.implode.php

 

Link to comment
Share on other sites

Ja, den där parentesen borde jag oxå sett..! SKyller på att jag satt uppe hela natten med phpmanualen.. Allt går runt runt i huvudet..

 

Tack iaf! =)

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...