Avatar billede foght Nybegynder
01. april 2003 - 17:27 Der er 8 kommentarer og
1 løsning

checke efter en bestemt værdi:

Hej, jeg skal have lavet et script hvor jeg checker om der er en bestemt værdi i en række i en tabel. Her er min kode som den ser ud og som jeg ikke kan få til at fungere:

function tilfoej($tilfoej = '')
{
include_once "../adodb/adodb.inc.php"; # load code common to ADODB
$conn = &ADONewConnection('mysqlt');  # create a connection
if (@$conn->Connect('localhost', "root", "", "dhg"))
{
$sql = "SELECT medlem_id, kat_id FROM dhg_medlem_hold ";
$sql.= "WHERE medlem_id = $tilfoej AND kat_id='1'";
$rs = &$conn->Execute($sql);

if($rs){
echo "ham her er ikke spiller";
}else{
echo "ham her er spiller";
}
}
}

Koden ser måske lidt underlig ud for nogen af jer :D Men kernen i det er i udvælgelsen og if sætningen. Tror det er rimelig simpelt, men tror lige jeg skal have nogen friske øjne til at kigge på det. på forhånd tak
Avatar billede foght Nybegynder
01. april 2003 - 17:29 #1
hov, skulle måske forklare at det jeg skal have undersøgt er om personen med det id har kat_id=1 et eller andet sted i tabellen. Han kan godt optræde flere steder med sit medlem_id, men kun eet sted med kat_id=1
Avatar billede jakoba Nybegynder
01. april 2003 - 17:49 #2
Det er lidt svært at svare på når vi ikke ved hvad din funktion conn->Execute(...) gør og returnerer. jeg vil umiddelbart gætte på at den indeholder et kald til mysql_query og returnere det der kommer ud af det kald.

og det er KUN false hvis der er fejl i din sql_kommando. Hvis der blot ikke findes noget returneres et gyldigt resultatsæt der blot ikke indeholder nogen rækker.

    if($rs){
        // sql forespørgselen gik godt
        if ( mysql_num_rows( $rs ) > 0 ) {
            echo "ham her er ikke spiller";
        }else{
            echo "ham her er spiller";
        }
    } else {
        echo "fejl i sql kommandoen '". $sql ."'.";
    }

mvh JakobA
Avatar billede foght Nybegynder
01. april 2003 - 17:57 #3
jeps, kan godt se logikken i den her: (har lige rettet den til så det er helt rigtigt)

if($rs){
        // sql forespørgselen gik godt
        if ( mysql_num_rows( $rs ) < 0 ) {
            echo "ham her er ikke spiller";
        }else{
            echo "ham her er spiller";
        }
    } else {
        echo "fejl i sql kommandoen '". $sql ."'.";
    }

Men det virker desværre ikke. Uanset hvad jeg gør, så bruger den kun else sætningen. Forstår jeg ikke lige.
Avatar billede foght Nybegynder
01. april 2003 - 17:58 #4
edit: den udskriver kun else sætningen: echo "ham her er spiller";
Avatar billede jakoba Nybegynder
01. april 2003 - 18:07 #5
antallet af udtrukne rækker kan aldrig være mindre end 0. det kan være 0 (nul) hvis der ikke blev fundet nogen rækker, eller større end 0 hvis der blev fundet noget.
så jeg insisterer:
        if ( mysql_num_rows( $rs ) > 0 ) {

eller måske
        if ( mysql_num_rows( $rs ) == 0 ) {  // fandt indenting
Avatar billede foght Nybegynder
01. april 2003 - 18:09 #6
d'oh.. "mindre end 0".. flot Bo.. men jeg har prøvet begge veje, og den skriver stadig kun else sætningen ligemeget hvad
Avatar billede foght Nybegynder
01. april 2003 - 18:15 #7
når jeg skriver den her ind istedet:

while (!$rs->EOF) {
      echo $rs->fields[kat_id];
        $rs1->MoveNext();
}

så skriver den fint et 1 tal for dem som er spillere, og ved dem der ikke er spillere skriver den ikke noget. Det jeg ikke forstår.
Avatar billede foght Nybegynder
01. april 2003 - 18:16 #8
sikke jeg vrøvler.
edit:
så skriver den fint et 1 tal for dem som er spillere, og ved dem der ikke er spillere skriver den ikke noget. Defor forstår jeg ikke at det ikke virker når det bliver bygget op i en if-struktur
Avatar billede foght Nybegynder
07. april 2003 - 19:34 #9
nå, jeg fandt en anden løsning. Men tak for forslagene
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