[mysql &php] Alle kolommen naar een variabele!

Pagina: 1
Acties:

  • Snow_King
  • Registratie: April 2001
  • Laatst online: 15-09 16:38

Snow_King

Konijn is stoer!

Topicstarter
Hallo,

Ik heb nu een tabel in mijn MySQL DB en die heeft 69 kolommen.

Nu is het natuurlijk een rot werk om steeds dit te doen
code:
1
    $v1 = $row["kolom"];

SI er niet een syntax waarmee PHP alle kolommen omzet naar een variabel

bijv. een kolom heet 'naam' en php maakt er dan automatisch '$naam' van.

Ik heb al op php.net en op mysql.com gezocht maar kon het niet vinden.

Weet iemand hoe dat moet? bvd!

Verwijderd

dan gebruik je toch gewoon $row["kolom"];... Dit is een array, die kun je altijd als var gebruiken. Let wel op dat je soms dit soort dingen moet doen:
PHP:
1
2
3
<?
print "De volgende var is een array:". $row["kolom"] .", vind je het niet geweldig?";
?>

  • HenkS
  • Registratie: Mei 2000
  • Laatst online: 19:57

HenkS

Da_king alias HenkS


  • Snow_King
  • Registratie: April 2001
  • Laatst online: 15-09 16:38

Snow_King

Konijn is stoer!

Topicstarter
Op donderdag 31 januari 2002 18:42 schreef jurriebur het volgende:
dan gebruik je toch gewoon $row["kolom"];... Dit is een array, die kun je altijd als var gebruiken. Let wel op dat je soms dit soort dingen moet doen:
PHP:
1
2
3
<?
print "De volgende var is een array:". $row["kolom"] .", vind je het niet geweldig?";
?>
dus zoiets als dit?
code:
1
2
3
4
while ( $row = mysql_fetch_array($result) )
{
". $row["kolom"] ."
}

  • Snow_King
  • Registratie: April 2001
  • Laatst online: 15-09 16:38

Snow_King

Konijn is stoer!

Topicstarter
Op donderdag 31 januari 2002 18:47 schreef HenkS het volgende:
bedoel je dit:

http://www.php.net/manual/en/function.mysql-field-name.php
zet die automatisch alles om? nee toch? moet je toch ook nog zelf doen?

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Volgens mij moet je eens hevig gaan nadenken of je database model wel correct is... zoveel kolommen?

Je wilt trouwens variabele variabelen gaan gebruiken.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • Apache
  • Registratie: Juli 2000
  • Laatst online: 14-09 22:46

Apache

amateur software devver

Op donderdag 31 januari 2002 18:51 schreef Snow_King het volgende:

[..]

zet die automatisch alles om? nee toch? moet je toch ook nog zelf doen?
be creative

ff een voorbeeldje gebouwd met hun voorbeeld :)
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?
$link = mysql_connect('localhost', $user, "secret");
mysql_select_db($dbname, $link)
    or die("Could not set $dbname");
$res = mysql_query("select * from users", $link);
$data = mysql_fetch_array($res);

for ($i=0;$i<=69;$i++){
  // alle kolomnamen doorlopen
  $newvarname = mysql_field_name($res, $i);
  $$newvarname = array();

    for($n=0;$n<count($data[$i]);$n++){

      $$newvarname[] = $data[$i][$n];

    } 
}
?>

oid ;)

If it ain't broken it doesn't have enough features


Verwijderd

Op donderdag 31 januari 2002 18:47 schreef Snow_King het volgende:

[..]

dus zoiets als dit?
code:
1
2
3
4
while ( $row = mysql_fetch_array($result) )
{
". $row["kolom"] ."
}
nee, niet helemaal...
PHP:
1
2
3
4
5
6
<?
$sql = mysql_query("SELECT * FROM tabel");
while($row = mysql_fetch_array($sql)){
    print "nog eens". $row[kolom] ."eerste voorbeeld geeft waarschijnlijk een dikke vette parse error :)";
}
?>

een array print soms niet goed uit, daarom ga je uit de normale print functie, en print je de array uit, dan ga je er weer in met >."<. De array zelf is eigenlijk een var. Ik zou maar eens in de FAQ iets gaan lezen over array's.

  • Snow_King
  • Registratie: April 2001
  • Laatst online: 15-09 16:38

Snow_King

Konijn is stoer!

Topicstarter
Op donderdag 31 januari 2002 19:05 schreef Apache het volgende:

[..]

be creative

ff een voorbeeldje gebouwd met hun voorbeeld :)
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?
$link = mysql_connect('localhost', $user, "secret");
mysql_select_db($dbname, $link)
    or die("Could not set $dbname");
