|  | 		    
					
        
         
          
         
	
          | |  | SQL problem... Fra : Steen Broelling
 | 
 Dato :  11-03-02 11:01
 | 
 |  | 
 
            Hej...
 Er der nogen som kan se nogen åbenlyse fejl i nedenstående kode!?? Jeg
 får en mySQL: "Supplied argument is not a valid MySQL-Link resource",
 hvilket jeg ikke helt forstår meningen med...
 --
 if ($searchme) {
 $sql = "SELECT DATE_FORMAT(dato, '%d-%m-%Y') AS datoen, initialer,
 antal, loknavn FROM FUGLEDATA a, TURDATA b, ARTDATA c, LOKALITETER d,
 ARTSGRUPPE e, OBSERDATA f";
 $sql = "WHERE a.turid = b.turid AND a.artnr = c.artnr AND b.loknr =
 d.loknr AND b.obserid = f.id ";
 if ($art) {
 $sql = "AND c.artnavn LIKE '%$art%' ";
 }
 if ($betweendato) {
 $first_dato = "$year-$month-$day";
 $second_dato = "$year1-$month1-$day1";
 $sql = "AND b.dato BETWEEN '$first_dato' AND '$second_dato' ";
 }
 if ($yeardato) {
 $sql = "AND b.dato LIKE '$thisyear-%$m%-%$d%' ";
 }
 if ($lokdata) {
 $sql = "AND d.loknr = '%$loknavn%' ";
 }
 if ($status) {
 $sql = "AND c.status = '$statusnummer' ";
 }
 if ($gruppedata) {
 $sql = "AND e.gruppeid = '$gruppenummer' AND c.artnr BETWEEN
 '$euring1' AND '$euring2' ";
 }
 if ($obserdata) {
 $sql = "AND f.id = '%$observer%' ";
 }
 $sql = "ORDER BY b.dato DESC";
 $result = mysql_query($sql,$db);
 $nrows  = @mysql_num_rows($result);
 if ($nrows>0) {
 while ($row = mysql_fetch_array($result)) {
 $datoen = $row['datoen'];
 $init = $row['initialer'];
 $antal = $row['antal'];
 $loknavn = $row['loknavn'];
 echo "$datoen $loknavn $antal $init<br>";
 }
 }
 --
 Jeg har en fornemmelse af, at det drejer sig om $sql kommandoen -
 variablerne og feltnavnene skulle helt sikkert være ok.
 MVH Steen Brølling
http://www.broelling.dk "Pete sets the pace to anything..."
            
             |  |  | 
  Jonas Koch Bentzen (11-03-2002) 
 
	
          | |  | Kommentar Fra : Jonas Koch Bentzen
 | 
 Dato :  11-03-02 11:31
 | 
 |  | 
 
            Steen Broelling skrev:
 >
 > Er der nogen som kan se nogen åbenlyse fejl i nedenstående kode!?? Jeg
 > får en mySQL: "Supplied argument is not a valid MySQL-Link resource",
 > hvilket jeg ikke helt forstår meningen med...
 Skriv "or trigger_error(mysql_error(), E_USER_WARNING);" efter din 
 mysql_query - så finder du ud af, hvad fejlen er.
 > $sql = "SELECT DATE_FORMAT(dato, '%d-%m-%Y') AS datoen, initialer,
 > antal, loknavn FROM FUGLEDATA a, TURDATA b, ARTDATA c, LOKALITETER d,
 > ARTSGRUPPE e, OBSERDATA f";
 SQL-kommandoer bør normalt skrives med stort, mens tabel- og 
 kolonnenavne bør skrives med småt. Derfor skal f.eks. "fugledata" nok 
 skrives med småt. Det der med "a", "b" osv... Forsøger du at lave 
 aliaser til tabelnavnene? I så fald skal du bruge AS:
 SELECT t1.fuglenavn FROM fugle AS t1
 -- 
 Jonas Koch Bentzen
http://understroem.dk/ |  |  | 
  Mads Lie Jensen (11-03-2002) 
 
	
          | |  | Kommentar Fra : Mads Lie Jensen
 | 
 Dato :  11-03-02 11:46
 | 
 |  | 
 
            On Mon, 11 Mar 2002 11:30:49 +0100, Jonas Koch Bentzen
 <ingen.emailadresse@eksempel.dk> wrote:
 >SQL-kommandoer bør normalt skrives med stort, mens tabel- og 
 >kolonnenavne bør skrives med småt. Derfor skal f.eks. "fugledata" nok 
 >skrives med småt. Det der med "a", "b" osv... Forsøger du at lave 
 >aliaser til tabelnavnene? I så fald skal du bruge AS:
 >
 >SELECT t1.fuglenavn FROM fugle AS t1
 Enig. Men man skal bare huske at på linux (sikkert unix generelt) er der
 forskel på store og små bogstaver i tabelnavne. Så hvis tabellen
 vitterligt hedder 'FUGLENAVN' så fejler skidtet hvis man bruger
 'fuglenavn'.
 -- 
 Mads Lie Jensen - mads@gartneriet.dk - ICQ #25478403
http://www.gartneriet.dk Directory Opus - nu også til windows - http://www.gpsoft.com.au |  |  | 
   Jonas Koch Bentzen (11-03-2002) 
 
	
          | |  | Kommentar Fra : Jonas Koch Bentzen
 | 
 Dato :  11-03-02 12:10
 | 
 |  | 
 
            Mads Lie Jensen skrev:
 >>SELECT t1.fuglenavn FROM fugle AS t1
 > 
 > Enig. Men man skal bare huske at på linux (sikkert unix generelt) er
 > der forskel på store og små bogstaver i tabelnavne.
 Også på Unix generelt, ja.
 > Så hvis tabellen
 > vitterligt hedder 'FUGLENAVN' så fejler skidtet hvis man bruger
 > 'fuglenavn'.
 Jeps.
 -- 
 Jonas Koch Bentzen
http://understroem.dk/ |  |  | 
    Steen Broelling (11-03-2002) 
 
	
          | |  | Kommentar Fra : Steen Broelling
 | 
 Dato :  11-03-02 12:18
 | 
 |  | 
 
            On Mon, 11 Mar 2002 12:10:28 +0100, Jonas Koch Bentzen
 <ingen.emailadresse@eksempel.dk> wrote:
 >> Så hvis tabellen
 >> vitterligt hedder 'FUGLENAVN' så fejler skidtet hvis man bruger
 >> 'fuglenavn'.
 >
 >Jeps.
 Og det gør den nemlig :)
 Nå - det er lykkedes mig at komme fejlene til livs, men jeg får intet
 output, selvom selvsamme SQL gir' et resultat (2 records) i
 phpMyAdmin.
 Spørgsmålet er selvfølgelig om der overhovedet blir' skudt en SQL af i
 scriptet!??
 Visning af data:
 $result = @mysql_query($sql,$db);
 while ($row = @mysql_fetch_array($result)) {
 $datoen = $row['datoen'];
 $init = $row['initialer'];
 $antal = $row['antal'];
 $loknavn = $row['loknavn'];
 echo "$datoen $loknavn $antal $init<br>";
 }
 Steen Brølling
