wat doe ik verkeerd

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ventilatiesysteem Productontwikkelaar HBO WO Verwa

Samengevat: Zij bieden flexibele ventilatiematerialen, geluidsdempers, rookgasafvoer producten en industrieslangen. Ben jij een technisch productontwikkelaar? Heb jij ervaring met het ontwikkelen van nieuwe producten? Vaste baan: Technisch Productontwikkelaar HBO WO €3.000 - €4.000 Zij bieden een variëteit aan flexibele ventilatiematerialen, geluiddempers, rookgasafvoer producten, industrieslangen en ventilatieslangen voor de scheepsbouw. Met slimme en innovatieve materialen zorgen wij voor een gezonde en frisse leefomgeving. Deze werkgever is een organisatie die volop in ontwikkeling is met hardwerkende collega's. Dit geeft goede ontwikkelingsmogelijkheden. De branche van dit bedrijf is Techniek en Engineering. Functie: Voor de vacature als Technisch Productontwikkelaar Ede Gld HBO WO ga

Bekijk vacature »

Pagina: 1 2 volgende »

Resaj

resaj

20/07/2006 21:14:00
Quote Anchor link
't is op basis van een deel van een code die ik een paar dagen geleden in dit forum zag, hij doet alleen een ding verkeerd: de variable field 2 (ik noem hem ook mar even "feat" want ook bij mij wordt ie niet voor iedere case ingevuld) levert weliswaar de tekst featuring op wanneer dat zo hoort te zijn, maar daarnaast slechts de eerste letter van het woord / de woorden die er zouden moeten staan. Help!

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
mysql_pconnect("localhost","","dbbb");
mysql_select_db("fs");
$result = mysql_query("select * from `vids` ORDER BY 'year'");
?>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>";
}

?>
 
PHP hulp

PHP hulp

17/11/2024 13:20:06
 
Gerben G

Gerben G

20/07/2006 21:23:00
Quote Anchor link
wat doet het niet:

krijg je een foutmelding??
 
Gerben G

Gerben G

20/07/2006 21:24:00
Quote Anchor link
en zet dit even boven aan je script

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
error_reporting(E_ALL);
?>



en
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
or die (mysql_error());
?>

na elke query die je uitvoert
Gewijzigd op 01/01/1970 01:00:00 door Gerben G
 
Jan Koehoorn

Jan Koehoorn

20/07/2006 21:24:00
Quote Anchor link
En zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>";
}

?>
 
- SanThe -

- SanThe -

20/07/2006 21:26:00
Quote Anchor link
Goed zo Jan, ik had 'm niet gezien.:(
 
Gerben G

Gerben G

20/07/2006 21:27:00
Quote Anchor link
SanThe:
Goed zo Jan, ik had 'm niet gezien.:(



ik ook niet
 
Resaj

resaj

20/07/2006 21:30:00
Quote Anchor link
Thnx Jan hij werkt! Geweldig, met dit format kan ik zowat alle gegevens voor mijn site automatiseren. Super! Thnx again :-)

PS Donhertog ook bedankt voor je reactie, het probleem is al opgelost
 
Jan Koehoorn

Jan Koehoorn

20/07/2006 21:30:00
Quote Anchor link
En dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
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)
PHP script in nieuw venster Selecteer het PHP script
1
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) {
        
        }
    }

?>

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
 
Frank -

Frank -

20/07/2006 21:30:00
Quote Anchor link
De query is niet goed, de kolomnaam 'year' hoort niet tussen quotes of andere rommel (bv. backtics `) te staan. Verder controleer je nergens of de query wel is gelukt en dat terwijl je de garantie hebt dat deze vroeg of laat zal mislukken.

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.
 
Jan Koehoorn

Jan Koehoorn

20/07/2006 21:31:00
Quote Anchor link
@ SanThe: ja, hij was venijnig he?
 
Gerben G

Gerben G

20/07/2006 21:37:00
Quote Anchor link
@ Jan Koehoorn

geen spatie tussen functie en haakjes :P
 
Resaj

resaj

20/07/2006 21:39:00
Quote Anchor link
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?

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!!
 
Jan Koehoorn

Jan Koehoorn

20/07/2006 21:41:00
Quote Anchor link
Donhertog:
@ Jan Koehoorn

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 :-)
 
Gerben G

Gerben G

20/07/2006 21:42:00
Quote Anchor link
Jan:
Donhertog:
@ Jan Koehoorn

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
 
Jan Koehoorn

Jan Koehoorn

20/07/2006 21:43:00
Quote Anchor link
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.
 
Frank -

Frank -

20/07/2006 21:45:00
Quote Anchor link
date is ook weer een slechte naam, het zegt niks over de betekenis. Ja, een datum. Maar welke datum? Welke betekenis heeft deze datum? Is het de datum waarop de video is gemaakt, geupload of nog iets anders? upload_date is bijvoorbeeld een betere naam, dan weet je direct wat de betekenis van deze datum is. Mocht je dan ook nog een datum hebben waarom de video is gemaakt, date_video_created, dan heb je geen probleem met de verschillende namen.

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.
 
Klaasjan Boven

Klaasjan Boven

20/07/2006 21:50:00
Quote Anchor link
SanThe:
Goed zo Jan, ik had 'm niet gezien.:(


ik zie hem nog steeds niet :(
 
Jan Koehoorn

Jan Koehoorn

20/07/2006 21:53:00
Quote Anchor link
@Klaasjan:

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
 
- SanThe -

- SanThe -

20/07/2006 21:53:00
Quote Anchor link
@Klaasjan:
...uring ".$field2["feat"]."</...

...uring ".$field2."</...
 
Klaasjan Boven

Klaasjan Boven

20/07/2006 21:54:00
Quote Anchor link
Helder :)
Waarom btw niet $row['feat'] ipv ["feat"]
Zo gebruik ik het altijd
 
Jan Koehoorn

Jan Koehoorn

20/07/2006 21:55:00
Quote Anchor link
Klaasjan:
Helder :)
Waarom btw niet $row['feat'] ipv ["feat"]
Zo gebruik ik het altijd

Mag allebei. Qua snelheid maken enkele of dubbele quotes geen verschil.
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.