Avatar billede Slettet bruger
23. august 2005 - 14:36 Der er 35 kommentarer og
1 løsning

Nogen der kan lave en MySql database til mig?

Hej eksperter!

Efter lang tids søgen må jeg desværre give op.
Er igang med at finde ud af noget med en tagwall i ASP med MySql database.

Jeg har denne tagwall som jeg vil gå ud fra:
http://www.vokadin.dk/tagwall.zip
men min udbyder understøtter ikke access, så er der nogle der kan fikse en MySql database sammen som har følgene felter: NAVN, HJEMMESIDE, DATO/TID og IDNUMMER.

Og det ville være endnu bedre hvis nogen kunne guide mig igennem det hele.

på forhånd tak!

Nico
Avatar billede fennec Nybegynder
23. august 2005 - 14:43 #1
Understøtter din udbyder MySql?? For hvis de gør, har de sikkert også et admin værktøj til databasen. Og det er ikke meget svæere at bruge dette værktøj i forhold til f.eks Access.
Avatar billede Slettet bruger
23. august 2005 - 14:46 #2
Ja det gør den. Jeg har B-One.net, men jeg ved ikke lige hvor det værktøj skulle ligge henne af?
Avatar billede fennec Nybegynder
23. august 2005 - 15:07 #3
Du har fået en mail fra B-one da du oprettede din konto. Der står hvordan du kommer i forbindelse til MySQL.
Avatar billede Slettet bruger
23. august 2005 - 15:24 #4
Ja det lagde jeg lige mærke til.. Så kommer der så endnu et spørgsmål, (ja jeg ved godt jeg er dum) hvordan bruger jeg så det der phpmyadmin ?
Avatar billede fennec Nybegynder
23. august 2005 - 15:32 #5
Når du har logget ind har du dit databasenavn og evt tabeller til at stå i venstre side. Hvis du klikker på DBnavnet, kan du her oprette nye tabeller. Når du har givet tabellen et navn og skrevet hvormange kolonner der skal være, er det ikke meget forskellig fra Access :o)
Avatar billede Slettet bruger
23. august 2005 - 15:33 #6
okay, så jeg kalder tabellen 'tagwall'.
hvor mange kolonner skal der være?
Avatar billede fennec Nybegynder
23. august 2005 - 15:36 #7
Det må være 4 (ID, navn, url og dato)
Avatar billede fennec Nybegynder
23. august 2005 - 15:37 #8
Du kan altid tilføje flere kolonner senere hvis du vil..
Avatar billede fennec Nybegynder
23. august 2005 - 15:42 #9
Autonummer i MySQL findes under Extra punktet.

Typen på kolonnen sættes til INT, Null til "not null" og Extra til "auto_increment", også er feltet sikkert også primary key så kryds lige "primary" af også :o)
Avatar billede Slettet bruger
23. august 2005 - 15:43 #10
okay. :) så langt, så godt!

du må lige sige til hvis det er du ikke gider guide mig igennem det her!

så kommer jeg så videre hertil: http://www.vokadin.dk/printscrn1.jpg

