Meerdere item's, een luss of iets?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kmware

kmware

11/02/2007 13:41:00
Quote Anchor link
Ik haal op de volgende manier mijn items op:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
$query = "SELECT *
FROM `nieuws` ";
$result = mysql_query($query, $link_id);
$row = @mysql_fetch_array($result);

$titel = ucfirst(htmlentities($row['titel']));

En dan echo ik gewoon $titel, maar er staan natuurlijk meerdere nieuws items in. Dus voor elk item moet er een div aangemaakt worden waar dan de titel en datum in woorden gegeven.

Hoe maak ik dit?, ik heb wel eens van lussen gehoord maar heb geen flauw idee hoe ze werken.
Gewijzigd op 01/01/1970 01:00:00 door Kmware
 
PHP hulp

PHP hulp

25/01/2025 20:05:53
 
Stien ss

stien ss

11/02/2007 13:47:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
while ( $row = mysql_fetch_array ( $query, MYSQL_ASSOC ) ) {
     // Maak hier je div aan
}
?>
Gewijzigd op 01/01/1970 01:00:00 door stien ss
 
Bo az

Bo az

11/02/2007 13:49:00
Quote Anchor link
Hier heb je een where lus nodig.

Om te beginnen moet je de ` (bakcticks) uit je query halen.
En dan moet je fetch_array in een while zetten, overigens is fetch_assoc net iets snellen daar zal ik dan ook een voorbeeld mee geven:

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
<?php

// backticks weg:
$query = "SELECT * FROM nieuws;";

// @ weg, die onderdrukt alleen als er iets fout gaat:
$result = mysql_query($query, $link_id) or trigger_error(mysql_error());

// een while:
while($row = mysql_fetch_assoc($result)){
    //Iedere titel op een nieuwe regel:
    echo ucfirst(htmlentities($row['titel'])).'<br>';
}


?>
Gewijzigd op 01/01/1970 01:00:00 door Bo az
 
Kmware

kmware

11/02/2007 14:08:00
Quote Anchor link
Krijg er nog steeds maar 1 uit?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
while($row = mysql_fetch_assoc($result)){
    //Iedere titel op een nieuwe regel:
    echo "<TD>".$merk."</TD>";
}

?>
 
Stefan van Iwaarden

Stefan van Iwaarden

11/02/2007 14:25:00
Quote Anchor link
je moet $merk waarschijnlijk vervangen door $row['merk'].

Daarnaast moet je jezelf er ook van verzekeren dat je meerdere records in je tabel hebt staan die je selecteert met je query.

Voor de rest klopt je code wel gewoon.
 
Kmware

kmware

11/02/2007 14:33:00
Quote Anchor link
Dit snap ik niet:
Daarnaast moet je jezelf er ook van verzekeren dat je meerdere records in je tabel hebt staan die je selecteert met je query.

En $merk = $merk = ucfirst(htmlentities($row['merk']));
 
Nick Mulder

Nick Mulder

11/02/2007 14:39:00
Quote Anchor link
ucfirst maakt van de eerste letter een hoofdletter
html entities zorgt ervoor dat de html die in de db niet geparsed wordt om het zo ff te noemen

Met dat andere bedoelt hij dat je moet kijken of er wel echt meerdere rijen uit de query komen
Gewijzigd op 01/01/1970 01:00:00 door Nick Mulder
 
Bo az

Bo az

11/02/2007 14:40:00
Quote Anchor link
Je moet dus meerdere rijen in je database hebben.

En vervang $merk eens door $row['merk']; waarom 2 variabelen met dezelfde inhoud!?
 
Kmware

kmware

11/02/2007 14:42:00
Quote Anchor link
Op $merk worden gelijk de hoofletterenz toegepast, schilder veel werk als je het meer moet gaan gebruiken.

Er staan 300% 2 items in (zie ze staan in phpmyadmin)
 
Bo az

Bo az

11/02/2007 14:45:00
Quote Anchor link
Ok, het is misschien handig dit later te hebben, maar heb je de toewijzing dan wel binnen de while lust? dat zag ik namelijk niet in het stukje code wat je gaf?

Edit:
Bovendien is het dan nog overbodig 2 variabelen te hebben als je de eerste niet meer gebruikt doe dan:
$row['iets'] = functie($row['iets']);
Gewijzigd op 01/01/1970 01:00:00 door Bo az
 
Kmware

kmware

11/02/2007 14:55:00
Quote Anchor link
Mijn hele code:

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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
include ('db.php');

$query = "SELECT * FROM autos;";
$result = mysql_query($query, $link_id) or trigger_error(mysql_error());
$row = mysql_fetch_array($result);

$merk = ucfirst(htmlentities($row['merk']));
$model = ucfirst(htmlentities($row['model']));
$prijs = ucfirst(htmlentities($row['prijs']));
$kleur = ucfirst(htmlentities($row['kleur']));
$bouwjaar = ucfirst(htmlentities($row['bouwjaar']));
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<TABLE BORDER="1" ALIGN="left">
<TR>
<TD>Foto:</TD>
<TD WIDTH="250" >Merk:</TD>
<TD WIDTH="250">Model</TD>
<TD WIDTH="250">Kleur:</TD>
<TD WIDTH="250">Prijs:</TD>
</TR>
<TR>
<?php
while($row = mysql_fetch_assoc($result)){
$merk = ucfirst(htmlentities($row['merk']));
    //Iedere titel op een nieuwe regel:
    echo "<TD>fotp</TD>";
    echo "<TD>". $row['merk'] ."</TD>";
}

?>

</TR>
</body>
</html>
 
Bo az

Bo az

11/02/2007 15:52:00
Quote Anchor link
Maak van je hele code eens dit:

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
<?php

include ('db.php');

// backticks weg:
$query = "SELECT * FROM autos;";

// @ weg, die onderdrukt alleen als er iets fout gaat:
$result = mysql_query($query, $link_id) or trigger_error(mysql_error());

// een while:
while($row = mysql_fetch_assoc($result)){
    //Iedere titel op een nieuwe regel:
    echo ucfirst(htmlentities($row['merk'])).'<br>';
}


?>


Wat is dan het resultaat?
 
Kmware

kmware

11/02/2007 17:26:00
Quote Anchor link
Dan krijg ik ze wel allerbij!
Kan ik nu gewoon echo ucfirst(htmlentities($row['blah'])).'<br>';
onder echo ucfirst(htmlentities($row['merk'])).'<br>';

zetten om meet dingen optehalen?
 



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.