Avatar billede fuglen Nybegynder
11. august 2003 - 17:21 Der er 16 kommentarer og
1 løsning

Hjælp til MySQL

Jeg har nu i et stykke tid arbejdet med access-databaser og egentligt været ret tilfreds med det.

Men jeg har nu fået et nyt web-hotel hvor de ikke understøtter det, så jeg er tvunget til at bruge MySQL

Jeg har kigget lidt på administrationen (PHP-MyAdmin) men jeg fatter simpelthent ikke en skid af det. Det at jeg ikke har en "fysisk" database at arbejde med, kan jeg slet slet ikke fatte.

Så hvis der er en der har tid/lyst til at forklare mig hvordan dælen det virker, ville det være ret lækkert.

PS. Jeg arbejder udelukkende i ASP, så hvis der er lidt hjælp til at få mine sql-sætninger skrevet om ville det osse være fint.
Avatar billede arne_v Ekspert
11. august 2003 - 17:25 #1
Det er et lidt bredt spørgsmål.

Kan du være lidt mere specifik ?
Avatar billede jinxit Nybegynder
11. august 2003 - 17:26 #2
Der er ikke noget mystisk ved MySQL og du arbejder stadigvæk med en "fysisk" database...

PHPMyAdmin er bare et visuelt redskab
Avatar billede fuglen Nybegynder
11. august 2003 - 17:29 #3
hæhæ... ved det godt, men jeg er fuldstændig på bar bund. Så det er lidt svært for mig.

Men mit første problem er, når jeg (via adminen) vil oprette en ny tabel i databasen, f.eks. "nyheder", der skal indeholde ID, dato, overskrift, nyhedstekst, forfatter. Allerede der melder den en fejl som jeg ikke fatter.
Avatar billede jinxit Nybegynder
11. august 2003 - 17:30 #4
Hvad er fejlen?
Avatar billede fuglen Nybegynder
11. august 2003 - 17:57 #5
Sådan, så lykkedes det for mig at oprette en tabel "nyheder".

Jeg angav Feltet "ID" til at være af typen "INT" og primær... Har jeg så et unikt ID ?

Jeg har herefter et par sætninger (som jeg tidligere har brugt med access) jeg skal ha' omskrevet, er det noget du kan hjælpe med (eller er sætningerne de samme?) :

1:
SQL = "Insert Into nyheder (dato, overskrift, tekst) Values('"&dato&"', '"&overskrift&"', '"&tekst&"')"
Conn.Execute(SQL)

2:
Sql = "SELECT TOP 10 * FROM nyheder ORDER BY ID desc"
Set nyheder =  Conn.Execute(Sql)
Avatar billede jinxit Nybegynder
11. august 2003 - 19:58 #6
Ja... primære nøgler er pr. definition unikke.

Der skulle ikke umiddelbart være noget at sætte fingeren på... begge sætninger er SQL 92.

Det eneste som kunne foresage et problem er hvis variablen dato ikke er formateret korrekt i forhold til feltet dato.
Avatar billede fuglen Nybegynder
11. august 2003 - 20:20 #7
Ok... er der forsk. dato formater ???
Jeg troede bare det hed dd-mm-åååå...?!?!

Hov.... nu kan jeg se at den også sætter min dato til at være unik, det er da ikke så godt, så kan jeg kun indtaste 1 nyhed om dagen... hvordan kan jeg ændre det igen?
Avatar billede jinxit Nybegynder
11. august 2003 - 20:42 #8
Der er flere forskellige dato formater: date, datetime og timestamp

Link: http://www.mysql.com/doc/en/DATETIME.html

Kan ikke lige huske syntaksen, men det skulle være lige til via. phpmyadmin.
Avatar billede -thomas- Nybegynder
11. august 2003 - 21:03 #9
Hej,

