wat doe ik verkeerd
Code (php)
1
2
3
4
5
2
3
4
5
<?
mysql_pconnect("localhost","","dbbb");
mysql_select_db("fs");
$result = mysql_query("select * from `vids` ORDER BY 'year'");
?>
mysql_pconnect("localhost","","dbbb");
mysql_select_db("fs");
$result = mysql_query("select * from `vids` ORDER BY 'year'");
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?
while($row=mysql_fetch_array($result)) {
$field1 = $row["video"];
$field2 = $row["feat"];
$field3 = $row["year"];
$field4 = $row["album"];
echo "<b>$field1 </b>";
if
(strlen($field2) ==0)
{
echo " ";
}
else
{
echo "<b><i>featuring ".$field2["feat"]."</i></b>";
}
echo "<br><b>Year:</b> $field3 <br><b>Album:</b> $field4<br><br>";
}
?>
while($row=mysql_fetch_array($result)) {
$field1 = $row["video"];
$field2 = $row["feat"];
$field3 = $row["year"];
$field4 = $row["album"];
echo "<b>$field1 </b>";
if
(strlen($field2) ==0)
{
echo " ";
}
else
{
echo "<b><i>featuring ".$field2["feat"]."</i></b>";
}
echo "<br><b>Year:</b> $field3 <br><b>Album:</b> $field4<br><br>";
}
?>
krijg je een foutmelding??
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?
while($row=mysql_fetch_array($result)) {
$field1 = $row["video"];
$field2 = $row["feat"];
$field3 = $row["year"];
$field4 = $row["album"];
echo "<b>$field1 </b>";
if
(strlen($field2) ==0)
{
echo " ";
}
else
{
echo "<b><i>featuring ".$field2."</i></b>";
}
echo "<br><b>Year:</b> $field3 <br><b>Album:</b> $field4<br><br>";
}
?>
while($row=mysql_fetch_array($result)) {
$field1 = $row["video"];
$field2 = $row["feat"];
$field3 = $row["year"];
$field4 = $row["album"];
echo "<b>$field1 </b>";
if
(strlen($field2) ==0)
{
echo " ";
}
else
{
echo "<b><i>featuring ".$field2."</i></b>";
}
echo "<br><b>Year:</b> $field3 <br><b>Album:</b> $field4<br><br>";
}
?>
Goed zo Jan, ik had 'm niet gezien.:(
SanThe:
Goed zo Jan, ik had 'm niet gezien.:(
ik ook niet
PS Donhertog ook bedankt voor je reactie, het probleem is al opgelost
Code (php)
1
2
3
4
5
2
3
4
5
<?php
mysql_pconnect("localhost","","dbbb");
mysql_select_db("fs");
$result = mysql_query("select * from `vids` ORDER BY 'year'");
?>
mysql_pconnect("localhost","","dbbb");
mysql_select_db("fs");
$result = mysql_query("select * from `vids` ORDER BY 'year'");
?>
Hoort er zo uit te zien:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
mysql_pconnect("localhost","","dbbb");
mysql_select_db("fs");
$sql = "
SELECT video, feat, year, album
FROM vids
ORDER BY year ASC
";
if (!$res = mysql_query ($sql)) {
echo '<pre>';
trigger_error (mysql_errno () . ': ' . mysql_error ())
echo "\n";
echo $sql;
echo '</pre>';
}
else {
while (hier je fetch) {
}
}
?>
mysql_pconnect("localhost","","dbbb");
mysql_select_db("fs");
$sql = "
SELECT video, feat, year, album
FROM vids
ORDER BY year ASC
";
if (!$res = mysql_query ($sql)) {
echo '<pre>';
trigger_error (mysql_errno () . ': ' . mysql_error ())
echo "\n";
echo $sql;
echo '</pre>';
}
else {
while (hier je fetch) {
}
}
?>
De verschillen:
• de * is vervangen door expliciete veldnamen omdat dat sneller is
• de backtics zijn weg (die ` dingetjes die alleen MySQL begrijpt)
• by ORDER BY horen geen quotes, en altijd ASC of DESC opgeven voor het overzicht
• query netjes uitschrijven. Is gemakkelijker tijdens het debuggen
• foutafhandeling!!! Last but not least. Als een query mislukt wil je weten waarom, dus genereer een error en echo de query naar het scherm, tijdens het ontwikkelen. Als de site klaar is, kun je ze gaan loggen.
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
De naam 'year' is ook niet zo handig gekozen, year is namelijk ook een functie en ook nog eens een datatype. Dit kan verwarring opleveren. Bedenk een betere naam.
Dit stuk is zinloos:
$field1 = $row["video"];
$field2 = $row["feat"];
$field3 = $row["year"];
$field4 = $row["album"];
Wat is er mis met $row["video"] ? Nu weet je waar dit vandaan komt en wat er in staat. $field1 zegt helemaal niets en kost alleen maar extra geheugen.
Verder overal de variabelen buiten quotes halen, de ene keer doe je dat wel, de andere keer niet.
@ SanThe: ja, hij was venijnig he?
geen spatie tussen functie en haakjes :P
Frank Stel dat ik year nu op termijn zou willen vervangen door maand en jaar, dan ga ik sowieso voor andere namen kiezen, maar kan ik ze "date" noemen als ik geen exacte datum opgeef of krijg ik dan weer problemen?
Thanks!!
Donhertog:
@ Jan Koehoorn
geen spatie tussen functie en haakjes :P
geen spatie tussen functie en haakjes :P
Ja daar moet Bas maar wat op verzinnen hoor. Zo schrijf ik al jaren en dat verleer ik toch niet meer :-)
Jan:
Ja daar moet Bas maar wat op verzinnen hoor. Zo schrijf ik al jaren en dat verleer ik toch niet meer :-)
Donhertog:
@ Jan Koehoorn
geen spatie tussen functie en haakjes :P
geen spatie tussen functie en haakjes :P
Ja daar moet Bas maar wat op verzinnen hoor. Zo schrijf ik al jaren en dat verleer ik toch niet meer :-)
Ik helaas ook.
wat je eenmaal aangeleerd heb kom je moeilijk weer van af
resaj:
wow, ik doe nog erg veel verkeerd! Jan - kan ik de fetch zoals jij die gaf zo overnemen (ipv de fields dan video, feat, "year" en album?Thanks!!
Ja, gewoon zoals je hem had eigenlijk. mysql_fetch_assoc is nog ietsje sneller dan mysql_fetch_array trouwens.
Volgens mij accepteert MySQL ook een datum (met datatype DATE !!!) in het formaat 2006-00-00. Moet je even testen, heb er geen ervaring mee. Wil je hier uitsluitend het jaartal uit halen, dan pak je de MySQL-functie YEAR(), voor maand MONTH(), etc. Zie hoofdstuk 12.5 van de MySQL-handleiding.
SanThe:
Goed zo Jan, ik had 'm niet gezien.:(
ik zie hem nog steeds niet :(
in regel 4 staat dit:
$field2 = $row["feat"];
in regel 18 staat dit:
echo "<b><i>featuring ".$field2["feat"]."</i></b>";
$field2 is geen array. Het moet dus of $row['feat'] zijn, of $field2.
edit: daarom is error_reporting (E_ALL) zo belangrijk. Dan had hij namelijk onmiddellijk een notice gekregen.
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
...uring ".$field2["feat"]."</...
...uring ".$field2."</...
Waarom btw niet $row['feat'] ipv ["feat"]
Zo gebruik ik het altijd
Klaasjan:
Helder :)
Waarom btw niet $row['feat'] ipv ["feat"]
Zo gebruik ik het altijd
Waarom btw niet $row['feat'] ipv ["feat"]
Zo gebruik ik het altijd
Mag allebei. Qua snelheid maken enkele of dubbele quotes geen verschil.