http://www.broelling.dk "Pete sets the pace to anything..."
            
             |  |  | 
     Jonas Koch Bentzen (11-03-2002) 
 
	
          | |  | Kommentar Fra : Jonas Koch Bentzen
 | 
 Dato :  11-03-02 12:25
 | 
 |  | 
 
            Steen Broelling skrev:
 >
 > $result = @mysql_query($sql,$db);
 Hvorfor har du sat snabel-a foran mysql_query? Det er da dumt, når du 
 vil fejlsøge. Og hvorfor har du ikke sat trigger_error på?
 -- 
 Jonas Koch Bentzen
http://understroem.dk/ |  |  | 
      Steen Broelling (11-03-2002) 
 
	
          | |  | Kommentar Fra : Steen Broelling
 | 
 Dato :  11-03-02 12:30
 | 
 |  | 
 
            On Mon, 11 Mar 2002 12:24:42 +0100, Jonas Koch Bentzen
 <ingen.emailadresse@eksempel.dk> wrote:
 >> $result = @mysql_query($sql,$db);
 >
 >Hvorfor har du sat snabel-a foran mysql_query? Det er da dumt, når du 
 >vil fejlsøge. Og hvorfor har du ikke sat trigger_error på?
 @et er fordi jeg får den føromtalte Ressouce-Link fejl, hvis det ikke
 er der.
 Årsagen til det andet, var såmænd blot fordi jeg ikke har fejl i min
 SELECT statement, så vidt jeg kan se - men jeg prøver med den nu :)
 Steen Brølling