Den store forskel på Access og MySQL er, at med access har du en .mdb-fil, som er din database og med MySQL har du en adresse, da det er en server-baseret database. Jeg vil anbefale dig at bruge MySQL front, da det er et godt værktøj til administration af MySQL-databaser og ligner Access lidt mere end phpMyAdmin (det er ellers også et godt værktøj).
Det du vil mærke mest forskel på til at starte med er øget hastighed og problemer med dato-formater. MySQL vil gerne have dem YYYY-MM-DD, men det er hurtigt klaret med denne funktion:

Function ConvertDate(dtmDate,intFormat)
    ' intFormat kan have 2 værdier. 0 eller 1
    ' 0 = Returnerer dato og tid
    ' 1 = Returnerer kun dato

    OutDate = DatePart("yyyy", dtmDate) & "-" & DatePart("m", dtmDate) & "-" & DatePart("d", dtmDate)
    OutTime = DatePart("h", dtmDate) & ":" & DatePart("n", dtmDate) & ":" & DatePart("s", dtmDate)

    If intFormat = 0 Then
        strOut = OutDate & " " & OutTime
    ElseIf intFormat = 1 Then
        strOut = OutDate
    End If

    ConvertDate = strOut
End Function
Avatar billede fuglen Nybegynder
12. august 2003 - 09:07 #10
Ok så er den der snart...
Har dog stadigt problemt med at datoen er unik, så jeg kun kan indtaste 1 nyhed om dagen... ikke så fedt!

Jeg har prøvet ALT, men ligemeget hvad, så er den unik...
Avatar billede -thomas- Nybegynder
12. august 2003 - 09:53 #11
Den forstår jeg ikke? Din dato skal ikke være unik. Det er den fordi du har oprettet tabellen:
CREATE TABLE `tabel` (`felt` TINYINT (3) UNSIGNED DEFAULT '0', UNIQUE(`dato`))

Du skal ikke bruge UNIQUE ved dato-feltet.

Du kan ændre det ved at slette feltet og oprette det igen uden UNIQUE:

ALTER TABLE `tabel` DROP INDEX dato, ADD INDEX felt (dato)
Avatar billede fuglen Nybegynder
12. august 2003 - 10:00 #12
Det ved jeg godt, og jeg sætter den heller ikke til at være unik... Men når PhpMyAdmin, som jeg bruger, så laver tabellen, så er den det alligevel.... jeg FATTER DET IKKE !!!

Alle felter af typerne 'date' og 'int' bliver automatisk sat til at være både primær, indeks og unik... selvom jeg vælger de ikke skal det !
Avatar billede -thomas- Nybegynder
12. august 2003 - 10:06 #13
Det lyder underligt. Jeg kan desværre ikke hjælpe med phpMyAdmin - det er længe siden jeg har brugt det og har ikke adgang til det længere. Det er meget nemt at håndtere med MySQLfront.
Avatar billede fuglen Nybegynder
12. august 2003 - 10:09 #14
Ok... men det er en "fast" database jeg har hos et webhtotel, så der har jeg vel ikke mulighed for at benytte andre programmer til at redigere i databasen, tror du ?
Avatar billede -thomas- Nybegynder
12. august 2003 - 10:12 #15
Jo, det vil jeg umiddelbart tro. Har du fået udleveret mysql-adresse, brugernavn og adgangskode? Så er det bare at taste det ind i mysqlfront, og så skulle det virke. Ellers skriv en mail til udbyderen og hør om de kan sende det til dig.
Avatar billede -thomas- Nybegynder
12. august 2003 - 10:13 #16
Hvis det lykkes kan du hente det her: http://mysqlfront.sstienemann.de/
Avatar billede fuglen Nybegynder
12. august 2003 - 10:26 #17
Har fundet fejlen....hæhæ...pinligt !

-men lad os ikke snakke mere om det ;-)

Jeg skylder "jinxit" nogen point, så han får dem her.
Jeg opretter lige et nyt spm. og så får du de point.... Tak for hjælpen !
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Capgemini Danmark A/S

SAP S/4HANA Business Controlling

Capgemini Danmark A/S

Finance Lead (SAP)

Netcompany A/S

IT Consultant

Csis Security Group A/S

Junior Software Engineer

Nextway Software A/S

Product Configuration Specialist