Avatar billede zurekk Nybegynder
23. juni 2007 - 12:49 Der er 17 kommentarer og
1 løsning

assoc problem

Hej eksperter,

Jeg er begyndt at få denne fejl konstant:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in .......... on line 160

Min Query virker fint, og da jeg får fejlen flere steder, med forskellige queries har jeg svært ved at tro det har noget med den at gøre.

det er bygget sådan her op:

$sql = "$sql = 'SELECT * FROM `table` WHERE `row`=1 ORDER BY date';
$query = mysql_query( $sql );

if()
{
  while( $get = mysql_fetch_assoc( $query ) )
}

Noget galt med den opstilling?

(har ikke flere points at give ud af :)
På forhånd tak!
Avatar billede kimg Nybegynder
23. juni 2007 - 13:02 #1
Prøv med denne.
$sql =  mysql_query('SELECT * FROM `table` WHERE `row`=1 ORDER BY date');
$query = mysql_query( $sql );

Kim
Avatar billede kimg Nybegynder
23. juni 2007 - 13:03 #2
Sådan selvfølgelig ;-)
$sql =  mysql_query('SELECT * FROM `table` WHERE `row`=1 ORDER BY date');
while( $get = mysql_fetch_assoc( $sql ) ){

}
Avatar billede zurekk Nybegynder
23. juni 2007 - 13:21 #3
Det er præcist det samme, bare i én variabel :)

Og har desuden prøvet det :D
Avatar billede kimg Nybegynder
23. juni 2007 - 13:52 #4
din tabel hedder "table" og du har en kolonne der hedder "row" samt et felt der hedder "date"
hvis du har de ovenstående felter så skal det virke ;-)

Prøv evt.
$sql =  mysql_query('SELECT * FROM `table` WHERE `row`='1' ORDER BY 'date'');
while( $get = mysql_fetch_assoc( $sql ) ){

}
Avatar billede jakobdo Ekspert
23. juni 2007 - 13:57 #5
Du skal huske på, mysql_fetch_assoc() fejler hvis resultatet er tomt.

Så overvej evt.:

$sql = "$sql = 'SELECT * FROM `table` WHERE `row`=1 ORDER BY date';
$query = mysql_query( $sql );

if(mysql_num_rows($query)>0)
{
  while( $get = mysql_fetch_assoc( $query ) )
{
//Noget med din $get data.
}
}
Avatar billede zurekk Nybegynder
23. juni 2007 - 13:57 #6
Som sagt, querien virker, 100%, henter info ud fra den før min if, og det går fint.

Og du har intet ændret?
Avatar billede kimg Nybegynder
23. juni 2007 - 14:08 #7
så kigger du ikke ordentlig efter '1' og 'date' prøv det jakobdo forslår.
Avatar billede erikjacobsen Ekspert
23. juni 2007 - 14:12 #8
Få at vide hvad fejlen er, stedet for at gætte:

$query = mysql_query( $sql ) or die(mysql_error());
Avatar billede zurekk Nybegynder
23. juni 2007 - 14:16 #9
erikjacobsen > Den viser ingen fejl :) Har også kørt den i phpmyadmin, og den finder fint 3 resultater.

I to andre > Min while køres _KUN_ hvis den finder noget.
Avatar billede zurekk Nybegynder
23. juni 2007 - 14:18 #10
Og værre er at den viser fejl, kører min while én gang, og stopper.
Avatar billede erikjacobsen Ekspert
23. juni 2007 - 14:19 #11
Du er velkommen til at
1) vise din kode, som den ser ud nu
2) fortælle hvad det er, der ikke virker
Avatar billede zurekk Nybegynder
23. juni 2007 - 14:26 #12
$sql = 'SELECT * FROM `table` WHERE `row`=1 ORDER BY dated';
        $query = mysql_query( $sql ) or die(mysql_error());
        $nums = mysql_num_rows( $query );

        if( $nums == 0 ) $GLOBALS['stop']++;
       
        if() {}
        elseif( $GLOBALS['stop'] == 0 AND $_POST['quickact'] == 'del' )
            {
                while( $gets = mysql_fetch_assoc( $query ) )
                    {
                        if( isset( $_POST['quick_' . $gets['id']] ) )
                            {
                                $sql = 'DELETE FROM `table` WHERE `row`=1 AND `id`=' . $gets['id'] . '';
                                $query = mysql_query( $sql );
                               
                                if( !$query ) echo '<script>alert( \'An error has occured!\' );</script>';
                            }
                    }
            }
Avatar billede zurekk Nybegynder
23. juni 2007 - 14:27 #13
Som sagt, sletter den én ting, altså kører min while én gang, og viser fejl.
Avatar billede erikjacobsen Ekspert
23. juni 2007 - 14:31 #14
Du skal nok kun bruge navnet $query til en og samme ting, og lade være med at "genbruge" den ;)
Avatar billede zurekk Nybegynder
23. juni 2007 - 15:14 #15
Well, så skulle jeg finde på 23203 navne til mine queries :D
Overskriver den ikke bare min nuværende $query?
Avatar billede zurekk Nybegynder
23. juni 2007 - 15:18 #16
Men det virkede da jeg ændrede navnet på min delete query, sikkert fordi jeg min while kørte min DELETE query efter første gang.

Smid et svar erik(også selvom du ikke samler på point) :)
Avatar billede erikjacobsen Ekspert
23. juni 2007 - 15:57 #17
Min opfordring til ikke at genbruge navne gælder selvfølgelig kun i kodestumper, hvor man netop overskriver andre værdier, man skal bruge.

Det kunne også gælde din $sql-variabel, som du ganske vist godt kan genbruge, da du ikke bruger den tidligere værdi. For læselighed kunne man give dem forskellige navne.

Nej tak, jeg samler slet ikke på point.
Avatar billede zurekk Nybegynder
26. juni 2007 - 21:42 #18
ff
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