login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Arrays en implode

Offline eric - 28/08/2005 16:27
Avatar van ericHTML interesse Ik ben sinds vandaag een beetje aan het klooien met arrays. Op Php.net gekeken enzo, maar toch lukt het me niet om iets werkend te maken van dingen die je uit de DB haalt. Ik heb het zo in de DB staan: taak1, taak2
Het leek me dat het met het onderstaande scriptje wel moest lukken, maar helaas niet. Wat doe ik hier nu fout aan?

  1. $taken = array();
  2. $taken = implode(",", $row->taak);
  3. echo "$taken";

8 antwoorden

Gesponsorde links
Offline XenoX - 28/08/2005 16:45
Avatar van XenoX Gouden medailleGouden medaille

PHP expert
  1. <?php
  2. // Uit elkaar halen
  3. $taken = explode(',', $row->taak);
  4. print_r($taken);
  5.  
  6. // In elkaar zetten
  7. $im = implode(',', $taken);
  8. echo $im;
  9. ?>
Offline Tuinstoel - 28/08/2005 16:45 (laatste wijziging 28/08/2005 16:47)
Avatar van Tuinstoel PHP expert Het lijkt me sterk dat $row->taak een array is, moet je niet explode() hebben?

[edit]
oehoe laat...
Offline eric - 28/08/2005 17:01 (laatste wijziging 28/08/2005 17:01)
Avatar van eric HTML interesse Ik heb dit er nu even van geknutseld:
  1. $taken = explode(',', $row->taak);
  2. print_r($taken);
  3.  
  4. $taken[] = '<a href=\"?pagina=team/index&actie=cat&team_naam="'.$row->taak.'"\">'.$row['taak'].'</a>';
  5. // In elkaar zetten
  6. $im = ''.$row->naam.' zit in de: ';
  7. $im .= implode('<br> ', $taken);
  8. echo $im;
En hij laat nu dit zien:

Array ( [0] => Redactie [1] => Minis ) pietje zit in de: Redactie
Minis.

Hoe krijg ik dan dat eerste stuk weg en waarom werken de links niet?
Offline Fenrir - 28/08/2005 18:14 (laatste wijziging 28/08/2005 18:15)
Avatar van Fenrir PHP expert Je database-structuur is fout als je explode moet gebruiken.

Maar liever een aparte tabel taken:

taken
ID
naam

Anders maak je makkelijke dingen moeilijk.
Offline eric - 28/08/2005 18:26 (laatste wijziging 28/08/2005 18:31)
Avatar van eric HTML interesse Ik heb het ook zo in de db staat! voorbeeldje zoals het bij mij staat in de DB: id | naam |Gbnaam | taak |. En dan staat ik het veld van taak: Taak1, taak2. En ik krijg het eruit alleen is het probleem dat het me niet lukt om aan die array ook een link mee te geven. Zie mn vorige post..

Edit sorry ff verkeerd gelezen Ja dat zou idd makkelijker zijn. Maar als ik dat zou doen zou ik een aantal dingen in 2 tabellen aan moeten passen. En ik d8 dat er ook wel een manier zou moeten zijn om het sneller te kunnen doen.
Offline Fenrir - 28/08/2005 18:34
Avatar van Fenrir PHP expert Ik zou het toch maar veranderen als ik jou was. Dit is 1. sneller. En 2. je leert jezelf dan goede database-structuren ontwerpen. Een foute database-structuur zorgt meestal voor code die zeker 2x lastiger te begrijpen is, en 1.5x langer is.
Offline eric - 28/08/2005 20:02 (laatste wijziging 28/08/2005 20:10)
Avatar van eric HTML interesse Ok ik heb ze dus nu in een aparte tabel gezet, en nu wil ik dat die met een while lus alle pids van het profiel waar je nu naar kijkt uit de tabel taken haalt. Maar op een of andere manier haalt die er bij sommige mensen maar 1 uit, terwijl ze toch 2 of meer taken hebben.

  1. <?PHP
  2. $query2 = mysql_query("select * from taken where pid='".$_GET["id"]."'");
  3. $lijst = mysql_fetch_object($query2);
  4.  
  5. if(empty($lijst->taak)){
  6. echo "";
  7. } else {
  8. echo "<br><table width=\"100%\"><tr><td bgcolor=\"#f0f0f0\" colspan=\"2\">$lijst->naam heeft de functie(s):</td></tr><tr><td>";
  9. while ($lijst = mysql_fetch_object($query2)) {
  10. echo "<a href=\"?pagina=taak&taak=$lijst->taak\">$lijst->taak</a><br>";
  11. }
  12. }
  13. ?>
Offline Thomas - 29/08/2005 07:35
Avatar van Thomas Moderator Je moet kijken of je query iets oplevert is ($query2), niet of je eerste query-resultaat leeg is. Je haalt dan al een resultaatrij op waar je niets mee doet (regel 3) ...
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.219s