TeisL Skrevet 20. november 2009 Del Skrevet 20. november 2009 Hei, Tror tittelen sier hva jeg er ute etter. Men jeg trenger et php-debuggings program som ikke koster noe (evt. billig). Har en side som fungerer på en annen server, men selvfølgelig ikke på min... Det er en tabell med mye data fra en database. Siden kommer opp, men det kommer ingen tabell... Poster koden også, tilfelle noen ser på den... <?php header('Content-type: text/html; charset=ISO-8859-15'); include('include/session.php'); define('SELF',$_SERVER['PHP_SELF']); if($session->logged_in && $session->username == 'iaeste') { include('../include/config.php'); mysql_connect($GLOBALS["server"],$GLOBALS["dblogin"], $GLOBALS["dbpassord"]); mysql_select_db($GLOBALS["dbname"]); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Oversiktsside</title> <link rel="stylesheet" type="text/css" href="da_er_smart.css"> </head> <body> <?php if(isset($_REQUEST['fid']) && !empty($_REQUEST['fid'])) { $sql = " SELECT `bedrift`, `email`, `lastUpdated`, `logistikk`, `ankdato`, `ankkl`, `anktransp`, `ankkolli`, `transphjelp`, `foredrag`, `ekstrautstyr`, `rektbord`, `stolar`, `struttak`, `andreynskjer`, `antmiddag` FROM `contents` WHERE `id`=".$_REQUEST['fid']; $r = mysql_query($sql) or die(); $grep = mysql_fetch_assoc($r); $logistikk = ''; if($grep['logistikk'] == 'J') $logistikk = 'Ja'; if($grep['logistikk'] == 'N') $logistikk = 'Nei'; $foredrag = ''; if($grep['foredrag'] == 'J') $foredrag = 'Ja'; if($grep['foredrag'] == 'N') $foredrag = 'Nei'; $transphjelp = ''; if($grep['transphjelp'] == 'J') $transphjelp = 'Ja'; if($grep['transphjelp'] == 'N') $transphjelp = 'Nei'; echo "\t<h1>".$grep['bedrift']."</h1>\n"; echo "\t<table class=\"bedrift\">\n\t<tr>\n"; echo "\t\t<th>Epost:</th>\n\t\t<td>".$grep['email']."</td>\n"; echo "\t</tr><tr>\n"; echo "\t\t<th>Sist oppdatert:</th>\n\t\t<td>".$grep['lastUpdated']."</td>\n"; echo "\t</tr><tr>\n"; echo "\t\t<th>Sender stands:</th>\n\t\t<td>".$logistikk."</td>\n"; echo "\t</tr><tr>\n"; echo "\t\t<th>Ankomstdato:</th>\n\t\t<td>".$grep['ankdato']."</td>\n"; echo "\t</tr><tr>\n"; echo "\t\t<th>Klokkeslett:</th>\n\t\t<td>".$grep['ankkl']."</td>\n"; echo "\t</tr><tr>\n"; echo "\t\t<th>Ankomst transport:</th>\n\t\t<td>".$grep['anktransp']."</td>\n"; echo "\t</tr><tr>\n"; echo "\t\t<th>Antal kolli:</th>\n\t\t<td>".$grep['ankkolli']."</td>\n"; echo "\t</tr><tr>\n"; echo "\t\t<th>Transporthjelp Bergen:</th>\n\t\t<td>".$transphjelp."</td>\n"; echo "\t</tr><tr>\n"; echo "\t\t<th>Ekstrautstyr:</th>\n\t\t<td>".$grep['ekstrautstyr']."</td>\n"; echo "\t</tr><tr>\n"; echo "\t\t<th>Foredrag:</th>\n\t\t<td>".$foredrag."</td>\n"; echo "\t</tr><tr>\n"; echo "\t\t<th>Antal bord:</th>\n\t\t<td>".$grep['rektbord']."</td>\n"; echo "\t</tr><tr>\n"; echo "\t\t<th>Antal stolar:</th>\n\t\t<td>".$grep['stolar']."</td>\n"; echo "\t</tr><tr>\n"; echo "\t\t<th>Antal straumuttak:</th>\n\t\t<td>".$grep['struttak']."</td>\n"; echo "\t</tr><tr>\n"; echo "\t\t<th>Andre ynskjer:</th>\n\t\t<td>".$grep['andreynskjer']."</td>\n"; echo "\t</tr><tr>\n"; echo "\t\t<th>Antal middagsgjestar:</th>\n\t\t<td>".$grep['antmiddag']."</td>\n"; ?> </tr> </table> <p> <a href="<?php echo SELF; ?>">Tilbake</a> </p> <?php } else { $sql = " SELECT ( SELECT COUNT(`logistikk`) FROM `contents` WHERE `logistikk`='J' ) AS `logistikk`, ( SELECT COUNT(`transphjelp`) FROM `contents` WHERE `transphjelp`='J' ) AS `transphjelp`, SUM(`ankkolli`) as `ankkolli`, ( SELECT COUNT(`foredrag`) FROM `contents` WHERE `foredrag`='J' ) AS `foredrag`, SUM(`rektbord`) AS `rektbord`, SUM(`stolar`) AS `stolar`, SUM(`struttak`) AS `struttak`, SUM(`antmiddag`) AS `antmiddag` FROM `contents` "; $r = mysql_query($sql) or die(); ?> <h1>Oversikt</h1> <table> <tr> <th>Bedrift</th> <th>Ankomst- dato</th> <th>Sender stands</th> <th>Antal kolli</th> <th>Transporthjelp Trondheim</th> <th>Foredrag</th> <th>Antal bord</th> <th>Antal stolar</th> <th>Antal straum- uttak</th> <th>Antal middags- deltakarar</th> </tr> <tr> <th></th> <th></th> <?php while($grep = mysql_fetch_assoc($r)) { echo "\t\t<th>".$grep['logistikk']."</th>\n"; echo "\t\t<th>".$grep['ankkolli']."</th>\n"; echo "\t\t<th>".$grep['ankkolli']."</th>\n"; echo "\t\t<th>".$grep['foredrag']."</th>\n"; echo "\t\t<th>".$grep['rektbord']."</th>\n"; echo "\t\t<th>".$grep['stolar']."</th>\n"; echo "\t\t<th>".$grep['struttak']."</th>\n"; echo "\t\t<th>".$grep['antmiddag']."</th>\n"; } echo "\t</tr>"; $sql = " SELECT `id`, `bedrift`, `ankdato`, `logistikk`, `ankkolli`, `transphjelp`, `foredrag`, `rektbord`, `stolar`, `struttak`, `antmiddag` FROM `contents` "; $r = mysql_query($sql) or die(); while($grep = mysql_fetch_assoc($r)) { $logistikk = ''; if($grep['logistikk'] == 'J') $logistikk = 'Ja'; if($grep['logistikk'] == 'N') $logistikk = 'Nei'; $transphjelp = ''; if($grep['transphjelp'] == 'J') $transphjelp = 'Ja'; if($grep['transphjelp'] == 'N') $transphjelp = 'Nei'; $foredrag = ''; if($grep['foredrag'] == 'J') $foredrag = 'Ja'; if($grep['foredrag'] == 'N') $foredrag = 'Nei'; echo "<tr>\n"; echo "\t\t<td><a href=\"".SELF.'?fid='.$grep['id'].'">'.$grep['bedrift']."</a></td>\n"; echo "\t\t<td>".$grep['ankdato']."</td>\n"; echo "\t\t<td>$logistikk</td>\n"; echo "\t\t<td>".$grep['ankkolli']."</td>\n"; echo "\t\t<td>$transphjelp</td>\n"; echo "\t\t<td>".$foredrag."</td>\n"; echo "\t\t<td>".$grep['rektbord']."</td>\n"; echo "\t\t<td>".$grep['stolar']."</td>\n"; echo "\t\t<td>".$grep['struttak']."</td>\n"; echo "\t\t<td>".$grep['antmiddag']."</td>\n"; echo "\t</tr>"; } echo "\t</table>\n"; ?> <p> <a href="main.php">Tilbake</a> </p> <?php } ?> </body> </html> <?php } else {//else location header('Location: xxx'); }//End else loation ?> Lenke til kommentar
ISOS6 Skrevet 21. november 2009 Del Skrevet 21. november 2009 Hei, Prøv denne $sql = "SELECT * FROM contents WHERE id=".$_REQUEST['fid']; Lenke til kommentar
TeisL Skrevet 22. november 2009 Forfatter Del Skrevet 22. november 2009 Hei, Prøv denne $sql = "SELECT * FROM contents WHERE id=".$_REQUEST['fid']; Takk for svar. Byttet ut den første SQL spørringen med denne, men det var ingen endring. Det er bare en blank side. Lenke til kommentar
Jonas Skrevet 22. november 2009 Del Skrevet 22. november 2009 (endret) Dersom det ikke printes ut noe i det hele tatt, så er det sannsynligvis på grunn av at exceptions ikke blir håndtert. Lim inn følgende i toppen av koden og se om du da får noen resultater. ini_set ( 'display_errors', 'On' ); error_reporting ( E_ALL ); Edit: Når det gjelder "debugger" som er gratis og bra, så tror jeg du må lete lenge. Jeg har aldri noen sinne kommet over et stykke programvare som kan debugge på en slik måte at det faktisk hjelper. Du er nok nødt til å lære deg å debugge på egen hånd dersom du skal drive med dette. Endret 22. november 2009 av Jonas Lenke til kommentar
Ernie Skrevet 22. november 2009 Del Skrevet 22. november 2009 Må bare slenge meg på Jonas her. Når man bare koder «happy day scenario» så er det klart man får blank side når noe faktisk går feil. mysql_connect, mysql_select_db, mysql_query og mysql_fetch_assoc er alle funksjoner som gir ut returverdier som kan indikere at noe gikk galt. I stedet for å bare ignorere de helt eller bare slenge på «or die();» (hva nå enn det skal være godt for), bør du i det minste gi ut en feilmelding som kan gi deg en indikasjon på hva som går galt. I tillegg er det også en fordel å sjekke at man får rader tilbake før man forsøker å hente ut en. Lenke til kommentar
TheClown Skrevet 22. november 2009 Del Skrevet 22. november 2009 or die(mysql_error()); 4tw Lenke til kommentar
Ernie Skrevet 23. november 2009 Del Skrevet 23. november 2009 Jeg ville vært svært forsiktig med akkurat det der. mysql_error er en funksjon ment for debugging, ikke offentlig skue. Så lenge man benytter det bare under testing og utvikling så er det ok, men i produksjon kan jeg ikke annet enn å sterkt fraråde bruken av den så lenge brukeren ser returverdien fra mysql_error. Lenke til kommentar
Edorph Skrevet 23. november 2009 Del Skrevet 23. november 2009 Edit: Når det gjelder "debugger" som er gratis og bra, så tror jeg du må lete lenge. Jeg har aldri noen sinne kommet over et stykke programvare som kan debugge på en slik måte at det faktisk hjelper. Du er nok nødt til å lære deg å debugge på egen hånd dersom du skal drive med dette. Bruker selv Eclipse PDT med xdebug, og det funker kjempefint det - med breakpoints, stepping og ellers det meste hva hjertet kan begjære. Men er enig i at med riktig logging og tester så dukker de fleste bugs opp før man kommer til det punktet hvor en debugger egentlig er nødvendig. Lenke til kommentar
TheClown Skrevet 24. november 2009 Del Skrevet 24. november 2009 Jeg ville vært svært forsiktig med akkurat det der. mysql_error er en funksjon ment for debugging, ikke offentlig skue. Så lenge man benytter det bare under testing og utvikling så er det ok, men i produksjon kan jeg ikke annet enn å sterkt fraråde bruken av den så lenge brukeren ser returverdien fra mysql_error. No waaay? Det er jo en selvfølge. Personlig pleier jeg å kjøre en funksjon som lagrer mysql_error, __LINE__, __FILE__ time() og spørring i database, og enkel echoing/redirecting til brukeren. Har alltid funket fint for meg, men under testing/development er mysql_error() er must. Lenke til kommentar
Ernie Skrevet 24. november 2009 Del Skrevet 24. november 2009 (endret) Det er dessverre langt fra noen selvfølge. Endret 24. november 2009 av Ernie Lenke til kommentar
TheClown Skrevet 24. november 2009 Del Skrevet 24. november 2009 Nå kan ikke jeg påta meg andre folks feil, men jeg har konsekvent byttet fra die(mysql_error()); til en funksjon når jeg er ferdig med testing og har et ferdig produkt. At andre ikke gjør det er dårlig kodevane imo. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå