01. april 2003 - 17:27Der 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
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
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 ."'."; }
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.
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
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
nå, jeg fandt en anden løsning. Men tak for forslagene
Synes godt om
Ny brugerNybegynder
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.