går ud fra at de i de 4 kolonner skal jeg skrive ID, navn, url og dato. -men hvad med alt det andet der står?
Avatar billede Slettet bruger
23. august 2005 - 15:44 #11
Avatar billede fennec Nybegynder
23. august 2005 - 16:02 #12
Feltnavn: giver vist sig selv
Datatype: tal/tekst/dato du kan læse mere om typerne under "Dokumentation"
Længde: tekst = hvor mange tegn den kan indeholde. Ved tal-typer lader du den bare stå.
Attributter: glemmer du bare
nullværdi: om kolonnen kan indeholde NULL værdien (skal der indtastes en værdi i feltet).
Standartværdi: giver sig selv.
Ekstra: om feltet selv skal tælle fortløbende (Autonummer)
Primary: om feltet er primærnøgle.
Indeks: Skal der et indeks på (gør søgning hurtigere hvis du har meget data.)
Unik: om indholdet kun må stå i EN kolonne (lidt ala primary)
Fultekst: glemmer du bare.
Avatar billede fennec Nybegynder
23. august 2005 - 16:04 #13
De datatyper du kommer til at bruge 99% af tiden er INT (til tal), VARCHAR (til tekst) og DATE/DATETIME (til dato/dato med klokkeslet)
Avatar billede fennec Nybegynder
23. august 2005 - 16:06 #14
Rettelse:
Unik: om indholdet i en kolonne kun må forekomme EN gang (lidt ala primary)
Avatar billede Slettet bruger
23. august 2005 - 16:15 #15
okay. ja det hjalp sku en del!! nu er jeg ved at fatte det! jeg kigger lidt på det og roder lidt rundt og vender så tilbage :)
Avatar billede fennec Nybegynder
23. august 2005 - 16:34 #16
Jeg er ikke tilbage på E før i morgen. Nu holder jeg nemlig fyraften :o)
Avatar billede Slettet bruger
23. august 2005 - 16:38 #17
så fik jeg lige den her fejl:

http://www.vokadin.dk/printscrn2.JPG

hvad gør jeg ved det?
Avatar billede fennec Nybegynder
23. august 2005 - 20:51 #18
Kom lige forbi alligevel :o)

Mener ikke "LongText" kan være unik, og der er næppe nogen grund til at gøre den unik alligevel, så det ville jeg nok fjerne.

Det er også meget sjældent at du får brug for Index og Unik. I alle de databaser jeg har lavet har jeg ikke brugt Unik endnu. Jeg kunne godt have brugt den mange gange, da f.eks. et "ProduktNavn" naturligvis ikke må forkomme flere gange, men ofte er det bedre at overlade sådan noget til brugerne.

Index er kun en fordel på tal og kort tekst. Så den hjælper ikke hvis du skal søge i tekst med LIKE metoden. Desuden skal der rigtig meget data til inden du vil kunne mærke en fordet (flere 1000 linjer).
Avatar billede fennec Nybegynder
23. august 2005 - 21:03 #19
Det er desuden en ide at undgå de reserveret ord som kolonne navn (her "datetime"), da det kan skabe problemer med senere sql-sætninger, hvis man ikke husker at smide ´ omkring navnene (andre databaser bruger []).

Det ord jeg har oplevet flest gange folk bruger er by (til at angive by-navnet). Og jeg bruger det i dette eks så du kan se hvad jeg mener.

Hvis man nu vil have sorteret en liste efter by navnet bliver sql sætningen:
"select * from enTabel order by by"

Det kan databaserne naturligvis ikke finde ud af, så her skal man angive at by henviser til en kolonne:
"select * from enTabel order by ´by´"

eller sådan i andre databaser:
"select * from enTabel order by [by]"

´ skal ikke forvekslet med ' tegnet. ´ er tegnet, som du får ved at trykke på tasten til venstre for "slet" også trykke "space", og altså ikke den sammen med * tegnet.

Du kan se en liste af alle reserveret ord her:
http://dev.mysql.com/doc/mysql/en/reserved-words.html
Avatar billede Slettet bruger
24. august 2005 - 10:54 #20
så, nu ser det ud til at databasen fungerer som den skal.

http://www.vokadin.dk/yeah/index.php

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /customers/vokadin.dk/vokadin.dk/httpd.www/yeah/index.php on line 14