$res = mysql_query("select * from users", $link);
$data = mysql_fetch_array($res);

for ($i=0;$i<=69;$i++){
  // alle kolomnamen doorlopen
  $newvarname = mysql_field_name($res, $i);
  $$newvarname = array();

    for($n=0;$n<count($data[$i]);$n++){

      $$newvarname[] = $data[$i][$n];

    } 
}
?>

oid ;)
doesn't work :( geen errors

  • Snow_King
  • Registratie: April 2001
  • Laatst online: 15-09 16:38

Snow_King

Konijn is stoer!

Topicstarter
Op donderdag 31 januari 2002 18:57 schreef dusty het volgende:
Volgens mij moet je eens hevig gaan nadenken of je database model wel correct is... zoveel kolommen?

Je wilt trouwens variabele variabelen gaan gebruiken.
het zijn der uiteindelijk 34

  • Apache
  • Registratie: Juli 2000
  • Laatst online: 14-09 22:46

Apache

amateur software devver

Op donderdag 31 januari 2002 20:04 schreef Snow_King het volgende:

[..]

doesn't work :( geen errors
let vooral op mijn be creative

als je er echt niet uitkomt debug ik mijn code wel :P

If it ain't broken it doesn't have enough features


Verwijderd

Op donderdag 31 januari 2002 20:08 schreef Apache het volgende:

[..]

als je er echt niet uitkomt debug ik mijn code wel :P
je bent gek :)
(niet te letterlijk plz :P)

ik denk dat je met mijn reply er wel uit moet komen, dat is gewoon de simpelste/snelste manier. Je hoeft er eigenlijk niks mee te doen, query uitpoepen en je kunt meteen de array's gebruiken, hoef je niet eens eerst nog een while ding uit te voeren (als je een while in een while gaat uitvoeren, dan trekt dat de speed heel erg omlaag... alsof een olifant achter een f1 wagen gaat hangen zeg maar ;))

  • Apache
  • Registratie: Juli 2000
  • Laatst online: 14-09 22:46

Apache

amateur software devver

Op donderdag 31 januari 2002 22:01 schreef jurriebur het volgende:

[..]

je bent gek :)
(niet te letterlijk plz :P)

ik denk dat je met mijn reply er wel uit moet komen, dat is gewoon de simpelste/snelste manier. Je hoeft er eigenlijk niks mee te doen, query uitpoepen en je kunt meteen de array's gebruiken, hoef je niet eens eerst nog een while ding uit te voeren (als je een while in een while gaat uitvoeren, dan trekt dat de speed heel erg omlaag... alsof een olifant achter een f1 wagen gaat hangen zeg maar ;))
np, sinds Jotti me gek noemde vat ik het enkel nog maar op als een compliment ;)

met jouw voorbeeld heeft hij nog niet echt wat hij wil denk ik, je zal zoiezo zoals Dusty al opmerkte een variable variablenaam moeten gebruiken (niet dat ik er echt voorstander van ben, duid volgens mij op slecht ontwerp/implementatie) maar bij jouw voorbeeld moet hij het nog toekennen aan een nieuwe variable (iig hij gaf toch aan dat hij de variable nog moest toekennen aan een andere, en die kan je waarschijnlijk wel de naam van de kolomnaam geven dmv mysql_field_name()) en zijn result set zal waarschijnlijk ook nog meerdere rows bevatten dus moet je al naar een associative array toe.

Wijs me erop als ik uit m'n nek aan het lullen ben ;)

If it ain't broken it doesn't have enough features


Verwijderd

Waarom zo ingewikkeld elke kolom heeft toch al een en je stopt de gegevens in een arrays dus deze functie lijkt mij het handigst.
PHP:
1
2
3
4
<?
$data = mysql_fetch_array($res);
extract($data);
?>

zodat alle variable uit de array de naam de kolom krijgen waar ze uit komen.

  • Apache
  • Registratie: Juli 2000
  • Laatst online: 14-09 22:46

Apache

amateur software devver

Op donderdag 31 januari 2002 23:09 schreef borganism het volgende:
Waarom zo ingewikkeld elke kolom heeft toch al een en je stopt de gegevens in een arrays dus deze functie lijkt mij het handigst.
PHP:
1
2
3
4
<?
$data = mysql_fetch_array($res);
extract($data);
?>

zodat alle variable uit de array de naam de kolom krijgen waar ze uit komen.
woops, vergeten dat php voor alles een functie heeft :X :P

If it ain't broken it doesn't have enough features


Verwijderd

Ook weer niet voor alles, wel voor veel dingen maar zeker niet voor alles.
Pagina: 1