Avatar billede tilbageblik Nybegynder
08. januar 2004 - 22:45 Der er 8 kommentarer og
1 løsning

Problem: supplied argument not valid?

Nedenfor er en klippe/klistre af den kode, der volder mig problemer... Er der en af jer hajer, der kan bøje i neon for mig, hvad hulen jeg gør galt? :)

***** KODE START *****
<?php
//Login til databasen
include ("include/dblogin.php");

//Hent fil, der genererer SELECT-menu for datoer
//include ("include/dato_select.php");

$dato_tabel = "tabel_datoer";

//Query til udtræk af datoer fra dato-tabellen
$dato_query = "SELECT dato FROM $dato_tabel ORDER BY id ASC";

$dato_result = mysql_db_query ($dbname, $dato_query, $dato_connect);

if (!$dato_result)
{
print("Dato-query ikke udført..!");
}

//Lav dropdown/select-menu
print ("<form action=\"$PHP_SELF\">\n");
print ("<select name=\"tabel_for_dato\" onchange=\"submit();\">\n"); // _for_
print ("<option></option>\n");

while ($dato_row = mysql_fetch_array ($dato_result))
{
print ("<option>$dato_row[dato]</option>\n");
}
print ("</select>\n");
print ("</form>\n");
print ("<br>\n");
//Dropdown/select-menu slut

mysql_close ($dato_connect);

$tabel_for_dato = "$tabel_for_dato"; // _for_

/*
if (!$tabel_dato)
{print ("Variablen tabel_dato er tom!<br>\n");
$tabel_dato = "03032004";}
*/

if (!$tabel_for_dato)
{
print ("Vælg en dato i menuen ovenfor! (Variablen tabel_for_dato er tom)<br>\n");
}

else
{
//Dato-afhængigt udtræk af resultater
$resultat_query = "SELECT * FROM $tabel_for_dato ORDER BY placering ASC";

if (!$resultat_query)
{
print ("$tabel_for_dato");
}

$resultat_result = mysql_db_query ($dbname, $resultat_query, $resultat_connect);

if (!$resultat_result)
{
print("Resultat-querien <strong>$resultat_query</strong> blev <em>ikke</em> udført..!<br>\n");
print ("$tabel_for_dato");
}

print ("<table width=\"100%\" class=\"results\">\n");
print ("<tr>\n");
print ("<th width=\"10%\" align=\"left\">Heat nr.</th>\n");
print ("<th width=\"10%\" align=\"left\">Bil nr.</th>\n");
print ("<th width=\"40%\" align=\"left\">Kører</th>\n");
print ("<th width=\"10%\" align=\"left\">Reaktionstid</th>\n");
print ("<th width=\"20%\" align=\"left\">Tid</th>\n");
print ("<th width=\"10%\" align=\"left\">Placering</th>\n");
print ("</tr>\n");

while ($resultat_row = mysql_fetch_array($resultat_result)){
print ("<tr>\n");
print ("<td width=\"10%\" align=\"left\">$resultat_row[heatnr]</td>\n");
print ("<td width=\"10%\" align=\"left\">$resultat_row[bilnr]</td>\n");
print ("<td width=\"40%\" align=\"left\">$resultat_row[koerer]</td>\n");
print ("<td width=\"10%\" align=\"left\">$resultat_row[reaktionstid]</td>\n");
print ("<td width=\"20%\" align=\"left\">$resultat_row[tid]</td>\n");
print ("<td width=\"10%\" align=\"left\">$resultat_row[placering]</td>\n");
print ("</tr>\n");}
print ("</table>\n");
}

//Luk forbindelsen til databasen
mysql_close ($resultat_connect);
?>
***** KODE SLUT *****

På forhånd en milliard million tak!
Avatar billede tilbageblik Nybegynder
08. januar 2004 - 22:48 #1
Iøvrigt er jeg godt klar over, at der undervejs i koden er et par passager, som ikke benyttes (kommenteret ud)... Blot til info! ;)
Avatar billede rune.osterdal.com Nybegynder
08. januar 2004 - 22:50 #2
burde du ikke lige beskrive hvor det går galt?
"supplied argument not a valid MySQL result resurce" eller hvad nu det hedder kan jo forekomme flere steder, da du har flere forespørgsler
Avatar billede tilbageblik Nybegynder
08. januar 2004 - 22:59 #3
Forsøg på beskrivelse: Der opstår et problem (med meddelelsen "Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /web/www.design-addict.dk/stribenaalborg/html/resultater.php"), når en dato vælges i SELECT-boksen.

Meddelelsen ved en tom variabel (første indlæsning af siden) skal slutteligt også fjernes, men den får lov at blive, til scriptet kører...
Avatar billede tefcke Nybegynder
09. januar 2004 - 00:34 #4
Nu kan jeg se de først tre steder du bruger mysql_fetch_array() i din kode.

Men fejlen er, at du laver en database forspørgelse, som ikke returnerer noget resultat. Den variabel hvor du tror du har et resultat i, er derfor false (bool), se dokumentationen for mysql_db_query(). I det du prøver at kalde funktionen mysql_fetch_array() med en boolsk værdi, går det galt, da mysql_fetch_array() forventer at få en 'MySQL result resource' som argument (deraf: "Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource").
Avatar billede tilbageblik Nybegynder
11. januar 2004 - 01:29 #5
@ tefcke :
Tak for din kommentar. Har kigget lidt på dokumentationen for mysql_db_query(), men det løser ikke problemet.
I scriptet benytter jeg mysql_fetch_array() to gange, og i det første af tilfældene virker det uden problemer overhovedet; derfor er jeg ganske uforstående overfor fejlen i det næste tilfælde. Den røde tråd i de to udtræk er totalt identisk...
Avatar billede tefcke Nybegynder
11. januar 2004 - 14:57 #6
prøv efter alle dine database querys at skrive:
or die( mysql_error() );
Altså
$dato_result = mysql_db_query ($dbname, $dato_query, $dato_connect) or die( mysql_error() );

Man kan nemlig også få en mysql_fetch_array() warning hvis din database query fejler (da der jo af den grund ikke bliver returneret noget resultat)
Avatar billede rune.osterdal.com Nybegynder
13. januar 2004 - 10:22 #7
nemli' tefcke.
Jeg bruger denne funktion:
function query($sql){
    $result = mysql_query($sql) or die("MYSQL-error:<br>Query: $sql<br>\n Error: ".mysql_errno().": ".mysql_error());
    return $result;
}
.
.
$result = query($sql);
Avatar billede tilbageblik Nybegynder
19. januar 2004 - 01:13 #8
Tak for input, folkens... - Men det fører ikke rigtig nogen steder, og funktion-kravene er i mellemtiden blevet ændret, så problemet har jeg løst på anden vis.

Hvordan lukker jeg mit spørgsmål, så alle er glade og tilfredse?
Avatar billede tilbageblik Nybegynder
08. oktober 2004 - 17:58 #9
Der er nu gået næsten 9 måneder, hvor jeg har ladet spørgsmålet stå åbent for pointgivende svar fra de to deltagere ovenfor - uden svar fra dem.

Derfor tillader jeg mig ganske enkelt at lukke spørgsmålet selv, og hvis det strider imod Ekspertens regler, beklager jeg selvsagt dét og forventer at blive kontaktet på mailen af en Admin med instrukser.

Men som nævnt væsentligt tidligere på året... Tak for indsatsen, begge to! :)
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