Avatar billede soundwalker Nybegynder
08. maj 2007 - 19:16 Der er 17 kommentarer

Udtræk tabel fra MySQL

Hey

Jeg har oprettet en MySQL database, og oprettet et php dokument der opretter forbindelse. Så har jeg lavet et andet php dokument, der gerne skulle kunne trække alt ud fra min MySQL database.
Men det funger ikke helt. Mit php script ser således ud:

<?php
include("database.php"); //inkludere filen der opretter forbindelse til min db
$query = mysql_query("SELECT * FROM oplag");
$row = mysql_fetch_assoc($query);

echo $row['fornavn'] . " - " . $row['efternavn'];
?>

Når jeg prøver at åbne den i firefox, får jeg følgende meddelelse:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /web/www/frac/users/d/dalum1g2/gogl.php on line 4

Er rimelig newbie til php og MySQL, så håber det er mig der har dummet mig, og overset noget (:

Hjælp søges i hvert fald ;)
Avatar billede intenz Novice
08. maj 2007 - 19:18 #1
Det skuldes en fejl i dit SQL kald.
Prøv at ret:
$query = mysql_query("SELECT * FROM oplag");

til:
$query = mysql_query("SELECT * FROM oplag") or die(mysql_error());

Så kan du se fejlen.
Avatar billede soundwalker Nybegynder
08. maj 2007 - 19:23 #2
Okay, mange tak. Jeg får nu meddelelsen:

Table 'dalum1g2.oplag' doesn't exist

Jeg har på fornemmelsen at det kan skyldes når jeg opretter forbindelse til min database. Mit "opkalds" dokument, ser således ud:

<?php
mysql_connect("192.168.1.3", "dalum1g2", "dalumhtx") or die(mysql_error());
mysql_select_db("dalum1g2") or die(mysql_error());
?>

Jeg er dog i tvivl om det der skal stå i mysql_select_db, er navnet på filen til min database, eller om det er det database navn, jeg har fået af min udbyder (Det jeg har skrevet)
Avatar billede intenz Novice
08. maj 2007 - 19:31 #3
Det ligner et lokalt kald (normalt skal du _aldrig_ skrive brugernavn/kode herinde!).
Du skal skrive navnet på den database hvor tabellen oplag ligger.

Men hvilket du skal skrive kan du kun selv vide, men den fejl du får (Table 'dalum1g2.oplag' doesn't exist) betyder at 'oplag' ikke eksisterer på den database der er valgt. Så enten er databasen forkert, ellers hedder tabellen ikke oplag.
Avatar billede soundwalker Nybegynder
08. maj 2007 - 19:38 #4
Nej, jeg tænkte også på det lige efter (:

Men da dette kun er en forsjov/test server, gør det ikke noget (:

Men ja det går da fremad, jeg har nu lavet om til at dne skal connecte til "cddatabase", hvilket ser ud til at virke. Lige bortset fra denne meddelelse:

Access denied for user 'dalum1g2'@'192.168.1.2' to database 'cddatabase'

Hvilket jeg formoder, betyder at den ikke vil lukke mig ind?
brugernavn, host og pass har jeg fået fra udbyders hjemmeside:

Dette er dine MySQL data:

Når du connecter til din MySQL database skal du bruge følgende data.
Host: 192.168.1.3
database: dalum1g2
Brugernavn: dalum1g2
Password: dalumhtx

Kan ikke lige umiddelbart se hvad jeg kan have skrevet forkert?
Avatar billede intenz Novice
08. maj 2007 - 19:47 #5
Dit login passer ikke til databasen 'cddatabase'.

Det andet logind virkede. Du er sikker på der ligger en tabel på database 'dalum1g2' der hedder 'oplag'?

Hvis den ligger i en database der hedder 'cddatabase' skal du have et logind til den.
Men ligge den database også på serveren (192.168.1.3)?
Avatar billede soundwalker Nybegynder
08. maj 2007 - 19:56 #6
Er lidt forvirret nu.

Database = filen hvor alle dataene ligger i, f.eks. cddatabase.sql?
Tabel = Tabel med rækker og kollonner (Hvis man ser den i acces), der ligger inde i database filen.

Passer ovenstående?

Min udbyder skriver at "Host" er 192.168.1.3, så jeg er rimelig sikker på at det passer.

Men for lige at ridse op.

På min server ligger der en fil, der hedder "cddatabase.sql". Inde i den fil står der bla. "Table structure for table 'oplag'" Hvilket jeg vil mene, betyder at tabellen hedder "oplag".
Avatar billede intenz Novice
08. maj 2007 - 20:05 #7
Nååh. Nu er jeg ved at forstå dit problem :)

Database og tabel er som du skriver. Men databasen ligger ikke som en fil (cddatabase.sql).

Filen cddatabase.sql er en fil der korrekt indeholder SQL data. Men ikke i en form hvor du kan få adgang til dem vha. php.
Du får en sådan fil hvis man f.eks. eksporterer sql data ud af en database, så kan man gemme dem i en sådan fil og så flytte det til en anden database. Eller gemme det som backup.

Der bruges i 99% af tilfældene phpmyadmin til at administrere sql databaser. Har din udbyder givet dit et link til en administration?
Avatar billede soundwalker Nybegynder
08. maj 2007 - 20:08 #8
Nåårh, ok. På den måde..

Jo, min udbyder har et link til phpmyadmin. Der kan jeg godt logge ind, men forstår ikke helt hvad jeg så skal? :)
Avatar billede intenz Novice
08. maj 2007 - 20:13 #9
Nej, men det kan godt forklare dig :) Skulle være sikker på du havde et link.

