[php] array & databeest

Pagina: 1
Acties:

  • cemtex
  • Registratie: Januari 2000
  • Laatst online: 22-04 20:52

cemtex

Version 1.1.1

Topicstarter
Ik wil een 5 tal gegevens inlezen uit een db en in een array zetten zodat ik deze later kan oproepen met voorbeeld[1] etc..

Nou had ik dit
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?
While ($row = mysql_fetch_array($result)) {
                $tel = $row[teller] ; 

                $id[$tel] = $row[id];
                $naam[$tel]  = $row[naam] ;
                $bureau[$tel]  = $row[bureau] ;
                $opdrachtgever[$tel]  = $row[opdrachtgever] ;
                $soort[$tel]  = $row[soort] ;
                $samengewerkt[$tel]  = $row[samengewerkt] ;
} // end while
?>

waar teller gewoon een count(id) was ..
Alleen onthoud hij de waarde alleen maar als hij in de loop zit en anders niet ... hoe kan ik dit oplossen ...

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

Op deze manier doet ie t gewone elke rij opnieuw. Als je het hele resultaat (meer dan een rij) wil opslaan, moet je er een multidimensionale array van maken.

Rustacean


  • cemtex
  • Registratie: Januari 2000
  • Laatst online: 22-04 20:52

cemtex

Version 1.1.1

Topicstarter
Hoe ? :? en dat snap ik dus niet

Verwijderd

Ik weet niet zeker wat je precies bedoeld, maar als je een array wilt gaan gebruiken dan zul je hem toch eerst moeten definieren...

$bla = array();

en dan met de functie array_push bijvoorbeeld kan je er dingen aan toevoegen...

HTH

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

DiStance:
Ik weet niet zeker wat je precies bedoeld, maar als je een array wilt gaan gebruiken dan zul je hem toch eerst moeten definieren...

$bla = array();

en dan met de functie array_push bijvoorbeeld kan je er dingen aan toevoegen...
ehhhhm nee.

wat Manuzhai volgens mij bedoelt is dit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
while ( $row = mysql_fetch_array ( $result, MYSQL_ASSOC ) )
   $gegevens [ $row [ "teller" ] ] = $row;

// deze even zodat je ziet hoe de array gegevens eruit ziet:
var_dump ( $gegevens )

// oftewel lees het nu zo uit:
echo "Naam: ", $gegevens [ 1 ] [ "naam" ];
/* +---------------------^     ^
   |            +----------+
Eerste dimensie     |
         Tweeede dimensie
kortom multidimensionale array
*/

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

Op woensdag 13 februari 2002 14:20 schreef cemtex het volgende:
$tel = $row[teller] ;
waar teller gewoon een count(id) was ..
Laat de query eens zien, als er geen group by oid in zit dan heeft count(id) toch voor elke row dezelfde waarde & overschrijf je elke x de vorige waarde ?

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

Op woensdag 13 februari 2002 14:23 schreef Manuzhai het volgende:
Op deze manier doet ie t gewone elke rij opnieuw. Als je het hele resultaat (meer dan een rij) wil opslaan, moet je er een multidimensionale array van maken.
Er is toch al een 'multidimensionaal' array gecreerd door elke column waarde uit een row in een apart array te stoppen ?

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

TheRookie:
Er is toch al een 'multidimensionaal' array gecreerd door elke column waarde uit een row in een apart array te stoppen ?
Nee, hoor. Alleen een zwik enkelvoudige arrays :)

Je punt over group by is idd wel een goeie...

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Grum
  • Registratie: Juni 2001
  • Niet online
PHP:
1
2
3
4
5
<?
$theRows = array();
while ($tmpRow = mysql_fetch_assoc($result))
    $theRows[] = $tmpRow;
?>

doel je daar niet op ? :)

nu heb je gewoon $theRows[ROWNUM][FIELDNAME]

dus $theRows[10]['Id'] zou et 11'de id-veld zijn

[edit]
PHP:
1
2
3
4
5
<?
$theRows = array();
while ($tmpRow = mysql_fetch_assoc($result))
    $theRows[$tmpRow['Id']] = $tmpRow;
?>

en zo heb je ze per Id in je array

dus wil je de info over Id 10 doe je gewoon iets als:

$theInfoOverId10 = $theRows[10];

:)

[edit2]
zet voor de grap es:

error_reporting(E_ALL);

boven je code .. je hebt nl al 7 warnings in dat stukje code zitten.

  • drZymo
  • Registratie: Augustus 2000
  • Laatst online: 09-08 22:22
Op woensdag 13 februari 2002 15:26 schreef Grum_ het volgende:
[edit2]
zet voor de grap es:

error_reporting(E_ALL);

boven je code .. je hebt nl al 7 warnings in dat stukje code zitten.
:P

hint: In $row[blabla] wat is blabla?? een functie?? een fietsbel?? of zou het een string moeten zijn ?? :P

"There are three stages in scientific discovery: first, people deny that it is true; then they deny that it is important; finally they credit the wrong person."


  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

Op woensdag 13 februari 2002 15:22 schreef drm het volgende:
[..]
Nee, hoor. Alleen een zwik enkelvoudige arrays :)
Ok, maar resultaat is 't zelfde ;) (drom had ik er ook '' om gezet)
Door voor elk Array dezelfde ID aan te spreken kan je ook alle data op halen :P


Wat cemtex probeert zou gewoon moeten werken, mits die $tel idd elke keer een andere waarde krijgt. Je loopt alleen tegen lege array-waarden aan als er rows verwijderd zijn (springt $tel van 10 naar 15 ofzo). De vraag is of dat wenselijk is.
PHP:
1
2
3
4
5
6
7
8
9
<?
$index=0;
while ..... {
   $id[$index]=$row[id];
   .....
   $samengewerkt[$index] = $row[samengewerkt];
   $index++;
}
?>

zou ook moeten werken & ben je niet meer "afhankelijk" van $tel

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

drZymo:
hint: In $row[blabla] wat is blabla?? een functie?? een fietsbel?? of zou het een string moeten zijn ?? :P
Het zou in de FAQ moeten dat die notatie helemaal niet correct is, en alleen maar gedoogd....
TheRookie:
Ok, maar resultaat is 't zelfde ;) (drom had ik er ook '' om gezet)
mwah ik vind een array overzichtelijker, maar je kunt idd hetzelfde ermee bereiken :)
Door voor elk Array dezelfde ID aan te spreken kan je ook alle data op halen :P
Daar heb je gelijk in :)
Wat cemtex probeert zou gewoon moeten werken, mits die $tel idd elke keer een andere waarde krijgt. Je loopt alleen tegen lege array-waarden aan als er rows verwijderd zijn (springt $tel van 10 naar 15 ofzo). De vraag is of dat wenselijk is.
PHP:
1
2
3
4
5
6
7
8
9
<?
$index=0;
while ..... {
   $id[$index]=$row[id];
   .....
   $samengewerkt[$index] = $row[samengewerkt];
   $index++;
}
?>

zou ook moeten werken & ben je niet meer "afhankelijk" van $tel
Zou ook mijn voorkeur hebben, maar ik kan me ook voorstellen dan cemtex liever als index een bepaald veld uit de db heeft :)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

Op woensdag 13 februari 2002 16:03 schreef drm het volgende:
[..]

Zou ook mijn voorkeur hebben, maar ik kan me ook voorstellen dan cemtex liever als index een bepaald veld uit de db heeft :)
Waarom dan niet
$tel = $row[id];
i.p.v.
$tel = $row[teller];

of zou ie dat bedoelen :?

met "je" bedoelde ik cemtex, niet jou *D
Pagina: 1