Linje 14:
            while ($row_tagwall = mysql_fetch_array($res_tagwall)){

hvad skal der så fikses dér? :)
Avatar billede fennec Nybegynder
24. august 2005 - 11:07 #21
$res_tagwall variablen indeholder en SQL-sætning. Den bliver sikkert lavet i linje 13, så du skal lige give mig linjerne før nr 14.
Avatar billede Slettet bruger
24. august 2005 - 11:11 #22
<?    $res_tagwall = mysql_query("SELECT * FROM tagwall order by id ASC");
            while ($row_tagwall = mysql_fetch_array($res_tagwall)){
?>

du får lige 13 og 14 her..
Avatar billede fennec Nybegynder
24. august 2005 - 11:20 #23
Den ser nu ellers god nok ud. Det kan evt. så være database forbindelsen der er problemet. Giv mig lige linje 1-14, da database forbindelsen gerne skulle blive oprettet her et sted.

ps. Der kan være et password og brugernavn i den kode, så erstat lige de oplysninger med xx inde du smider det herind.
Avatar billede Slettet bruger
24. august 2005 - 11:25 #24
Index.php :

<?
//
// HELLO HONG KONG
//
?>

<? include "config.php"; ?>

<p><font size="2" face="Verdana">Vis Forum - <a href="tilfoej.php">Tilføj Indlæg</a></font></p>

<hr color="#000000">

<?    $res_tagwall = mysql_query("SELECT * FROM tagwall order by id ASC");
            while ($row_tagwall = mysql_fetch_array($res_tagwall)){
?>
<div align="left">
  <table border="0" width="262" height="14" cellspacing="0" cellpadding="0">
    <tr>
      <td width="262" height="1"><font size="2" face="Verdana"><i>Fra</i> : <b><?=$row_tagwall[NAVN]?></b></font></td>
    </tr>
    <tr>
      <td width="262" height="1"><font size="2" face="Verdana"><i>Hjemmeside</i> : <b><?=$row_tagwall[URL]?></b></font></td>
    </tr>
    <tr>
      <td width="262" height="14"><font size="2" face="Verdana"><i>Besked</i> :</font></td>
    </tr>
    <tr>
      <td width="262" height="4"><font size="2" face="Verdana"><b><?=$row_tagwall[TXT]?></b></font></td>
    </tr>
  </table>
</div><br>
<?
}
?>

config.php :


<?
//
// HELLO HONG KONG
//
?>

<?
    $dbhost = "localhost"; // ADRESSEN TIL MYSQL
    $database = "tagwall"; // DATABASENS NAVN
    $dbuser = "xxx"; // BRUGER
    $dbpass = "xxx"; // KODE
?>

<?
mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($database);
?>
Avatar billede fennec Nybegynder
24. august 2005 - 12:18 #25
Ja, der ser heller ikke ud til at være noget galt.

Hvad har du kaldt tabellen i databasen og hvad hedder kolonnerne??
Avatar billede Slettet bruger
24. august 2005 - 12:37 #26
tabellen hedder tagwall og kolonnerne hedder ID DATO TXT URL NAVN
Avatar billede fennec Nybegynder
24. august 2005 - 12:54 #27
Ja, så ved jeg ikke hvad der er galt....

phpmyadmin har også et sql-værktøj, hvor man kan indtaste sql sætninger. Prøv at indsætte:
SELECT * FROM tagwall order by id ASC

her, og se om ikke den kan finde ud af det.
Avatar billede Slettet bruger
24. august 2005 - 12:58 #28
det vil jeg så lige prøve..

$dbhost = "localhost"; // ADRESSEN TIL MYSQL << skal der stå localhost?
Avatar billede Slettet bruger
24. august 2005 - 13:00 #29
Din SQL-forespørgsel blev udført korrekt (Forepørgsel tog 0.0001 sek)

SQL-forespørgsel : [Ret] [Forklar SQL] [Fremstil PHP-kode]
SELECT *
FROM tagwall
ORDER BY id ASC  LIMIT 0 , 30 

..det skrev den så?
Avatar billede fennec Nybegynder
24. august 2005 - 13:02 #30
Måske. Det står også i den mail du har fået fra B-one, så det var måske en ide at tjekke op på, men det er ikke unormalt at det er localhost.
Avatar billede Slettet bruger
24. august 2005 - 13:11 #31
nå, det var localhost der stod. så det er ikke dér fejlen er.

alt ser ellers fint nok ud?

Jeg prøvede at lægge et indlæg, men der er ikke kommet noget inde i databasen. så fejlen må ligge i databasen?
Avatar billede fennec Nybegynder
24. august 2005 - 13:16 #32
Prøv at smide EN række data i tabellen gennem phpmyadmin. Ofte kan der være problemer, hvis der ikke er noget data, men din kode burde virke uden der er data.
Avatar billede fennec Nybegynder
24. august 2005 - 13:26 #33
Din database hedder vist ikke "tagwall". Det er vist "vokadin_dk", så du skal have ændret:
$database = "tagwall";

til
$database = "vokadin_dk";
Avatar billede Slettet bruger
24. august 2005 - 13:56 #34
Så, http://www.vokadin.dk/yeah/
har prøvet at smide et indlæg ind, det ser ud til at fungere. -næsten.

inde i phpmyadmin er felterne tomme i række 1 (den indlæg jeg oprettede), så det må være tilfoj.php der er en fejl i.

tilfoej.php:

<?
//
// HELLO HONG KONG
//
?>

<? include "config.php"; ?>

<?
if ($_POST[action] == "update"){
    $navn = ($_POST[NAVN]);
    $url = ($_POST[URL]);
    $txt = ($_POST[TXT]);

    mysql_query("INSERT INTO tagwall SET NAVN = '$navn',URL = '$url',TXT = '$txt'");

}
?>

<p>
<font size="2" face="Verdana"><a href="index.php">Vis Forum</a> - Tilføj Indlæg</font></p>

<hr color="#000000">
<p></p>
<form action=tilfoej.php?m=saadan method=post>
<input type="hidden" name="action" value="update">
<div align="left">
  <table border="0" width="376" height="1" cellspacing="0" cellpadding="0">
    <tr>
      <td width="125" height="1"><font size="2" face="Verdana">Navn:</font></td>
      <td width="216" height="1"><font size="2" face="Verdana"><input type="text" name="navn" size="20" style="background-color: #FFFFFF; color: #000000; font-size: 13 px; font-family: Verdana; font-weight: bold; border: 1 solid #000000">&nbsp;</font></td>
    </tr>
    <tr>
      <td width="125" height="24"><font size="2" face="Verdana">Hjemmeside:</font></td>
      <td width="216" height="24"><font size="2" face="Verdana"><input type="text" name="url" size="20" style="background-color: #FFFFFF; color: #000000; font-size: 13 px; font-family: Verdana; font-weight: bold; border: 1 solid #000000"></font></td>
    </tr>
    <tr>
      <td width="125" height="11"><font size="2" face="Verdana">Besked:</font></td>
      <td width="216" height="11"><font size="2" face="Verdana"><textarea rows="2" name="txt" cols="20" style="background-color: #FFFFFF; color: #000000; font-size: 13 px; font-family: Verdana; font-weight: bold; border: 1 solid #000000"></textarea></font></td>
    </tr>
    <tr>
      <td width="125" height="1"><font size="2" face="Verdana">Bekræft:</font></td>
      <td width="216" height="1"><font size="2" face="Verdana"><input type="submit" name="update" value="ROCK'N'ROLL" style="background-color: #FFFFFF; color: #000000; font-size: 13 px; font-family: Verdana; border: 1 solid #000000"></font></td>
    </tr>
  </table>
</div>
</form>
Avatar billede Slettet bruger
24. august 2005 - 13:57 #35
efter man har oprettet indlæg bliver den på tilfoej.php .. kan man smide brugeren videre til index.php ?
Avatar billede fennec Nybegynder
24. august 2005 - 14:23 #36
Ja man kan. Du smider bare denne kode ind efter du har indsat/updateret databasen

mysql_query("INSERT INTO tagwall bla bla bla");
header("location: index.php");
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