1) Du logger ind i phpmyadmin
2) Klik eller vælg din database i venstre side (dalum1g2)
3) Du trykker på SQL øverst i højre vindue
4) Du vælger gennemse... og finder filen cddatabase.sql
5) Du trykker OK
6) Herefter skulle tabellen oplag nu ligger på din database (dalum1g2)

Det er lavet på hukommelse, så det kan være der er enkelte ting der ikke helt passer med den phpmyadmin version du har :)
Avatar billede soundwalker Nybegynder
08. maj 2007 - 20:21 #10
Jeg kan godt komme ind under sql fanebladet. Men så kommer der bare et tomt tekstfelt. Har prøver bare at skrive cddatabase.sql, men så får jeg en fejl meddelelse:

"#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'cddatabase.sql' at line 1 "

(:
Avatar billede intenz Novice
08. maj 2007 - 20:24 #11
Der er ikke en gennemse knap nedenunder?

Nå pyt, så bare åben cddatabase.sql med notepad eller lign. og kopier al teksten ind i det tekstfelt der er under sql fanebladet. og tryk ok.
Avatar billede soundwalker Nybegynder
08. maj 2007 - 20:29 #12
Det hjælper heller ikke (:
Får fejl meddelelsen:

#1044 - Access denied for user 'dalum1g2'@'192.168.1.2' to database 'dalum1g2'

Men der er også et faneblad der heddder import, skal jeg prøve den? (:
Avatar billede intenz Novice
08. maj 2007 - 20:32 #13
Jeg tror ikke du er på den rigtige server i admin.
Access denied for user 'dalum1g2'@'192.168.1.2' to database 'dalum1g2'

og du skrev tidligere din server hed: 192.168.1.3.

Men du kan godt prøve import, og se om den virker bedre.

Ellers skal du se have ændret den server du befinder dig på, det kan jeg dog ikke lige på stående fod hjælpe med. Det eneste jeg kan komme på jeg er stødt på tidligere er en dropdown menu, i højre side, lige når man logger ind i phpmyadmin (før du klikker på din database)
Avatar billede soundwalker Nybegynder
08. maj 2007 - 20:43 #14
Når jeg logger ind i admin, står der øverst med kæmpe skrift "192.168.1.3", ved ikke lige hvor de 2 tal kommer ind henne.

HAr prøvet import nu, men får samme besked.
Avatar billede intenz Novice
08. maj 2007 - 21:28 #15
Det virker som om det er et problem med din bruger eller den phpmyadmin du bruger. Du skal nok prøve at sende en mail din udbyderen med hvad du prøver at gøre (indsætte data i sql i phpmyadmin) og så den fejl du får. Så kan de nok hjælpe dig videre.
Avatar billede mwm77 Nybegynder
08. maj 2007 - 22:55 #16
Hej.

Jeg har fundet din løsning tror jeg. Fejlen ligger i dit opkalds document..

<?php
mysql_connect("192.168.1.3", "dalum1g2", "dalumhtx") or die(mysql_error());
mysql_select_db("dalum1g2") or die(mysql_error());
?>

Du har skrevet "dalum1g2" som passwordet..det er "dalumhtx"

Lav et php trick:

$dbname = "dalum1g2";
$dbuser = "dalum1g2";
$dbpass = "dalumhtx";
$dbhost = "192.168.1.3";

$connection = mysql_connect("$dbhost","$dbuser","$dbpass") or die ("Couldn't connect to server.");
$db = mysql_select_db("$dbname", $connection) or die("Couldn't select database.");

Så skriver du dem ikke forkert ind igen.. Håber det hjalp. Jeg er lidt  i tvivl og du får lavet de table's der ligger i din 'cddatabase.sql' fil. Når du logger ind i phpmyadmin så står der dit database navn over til højre.."dalum1g2" står der så nogle tables under der..oplag m.m ellers så ligger problemet i at du ikke har nogle tables at extracte noget fra. men jeg tror nu dit problem blivee løst ved at ændre dit opkalds script..

            Mvh..MWM
Avatar billede intenz Novice
08. maj 2007 - 23:26 #17
hmm :)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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