Avatar billede krasmulu Nybegynder
02. juli 2001 - 15:04 Der er 18 kommentarer og
2 løsninger

Warning: Supplied argument is not a valid MySQL result resource

Jeg har et problem,,,
Jeg har lavet mit første database script, og det ser ud til at virke fint, indtil jeg skal hente noget fra databasen. Når jeg henter med følgende kode får jeg ovenstående advarsel.
$result = mysql_query(\"select \'Name\', Age from icq-list\");
while($row = mysql_fetch_array($result)) {
$Name = $row[\"Name\"];
$Age = $row[\"Age\"];
echo (\'bla bla bla\');
Problemet er den linie hvor der står While($row..... da jeg så får Advarslen når jeg kører den,,,

Hjælp

/KrasMulu
Avatar billede jalle Nybegynder
02. juli 2001 - 15:08 #1
Fejlen ligger i din sql-sætning.

$result = mysql_query(\"select Name, Age from icq-list\");
Avatar billede henrik242 Nybegynder
02. juli 2001 - 15:12 #2
Du bør altid fange sql-fejl... f.ex. således:
$result = mysql_query(\"select Name, Age from icq-list\") or die (mysql_error());

Avatar billede krasmulu Nybegynder
02. juli 2001 - 15:13 #3
Det gør ikke nogen forskel... Jeg får stadig den samme advarsel.
Grunden til at jeg havde valgt at sætte \'\' rundt om, var fordi jeg havde læste at det kunne være en fordel, hvis der var flere ord under en post. Name kan jo være Peter Hansen.
Avatar billede erikjacobsen Ekspert
02. juli 2001 - 15:21 #4
Du kan ikke have en tabel i mysql der hedder icq-list. Mener du icq_list ?
Avatar billede henrik242 Nybegynder
02. juli 2001 - 15:24 #5
Og du har selvfølgelig forud for den stump kode du har med her, sørget for at du rent faktisk er \'forbundet\' til databasen, ikk´?
Avatar billede krasmulu Nybegynder
02. juli 2001 - 15:27 #6
kan man ikke???
Nu har jeg ændret det hele til icq_list der hvor det stod, og oprettet en database der hedder icq_list, men fejlen bliver ved med at komme :(
Avatar billede erikjacobsen Ekspert
02. juli 2001 - 15:28 #7
Har du oprettet en database eller en tabel med det navn ?
Avatar billede krasmulu Nybegynder
02. juli 2001 - 15:29 #8
jo, jeg gad bare ikke at give loginnavn og password ud, så derfor har jeg kun skrevet den smule kode der reelt er et problem
Avatar billede krasmulu Nybegynder
02. juli 2001 - 15:30 #9
Det er en tabel jeg har oprettet der hedder icq_list.
Avatar billede erikjacobsen Ekspert
02. juli 2001 - 15:30 #10
Nå, ja, og siden fejlen stadig kommer, så gør du ikke sådan her:

$result = mysql_query(\"select...\") or die (mysql_error());

når det nu er blevet dig anbefalet. Når du fortæller os hvad den siger, kan vi
hjælpe dig på 7 sekunder i stedet for at lede i blinde.
Avatar billede henrik242 Nybegynder
02. juli 2001 - 15:32 #11
Vær også opmærksom på at kolonnenavnene er case-sensitive...
Avatar billede krasmulu Nybegynder
02. juli 2001 - 15:42 #12
Når fejlen bliver skrevet ud, kommer
Table \'www004131_db.icq_list\' doesn\'t exist
så det er åbenbart i scriptet der opretter databasen at fejlen ligger, sorry :(
Avatar billede krasmulu Nybegynder
02. juli 2001 - 15:49 #13
Jeg havde forstået at man skulle skrive
create table icq_list
(
  id INT NOT NULL AUTO_INCREMENT,
  PRIMARY KEY(id),
  Name            varchar(30),
  Age            integer,
  );
for at oprette tabellen, men det er åbenbart forkert?
Avatar billede henrik242 Nybegynder
02. juli 2001 - 15:59 #14
Hvad med:
create table icq_list
(
  id INT NOT NULL AUTO_INCREMENT,
  Name            varchar(30),
  Age            int(3),
  PRIMARY KEY(id),
  );
Avatar billede erikjacobsen Ekspert
02. juli 2001 - 16:14 #15
id INT(11) NOT NULL AUTO_INCREMENT,
Avatar billede erikjacobsen Ekspert
02. juli 2001 - 16:15 #16
Du kan jo også - hvis det er den måde du opretter den på - skrive

  mysql_query(\"create ...\") or die(mysql_error());
Avatar billede krasmulu Nybegynder
02. juli 2001 - 16:23 #17
Ok.. nu har jeg prøvet de forskellige forslag, men det virker stadig ikke..
Erik > ved dit forslag får jeg
You have an error in your SQL syntax near \')\' at line 12
Avatar billede erikjacobsen Ekspert
02. juli 2001 - 17:21 #18
Fint, så nærmer vi os - der et komma for meget. Sommetider kan man kun se
fejlen, når der er nogen, der peger på den:

create table icq_list
(
  id INT(11) NOT NULL AUTO_INCREMENT,
  Name            varchar(30),
  Age            int(3),
  PRIMARY KEY(id)
);
Avatar billede krasmulu Nybegynder
02. juli 2001 - 19:15 #19
Skønt,,,, Så er det da på plads
Erik det skete en fejl, da jeg skulle overføre point, så du har ikke fået særlig mange.. Er der ikke mulighed for at overføre dem manuelt?
Avatar billede erikjacobsen Ekspert
02. juli 2001 - 19:17 #20
Skidt med de point ... det er godt nok.

Bare du har lært at mysql_error() er din ven...
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