http://www.broelling.dk "Pete sets the pace to anything..."
            
             |  |  | 
  Peter Brodersen (11-03-2002) 
 
	
          | |  | Kommentar Fra : Peter Brodersen
 | 
 Dato :  11-03-02 13:39
 | 
 |  | On Mon, 11 Mar 2002 11:00:57 +0100, Steen Broelling <strix@mail.dk>
 wrote:
 
 >Er der nogen som kan se nogen åbenlyse fejl i nedenstående kode!?? Jeg
 >får en mySQL: "Supplied argument is not a valid MySQL-Link resource",
 >hvilket jeg ikke helt forstår meningen med...
 
 Du får den fejl, fordi:
 
 1. Du fyrer en query af, der ikke går godt
 2. UDEN VIDERE forsøger du at bruge resultatet fra din mysql_query,
 uden så meget at tjekke om den overhovedet gik godt!
 
 >$result = mysql_query($sql,$db);
 >$nrows  = @mysql_num_rows($result);
 
 Her går det galt. Du tjekker ikke om $result overhovedet kan bruges
 til noget, før du rask bruger den i næste linje.
 
 Tjek returværdien først, fx:
 
 $result = mysql_query($sql,$db);
 if (!$result) die("Jeg har lavet en fejl!<br>Min query:
 $sql<br>Fejlen: ".mysql_error() );
 $nrows  = @mysql_num_rows($result);
 
 --
 - Peter Brodersen
 
 
 |  |  | 
  Jakob Møbjerg Nielse~ (11-03-2002) 
 
	
          | |  | Kommentar Fra : Jakob Møbjerg Nielse~
 | 
 Dato :  11-03-02 13:54
 | 
 |  | > if ($searchme) {
 >
 > $sql = "SELECT DATE_FORMAT(dato, '%d-%m-%Y') AS datoen, initialer,
 > antal, loknavn FROM FUGLEDATA a, TURDATA b, ARTDATA c, LOKALITETER d,
 > ARTSGRUPPE e, OBSERDATA f";
 > $sql = "WHERE a.turid = b.turid AND a.artnr = c.artnr AND b.loknr =
 > d.loknr AND b.obserid = f.id ";
 
 Her går det galt... du overskriver $sql i stedet for at konkatenere.
 
 --
 Jakob Møbjerg Nielsen
 jakob@dataloger.dk
 "Hey! He reminds me of someone who looks just like him. - Me"
 
 
 
 
 |  |  | 
  Steen Broelling (11-03-2002) 
 
	
          | |  | Kommentar Fra : Steen Broelling
 | 
 Dato :  11-03-02 14:03
 | 
 |  | 
 
            On Mon, 11 Mar 2002 13:53:36 +0100, "Jakob Møbjerg Nielsen"
 <vitz@cs.auc.dk> wrote:
 >> $sql = "SELECT DATE_FORMAT(dato, '%d-%m-%Y') AS datoen, initialer,
 >> antal, loknavn FROM FUGLEDATA a, TURDATA b, ARTDATA c, LOKALITETER d,
 >> ARTSGRUPPE e, OBSERDATA f";
 >> $sql = "WHERE a.turid = b.turid AND a.artnr = c.artnr AND b.loknr =
 >> d.loknr AND b.obserid = f.id ";
 >
 >Her går det galt... du overskriver $sql i stedet for at konkatenere.
 Øhh - altså noget med CONCAT at gøre!??? Jeg troede CONCAT($var,$var1)
 var til at "lægge ting sammen med"....
 Correct me if I'm wrong
 Steen Brølling
http://www.broelling.dk "Pete sets the pace to anything..."
            
             |  |  | 
   Jakob Møbjerg Nielse~ (11-03-2002) 
 
	
          | |  | Kommentar Fra : Jakob Møbjerg Nielse~
 | 
 Dato :  11-03-02 14:14
 | 
 |  | > Øhh - altså noget med CONCAT at gøre!??? Jeg troede
 > CONCAT($var,$var1) var til at "lægge ting sammen med"....
 
 Du skal bare skrive:
 
 $sql = "SELECT DATE_FORMAT(dato, '%d-%m-%Y') AS datoen, initialer,
 antal, loknavn FROM FUGLEDATA a, TURDATA b, ARTDATA c, LOKALITETER d,
 ARTSGRUPPE e, OBSERDATA f";
 $sql = $sql." WHERE a.turid = b.turid AND a.artnr = c.artnr AND b.loknr
 =
 d.loknr AND b.obserid = f.id ";
 
 Og så fremdeles hele vejen gennem koden.
 
 Og da det er et php problem:
 
 FUT: dk.edb.internet.webdesign.serverside.php
 
 --
 Jakob Møbjerg Nielsen
 jakob@dataloger.dk
 "Hey! He reminds me of someone who looks just like him. - Me"
 
 
 
 
 |  |  | 
   Steen Broelling (11-03-2002) 
 
	
          | |  | Kommentar Fra : Steen Broelling
 | 
 Dato :  11-03-02 14:13
 | 
 |  | 
 
            On Mon, 11 Mar 2002 14:03:18 +0100, Steen Broelling <strix@mail.dk>
 wrote:
 >Øhh - altså noget med CONCAT at gøre!??? Jeg troede CONCAT($var,$var1)
 >var til at "lægge ting sammen med"....
 Hmm; jeg begynder at fatte lidt mere. Jeg har nu ændret til $sql .=
 "blah.." - hvorefter hele querien fyres af - tak!
 Nu skal jeg bare lige ha' tjekket, hvorfor der ikke er noget output :)
 Steen Brølling
http://www.broelling.dk "Pete sets the pace to anything..."
            
             |  |  | 
    Jakob Møbjerg Nielse~ (11-03-2002) 
 
	
          | |  | Kommentar Fra : Jakob Møbjerg Nielse~
 | 
 Dato :  11-03-02 16:11
 | 
 |  | > Hmm; jeg begynder at fatte lidt mere. Jeg har nu ændret til
 > $sql .= "blah.."
 
 Du har vel forhåbenligt skrevet $sql .= " blah...". Mellemrummet er
 meget vigtigt. Og igen... denne gruppe er ikke en PHP gruppe:
 
 FUT: dk.edb.internet.webdesign.serverside.php
 
 --
 Jakob Møbjerg Nielsen
 jakob@dataloger.dk
 "Hey! He reminds me of someone who looks just like him. - Me"
 
 
 
 
 |  |  | 
  Jan Eliasen (11-03-2002) 
 
	
          | |  | Kommentar Fra : Jan Eliasen
 | 
 Dato :  11-03-02 15:49
 | 
 |  | 
 
 
 |  |  | 
  Steen Broelling (11-03-2002) 
 
	
          | |  | Kommentar Fra : Steen Broelling
 | 
 Dato :  11-03-02 16:32
 | 
 |  | 
 
            On Mon, 11 Mar 2002 11:00:57 +0100, Steen Broelling <strix@mail.dk>
 wrote:
 Tak allesammen for jeres hjælp!
 MVH Steen Brølling
http://www.broelling.dk "Pete sets the pace to anything..."
            
             |  |  | 
 |  |