Avatar billede akyhne Nybegynder
13. juni 2008 - 00:38 Der er 18 kommentarer og
1 løsning

Warning: mysql_fetch_array fejl

Hvorfor fejler denne:

$conn = mysql_connect($DBsti, $DBuser, $DBpassword);
mysql_select_db($DBdatabase);
$query = mysql_query("SHOW TABLES LIKE '".$tabel."'");
if (mysql_num_rows($query) == 1) //Tabellen eksisterer
{
    $conn = mysql_connect($DBsti, $DBuser, $DBpassword);
    mysql_select_db($DBdatabase);
    $result = mysql_query("select * from '".$tabel."'");
    while($row = mysql_fetch_array($result)) {
        echo $row["Id"];
    }

} // Slut på check om tabel eksisterer
else {
  echo 'Fejl!';// Tabellen eksisterer ikke
}

Fejl: "supplied argument is not a valid MySQL result resource in /home/www/et-sted"
Kommer ved denne linie: while($row = mysql_fetch_array($result)) {
Avatar billede olebole Juniormester
13. juni 2008 - 00:48 #1
<ole>

$result = mysql_query("select * from `".$tabel."`");

/mvh
</bole>
Avatar billede olebole Juniormester
13. juni 2008 - 00:49 #2
- men er du forøvrigt sikker på, du skal bruge alle felterne i rækken til noget? Skal du ikke det, bør du nok ikke bruge '*'  ;o)
Avatar billede akyhne Nybegynder
13. juni 2008 - 00:54 #3
Hmm, fik det til at virke med $result = mysql_query("select * from ".$tabel);
Avatar billede akyhne Nybegynder
13. juni 2008 - 00:56 #4
Ja olebole, jeg skal bruge alle rækker. Id er ID-numre på rækker fra en anden tabel som på en eller anden måde skal hentes i stedet for echo $row["Id"];
Avatar billede akyhne Nybegynder
13. juni 2008 - 01:00 #5
Jeg undrer mig også over at..

    $conn = mysql_connect($DBsti, $DBuser, $DBpassword);
    mysql_select_db($DBdatabase);
    $result = mysql_query("select * from '".$tabel."'");
    while($row = mysql_fetch_array($result)) {
        echo $row["Id"];
    }
.. virkede ganske fortrinligt, inden jeg tilføjede check på om tabellen eksisterer.

Nogen gange har jeg også gjort således: $getSQL = "SELECT * FROM EtEllerAndet WHERE user_name = \"$loginbruger\"";
Avatar billede olebole Juniormester
13. juni 2008 - 01:02 #6
Det sikreste er at backtick'e både tabel- og feltnavne. Har du f.eks. dette kald:
    $sql = "SELECT navn, adresse, postnr, by, telefon FROM mintabel";
    $result = mysql_query($sql);

- vil du generere en fejl. Det sker ikke, hvis du backtick'er  ;o)

Ne, det har ikke virket med gåseøjne om tabelnavnet  =)
Avatar billede olebole Juniormester
13. juni 2008 - 01:06 #7
Hvad sker der, hvis du skriver:
    $query = mysql_query("SHOW TABLES LIKE '".$tabel."'") or die(mysql_error());

- og:
    $result = mysql_query("select * from '".$tabel."'") or die(mysql_error());
Avatar billede olebole Juniormester
13. juni 2008 - 01:09 #8
Det er forøvrigt ganske overflødigt at åbne forbindelsen og vælge DB to gange ... én gang burde være nok  ;o)
Avatar billede akyhne Nybegynder
13. juni 2008 - 01:12 #9
"Hvad sker der, hvis du skriver:"...

Denne fejl: 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 ''tabelnavnet'' at line 1
Avatar billede akyhne Nybegynder
13. juni 2008 - 01:13 #10
13/06-2008 01:09:56 *SSS* - sådan går det når man roder..
Avatar billede akyhne Nybegynder
13. juni 2008 - 01:18 #11
Hmm.. hvorfor dør $row efter slutparantesen på min while-lykke???
Avatar billede olebole Juniormester
13. juni 2008 - 01:59 #12
ehhh ... jamen, det er jo lissom hele meningen med en while-løkke  =)

while($row = mysql_fetch_array($result)) {
    // Så længe betingelsen er opfyldt
    // - og $row er lig med 'et eller andet'
    // - gør jeg noget her ...
}
// Så her er $row altså ikke noget  ;o)
Avatar billede olebole Juniormester
13. juni 2008 - 02:01 #13
'while' => 'sålænge'
Avatar billede olebole Juniormester
13. juni 2008 - 02:04 #14
$x = 1;
while ($x) {
    // Uendelig løkke
}

$x = false;
while ($x) {
    // Her kommer vi aldrig ind
}
Avatar billede akyhne Nybegynder
13. juni 2008 - 02:38 #15
Ok. Tak for hjælpen. Jeg har fået det hele til at virke. Smid et svar.
Avatar billede olebole Juniormester
13. juni 2008 - 03:13 #16
Selvtak  =)
Avatar billede akyhne Nybegynder
13. juni 2008 - 07:55 #17
Smid også lige et svar her: http://www.eksperten.dk/spm/824088#rid7133637
Avatar billede olebole Juniormester
13. juni 2008 - 15:23 #18
- er gjort og tak for points  =)
Avatar billede akyhne Nybegynder
13. juni 2008 - 15:38 #19
Velbekomme :-)
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