Ik zit een klein forum achtig iets te maken maar ik kom met het volgende probleem

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\test\viewtopic.php on line 6

dit zijn de lijnen van 1 tot 6

$con = mysql_connect("host", "user", "password") or die ("Kon geen verbinding maken met de database");
$db = mysql_select_db("database") or die ("Kon geen database selecteren");
$sql = "SELECT id, sub, msg FROM comments WHERE id = $_HTTP_GET_VARS[f]";
$q = mysql_query($sql);
$res = mysql_fetch_array($q);
Graag gedaan, het is makkelijker, sneller, en beter om in-geprogrammeerde dingen te gebruiken dan ze zelf te programmeren, lijkt me =p
grmbleslkejrmqlksetrhn qsmoeklfgjhjqsn lcgmjlkqs

NOG STEEDS CONTROLEER JE NIET OF JE $res EEN GELUKTE QUERY IS!!!!

JE DOET HELEMAAL NIETS MET DE TIPS DIE WIJ GEVEN...

Zo is jou helpen wel een heel moeilijke en tijdrovende klus...


[EDIT]
Sorry dat ik mij even liet gaan, maar dit enerveert mij enorm.
Wij geven jou tips e.d. om jouw verder te helpen waar jij helemaal niets mee doet en dan kom je terug met een vraag die al in een van de eerste posts ge-antwoord is.

Ik bekijk even je tabelstructuur, en zie dat die ook niet helemaal goed is, ik zal even een aantal dingen bespreken..

[EDIT2]
Ok, hier enkele bemerkingen:
Eerst en vooral, gebruikt nooit ’-tekens in je query, deze laten je toe om onjuiste namen te geven aan tabellen en kolommen, en dat wil je natuurlijk niet.

Nu ga ik even de verschillende kolommen en hun datatypes bespreken:
Jij gebruikt voor id een int(50). Die 50 kunnen we hier weglaten omdat php alle voorloopnullen van getallen weggooit. (die 50 die jij daar aangeeft is het aantal voorloopnullen dat mysql aan dat getal moet plakken.) Verder kunnen we ook UNSIGNED instellen, omdat we toch geen id's zullen hebben die negatief zullen zijn.

De kolom user heb ik usern genoemd omdat ik denk dat user een gereserveerd woord is, welke je dus niet mag gebruiken als naam voor een kolom. (Het kan natuurlijk zijn dat ik het mis heb, maar voor de zekerheid)

msg voorzag jij maar 255 tekens? is dat niet een beetje weinig? Ik heb een groter veld genomen genaamd TEXT. Wil je per se uw berichten beperken tot 255 tekens, dan kan je beter TINYTEXT nemen.

Geen geknoei meer met datums en tijden als je ze samen in 1 veld steekt. (mogelijkheden zijn TIMESTAMP of DATETIME) Ook verminderd voor jou werk als je mysql zelf de tijd laat invullen, dit kan door DEFAULT CURRENT_TIMESTAMP

visable zal naar ik denk enkel maar de waardes 1 of 0 hebben, en daarom stel ik voor om het type BIT(1) te nemen. Let wel, hiervoor heb je MySQL versie 5.0.5 nodig. Heb je deze versie niet, dan kan je onderstaand type nemen: visable ENUM('0','1') NOT NULL DEFAULT '1'

En als slot de volledige tabel nog even:
CREATE TABLE comments (
	id        INT UNSIGNED	NOT NULL AUTO_INCREMENT PRIMARY KEY,
	sub       VARCHAR(255)	NOT NULL,
	usern     VARCHAR(255)	NOT NULL,
	msg       TEXT		 	NOT NULL,
	datum     TIMESTAMP		NOT NULL DEFAULT CURRENT_TIMESTAMP,
	visable   BIT(1)			NOT NULL DEFAULT b'1'
) ENGINE=INNODB CHARACTER SET utf8 COLLATE utf8_unicode_ci;


Oja, heb nog even voor jou de karaker set erbij gezet zodat je geen problemen krijgt met vreemde tekens.

Laat maar weten wat je ervan vindt, hopelijk heb je van mijn uitleg wat bijgeleerd. Ben je nog niet zeker of je wel het juiste datatype gekozen hebt, kijk dan even hier
@Hipska,
Ts is ook aan mijn zwarte lijst toegevoegd
Ik doe toch nog even inspanning om hem een laatste kans te geven. Doet hij ook hier niets mee, dan kan hij het voor mij ook vergeten.

Reageren