Hoe moet ik MySQL van hoog naar laag doen?

Gestart doorTom14 reacties114 weergaven

15 berichten · pagina 1 van 1

Tom

Lid · Topicstarter

Berichten
3.868
Reputatie
0
Punten
0,02
Lid sinds
Laatst gezien
Ik ben bezig met een script wat resultaten van hoog naar laag moet laten zien, hoe doe ik dit?

Dit laat de resultaten zien:
Spoiler tonen
Codeblok (voorbeeld.php):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18


includeconfig.php;
?>

OOP Code

Kies hieronder een beoordeling uit.

$sql = mysql_query(SELECT * FROM list);
echo;
echo;
echoNaam:
;
echo;
while($fetch = mysql_fetch_assoc($sql)){
echo;
echo. $fetch[id] . "> . $fetch[name] . ;
echo
;
}

echo;
?>

Nu is het probleem dat elke keer dat iemand een nieuwe naam aan de database toevoegd, dan word er ook een nieuwe tabel aangemaakt voor de ratings, dus hoe kan ik dit doen?

Voorbeeld:
Afbeelding
0
Berichten
8.602
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
ORDER BY ... DESC
0
Tom

Lid · Topicstarter

Berichten
3.868
Reputatie
0
Punten
0,02
Lid sinds
Laatst gezien
Hoe kan je het doen voor meerdere tabellen? Elke keer dat iemand iets opstuurd dan word er namelijk een nieuwe aangemaakt.
0
Berichten
3.001
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Tom schreef:
Nu is het probleem dat elke keer dat iemand een nieuwe naam aan de database toevoegd, dan word er ook een nieuwe tabel aangemaakt voor de ratings, dus hoe kan ik dit doen?

Voorbeeld:
Afbeelding
Heb je relevante code hiervoor?
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Tom schreef:
Hoe kan je het doen voor meerdere tabellen? Elke keer dat iemand iets opstuurd dan word er namelijk een nieuwe aangemaakt.
Dit klinkt behoorlijk fout. Tabellen en velden moet je nooit laten afhangen van aantallen.

Laat je databasestructuur eens zien. Want ik durf te wedden dat er een hoop aan veranderd moet worden.
0
Tom

Lid · Topicstarter

Berichten
3.868
Reputatie
0
Punten
0,02
Lid sinds
Laatst gezien
Ja, maar ik denk niet dat het heel erg gaat helpen.
home.php: http://pastebin.com/TaGyn3eU
add.php: http://pastebin.com/h2cCJeqD
list.php: http://pastebin.com/vhkxfePK

Dit is de tabel waarin alles word opgeslagen behalve de ratings:

Codeblok (voorbeeld.php):

1
2
3
4
5
6
7
8
9
10
11

CREATE TABLE IF NOT EXISTS `list` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`email` varchar(50) NOT NULL,
`casino` varchar(100) NOT NULL,
`url` varchar(100) NOT NULL,
`description` varchar(1000) NOT NULL,
`image` varchar(100) NOT NULL,
`code` varchar(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1 ;

De website is hier:
http://www.btcgambling.co.uk/script/
0
Berichten
3.001
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Codeblok (add.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
32
33
34
35
36
37
38

Add

Hier kan je een stem gedeelte toevoegen.



if($_SERVER[REQUEST_METHOD] == POST){
$name = $_POST[name];
$email = $_POST[email];
$casino = $_POST[casino];
$url = $_POST[url];
$description = $_POST[description];
$code = rand(1000000000, 9999999999);

mysql_query(INSERT INTO list (name, email, casino, url, description, code) VALUES (" . mysql_real_escape_string($name) . ",
"
. mysql_real_escape_string($email) . ", " . mysql_real_escape_string($casino) . ",
"
. mysql_real_escape_string($url) . ", " . mysql_real_escape_string($description) . ", " . mysql_real_escape_string($code) . ")) or die(mysql_error());
mysql_query(CREATE TABLE website_. $name .(
`id` int(11) NOT NULL auto_increment,
`rating` varchar(5) NOT NULL,
`ip` varchar(50) NOT NULL,
PRIMARY KEY `id` (`id`),
UNIQUE KEY `ip` (`ip`)
);
) or die(mysql_error());
}

?>

Waarom die mysql_query op regel 30?
0
Tom

Lid · Topicstarter

Berichten
3.868
Reputatie
0
Punten
0,02
Lid sinds
Laatst gezien
Dat voegt de tabel toe voor de website waarin de ratings worden opgeslagen.
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Gewoon de boel verbouwen naar een enkele tabel voor ratings, en deze rating koppelen aan een bepaalde websiteID.

Dus twee tabellen:
Websites
id (PK) - naam

Ratings
id (PK) - rating - IP - WebsiteID

Als je op de huidige voet doorgaat met tabellen creëren schiet je serieus jezelf je in je voet, en wordt je database zeer lastig onderhoudbaar op korte termijn. Want hoe wil je anders een veld extra toevoegen?

Daarom... aanpassen die structuur!
0
Tom

Lid · Topicstarter

Berichten
3.868
Reputatie
0
Punten
0,02
Lid sinds
Laatst gezien
Ik heb echt geen idee hoe ik dit zou moeten gaan doen.
0
Berichten
8.602
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Tip: als je niet weet hoe het moet huur iemand in die het wel kan. Dit is een erg slechte manier.
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Tom schreef:
Ik heb echt geen idee hoe ik dit zou moeten gaan doen.
WTF..... Dat leg ik net uit?!?!?
0
Tom

Lid · Topicstarter

Berichten
3.868
Reputatie
0
Punten
0,02
Lid sinds
Laatst gezien
Waar staat die PK voor?
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Tom schreef:
Waar staat die PK voor?
Primairy Key, beide ids zijn tevens AutoIncrement
0
Tom

Lid · Topicstarter

Berichten
3.868
Reputatie
0
Punten
0,02
Lid sinds
Laatst gezien
Bedankt voor de hulp.
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren