[PHP / MYSQL] Hij pakt niet alles

Pagina: 1
Acties:

  • codeweb
  • Registratie: Juni 2002
  • Laatst online: 01-09 11:50
PHP:
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
<? include("config.php");
mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname);
?>
<table border='1' bordercolor='#000000'>

<?
$query = mysql_query("SELECT * FROM news_cat") or die (mysql_error());
while ($var = mysql_fetch_object($query)) {
$id = $var->id;

echo "<tr>
        <td><a href=$PHP_SELF?type=showcat($var->id)>$var->name</a></td>
   </tr>";


}
?>
</table><br><br></div></body></html>

 <?
if ($type == "showcat($var->id)") {

$query = mysql_query("SELECT * FROM news WHERE cat = $id ") or die (mysql_error());
while ($var = mysql_fetch_object($query))
{
echo "$var->message";
}

}
?>


Dit heb ik zover; nu wilde ik eens proberen
ik heb 4 categorien aangemaakt en 4 nieuwsberichten aangemaakt:

Nu wil ik ze bekijken en dan laat hij alleen diegene uit de laatste cat zien.
Een voorbeeld is ook online zodat je het zelf kan bekijken als je t niet snapt:
http://robinaartsma.endoria.net/news/
Dump van de database:

CREATE TABLE news (
id int(10) NOT NULL auto_increment,
author varchar(200) NOT NULL default '',
date varchar(30) NOT NULL default '',
message text NOT NULL,
cat varchar(30) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM;

#
# Gegevens worden uitgevoerd voor tabel `news`
#

INSERT INTO news VALUES (1, 'Robin', '2002', 'test', '1');
INSERT INTO news VALUES (2, '123', '456', '789', '2');
INSERT INTO news VALUES (3, '4', '5', '6', '3');
INSERT INTO news VALUES (8, '456', '456', '45', '4');
# --------------------------------------------------------

#
# Tabel structuur voor tabel `news_cat`
#

CREATE TABLE news_cat (
id int(10) NOT NULL auto_increment,
name varchar(50) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM;

#
# Gegevens worden uitgevoerd voor tabel `news_cat`
#

INSERT INTO news_cat VALUES (1, '1');
INSERT INTO news_cat VALUES (2, 'test1');
INSERT INTO news_cat VALUES (3, '3');
INSERT INTO news_cat VALUES (4, '654');

  • codeweb
  • Registratie: Juni 2002
  • Laatst online: 01-09 11:50
ik merk nu dat hij helemaal niet meer werkt ;(
weet iemand waar ik zwaar fout zit?

Verwijderd

1) Ik kan op je site zien dat type nooit een waarde heeft.
2) Je sluit te vroeg je document af met </html>, als denk ik je browser daar wel langs komt ( wil niet zeggen dat dit goed is ).

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

Probeer er eerst eens voor te zorgen dat de query die je binnen je lus uit gaat voeren niet de resultset van die andere query overschrijft :)...

Als je dat gelukt is lijkt het me een goed ID om eens wat over joins in de mysql manual te gaan lezen. Wat je nu aan het doen bent kan namelijk makkelijk in 1 query.

Trouwens... Wat doe je met $type, en waarom zet je "-s om variabelen heen waar dit helemaal niet nodig is? Verder is het handig om je variabelen in een string buiten de "-s te houden. Je kunt ze gewoon achter elkaar plakken door "blaat ".$object->var." blaat" te gebruiken.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Janoz schreef op 25 augustus 2002 @ 23:44:
Probeer er eerst eens voor te zorgen dat de query die je binnen je lus uit gaat voeren niet de resultset van die andere query overschrijft :)...

Als je dat gelukt is lijkt het me een goed ID om eens wat over joins in de mysql manual te gaan lezen. Wat je nu aan het doen bent kan namelijk makkelijk in 1 query.

Trouwens... Wat doe je met $type, en waarom zet je "-s om variabelen heen waar dit helemaal niet nodig is? Verder is het handig om je variabelen in een string buiten de "-s te houden. Je kunt ze gewoon achter elkaar plakken door "blaat ".$object->var." blaat" te gebruiken.
Ik zie twee "while" loops die NIET in elkaar overlopen, tel de {} ...
Verder kun je variabelen gewoon hergebruiken.

Verder werkt $mijnstring = "mijn waarde : $waarde" hetzelfde als $mijnstring="mijn waarde : " . $waarde ( in dit geval iig ).