Implode fout.
Code (php)
1
2
3
2
3
$result = mysql_query("SELECT id, genre, subid FROM genres WHERE subid='2'");
$impgnr = implode(",", $result);
echo $impgnr;
$impgnr = implode(",", $result);
echo $impgnr;
En ik krijg deze foutmelding:
Warning: implode() [function.implode]: Invalid arguments passed in /home/*****/domains/*****/public_html/test.php on line 8
line 8 is deze lijn:
$impgnr = implode(",", $result);
Wat is er fout?
Gewijzigd op 01/01/1970 01:00:00 door Kevin Stoove
mysql_fetch_xxxxxx().
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
include 'config.php';
mysql_select_db("testdata", $dbaccess);
$result = mysql_query("SELECT id, genre, subid FROM genres WHERE subid='2'");
while($row = mysql_fetch_array($result))
$impgnr = implode(", ", $result);
{
echo $impgnr;
}
?>
include 'config.php';
mysql_select_db("testdata", $dbaccess);
$result = mysql_query("SELECT id, genre, subid FROM genres WHERE subid='2'");
while($row = mysql_fetch_array($result))
$impgnr = implode(", ", $result);
{
echo $impgnr;
}
?>
Krijg exact dezelfde error...
En als ik het zo doe: (implode onder de while)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
include 'config.php';
mysql_select_db("testdata", $dbaccess);
$result = mysql_query("SELECT id, genre, subid FROM genres WHERE subid='2'");
$impgnr = implode(", ", $result);
while($row = mysql_fetch_array($result))
{
echo $impgnr;
}
?>
include 'config.php';
mysql_select_db("testdata", $dbaccess);
$result = mysql_query("SELECT id, genre, subid FROM genres WHERE subid='2'");
$impgnr = implode(", ", $result);
while($row = mysql_fetch_array($result))
{
echo $impgnr;
}
?>
Dan krijg ik een hele fout uitkomst... namelijk:
5,5,Documentaire,Documentaire,2,2
Terwijl het moet zijn:
Avontuur, Documentaire
Gewijzigd op 01/01/1970 01:00:00 door Kevin Stoove
SanThe schreef op 06.01.2010 12:30:
Je zal eerst nog moeten fetchen.
mysql_fetch_xxxxxx().
mysql_fetch_xxxxxx().
En dan bedoel ik ook EERST fetchen.
Nu dit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
include 'config.php';
mysql_select_db("testdata", $dbaccess);
$result = mysql_query("SELECT id, genre, subid FROM genres WHERE subid='2'");
$row = mysql_fetch_array($result);
$impgnr = implode(", ", $row);
{
echo $impgnr["genre"];
}
?>
include 'config.php';
mysql_select_db("testdata", $dbaccess);
$result = mysql_query("SELECT id, genre, subid FROM genres WHERE subid='2'");
$row = mysql_fetch_array($result);
$impgnr = implode(", ", $row);
{
echo $impgnr["genre"];
}
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
include 'config.php';
mysql_select_db("testdata", $dbaccess);
$result = mysql_query("SELECT id, genre, subid FROM genres WHERE subid='2'");
$row = mysql_fetch_array($result);
// even de inhoud in een echo
print_r($row);
$impgnr = implode(", ", $row);
{
echo $impgnr["genre"];
}
?>
include 'config.php';
mysql_select_db("testdata", $dbaccess);
$result = mysql_query("SELECT id, genre, subid FROM genres WHERE subid='2'");
$row = mysql_fetch_array($result);
// even de inhoud in een echo
print_r($row);
$impgnr = implode(", ", $row);
{
echo $impgnr["genre"];
}
?>
Dit is de code die ik nu gebruik voor degene die dezelfde vraag hadden:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
include 'config.php';
mysql_select_db("testdata", $dbaccess);
$result = mysql_query("SELECT id, genre, subid FROM genres WHERE subid='2'");
while($row = mysql_fetch_array($result))
$impl[] = $row['genre'];
$impgnr = implode(", ", $impl);
{
echo $impgnr;
}
?>
include 'config.php';
mysql_select_db("testdata", $dbaccess);
$result = mysql_query("SELECT id, genre, subid FROM genres WHERE subid='2'");
while($row = mysql_fetch_array($result))
$impl[] = $row['genre'];
$impgnr = implode(", ", $impl);
{
echo $impgnr;
}
?>
Indien iemand een mooiere of kortere versie kent, hoor ik dat graag!
Gewijzigd op 01/01/1970 01:00:00 door Kevin Stoove
Maar het alles behalve logisch.
Je implode nu slecht één veld en geen array().
(Ik moet er vandoor).
Succes.
Gewijzigd op 01/01/1970 01:00:00 door Kevin Stoove
Op deze manier is het netter:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
include 'config.php';
mysql_select_db("testdata", $dbaccess);
$result = mysql_query("SELECT id, genre, subid FROM genres WHERE subid='2'");
while($row = mysql_fetch_array($result)) {
$impl[] = $row['genre'];
}
$impgnr = implode(", ", $impl);
echo $impgnr;
?>
include 'config.php';
mysql_select_db("testdata", $dbaccess);
$result = mysql_query("SELECT id, genre, subid FROM genres WHERE subid='2'");
while($row = mysql_fetch_array($result)) {
$impl[] = $row['genre'];
}
$impgnr = implode(", ", $impl);
echo $impgnr;
?>
Daar draagt jouw tutorial niets aan bij...
Kevin Stoové schreef op 06.01.2010 16:42:
Ik weet hoe je normaal uitleest... echter gaat dit puur om de implode...
Daar draagt jouw tutorial niets aan bij...
Daar draagt jouw tutorial niets aan bij...
Maar waarschijnlijk heb je wel meerdere genres in één veld zitten.
Dat is niet de bedoeling. Als je het goed (en handig en beter en en en) wilt doen, dan zou je de genres in een aparte tabel moeten opslaan en dan in een andere tabel koppel je die weer aan het iets (boek, cd, video, dvd).
Mijn database is gemaakt als:
film
- id
- titel
genres
- id
- genre
filmgenres
- filmid
- genreid
Ik gebruik altijd koppeltabellen.
In het tabel 'genres' zitten dus rows als:
1 - Avontuur
2 - Actie
3 - Komedie
etcetera... en in het tabel 'filmgenres' zitten dus rows als
1 - 3
2 - 1
3 - 1
4 - 2
4 - 3
5 - 1
6 - 2
etcetera. Nu heeft de film met id '4' dus 2 genres. Namelijk genre met id 2 en genre met id 3 (dus Actie & Komedie).
Databases heb ik nooit moeite mee, die normaliseer ik altijd.