Avatar billede philip1804 Nybegynder
21. maj 2005 - 04:00 Der er 5 kommentarer og
2 løsninger

kolonne istedet for række, mysql

Når jeg bruger mysql_fetch_array() for en en række ud, men jeg ønsker at få en kollonne.

Hvis man har en tabel som denne:

liv  point  bomber
1      3      5
2      5      4

Så får man 1, 3 og 5 som resultat og derefter 2, 5 og 4, men jeg ønsker at få 1 og 2 som resultat derefter 3 og 5, og tilsidst 5 og 4. Hvordan gør jeg det??
Avatar billede philip1804 Nybegynder
21. maj 2005 - 04:03 #1
ligesom når man vælger "lodret" visning i phpmyadmin
Avatar billede busschou Praktikant
21. maj 2005 - 10:10 #2
Det vil jeg ikke mene man kan hive ud sådan lige. Det normale er jo at fange en række og de fleste databaser er optimeret til dette.
Du kan benytte mysql_data_seek til at søge resultatet igennem op og ned og op igennem rækkerne så tosset du vil
http://dk2.php.net/manual/en/function.mysql-data-seek.php
Mit bedste bud for dig er altså at hive dit resultat ud.
Som i dit eksempel så lave en løkke som løber ligeså mange gange som der er kolonner i tabellen, derunder lige så mange gange som der er rækker i tabellen og derigennem hiver hver kolonne ud
Avatar billede busschou Praktikant
21. maj 2005 - 10:15 #3
En anden mulighed er jo at hive dem ud hver for sig
$liv = "Select liv From tabel"
$point = "Select point From tabel"
$bomber = "Select bomver From tabel"
--
Det lyder som om det kun er rent layout mæssigt at du ønsker en ændring. Så det burde være nemt nok ved tre queries.
Hvis du ved der er som i dit eksempel fx 2 indlæg så kan du jo også bruge union(vel at mærke fordi datatypen er den samme, nemlig int)
$total = $liv.' Union '.$point.' Union '.$bomber
Derved får du een lang kolonne med dem i rækkefølge sådan her:
--
1
2
3
5
5
4
--
Og da du ved der er tre kolonner kan du dividere antallet med tre så du får to. Når du så loopeer resultatet igennem tjekker du på modulus 2 og skifter række
Avatar billede coderdk Praktikant
21. maj 2005 - 11:08 #4
$result = array();
while ( $row = mysql_fetch_assoc( $handle ) )
{
  foreach ( $row as $key => $val )
  {
      $result[$key][] = $val;
  }
}

print_r( $result );

Så har du altså $result['liv'] = array( 1, 2 ); $result['point'] = array( 3, 5 ); osv...
Avatar billede philip1804 Nybegynder
21. maj 2005 - 12:11 #5
tak for det - jeg bruger coderdk's løsning, men smid begge et svar - så jeg kan fordele lidt point
Avatar billede busschou Praktikant
21. maj 2005 - 12:14 #6
oki doki.. coderdk skrev jo nok også det mest brugbare :o)
Avatar billede coderdk Praktikant
21. maj 2005 - 12:49 #7
Alrighty :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester