Yawa Skrevet 12. april 2010 Del Skrevet 12. april 2010 (endret) Jeg printer ut liste over medlemmer fra databasen på denne måten: <?php $list = '<table>'; $res = mysql_query('SELECT * FROM table'); while ($get = mysql_fetch_assoc($res)) { $list .= '<tr><td>'; $list .= $get['fname'] . ' ' . $get['lname']; $list .= '</td></tr>'; } $list .= '</table>'; print $list; ?> Dette fungerer greit da. Men så fort deler det hele opp til to lister (damer, herrer) så forsvinner endel. Jeg får kun frem de 22 første medlemmene. <?php $list = '<table>'; $res = mysql_query('SELECT * FROM table WHERE gender = "herrer"'); while ($get = mysql_fetch_assoc($res)) { $list .= '<tr><td>'; $list .= $get['fname'] . ' ' . $get['lname']; $list .= '</td></tr>'; } $list .= '</table>'; print $list; ?> Hva kan dette komme av? og enda viktigere Hvordan kan jeg rette opp i dette? Endret 14. april 2010 av Yawa Lenke til kommentar
South_Bridge Skrevet 13. april 2010 Del Skrevet 13. april 2010 snu i hvertfall rundt på quotene... 'SELECT * FROM table WHERE gender = "herrer"' => "SELECT * FROM table WHERE gender = 'herrer'" Lenke til kommentar
Yawa Skrevet 13. april 2010 Forfatter Del Skrevet 13. april 2010 okay, hvorfor det egentlig? hva blir forskjellen? Har gjort det da. Men ble ikke noe forskjell i resultatene... Lenke til kommentar
South_Bridge Skrevet 14. april 2010 Del Skrevet 14. april 2010 Var egentlig bare småpirk... men hvorfor bruker du mysql_fetch_assoc? prøv $get = mysql_fetch_array( $res ); Lenke til kommentar
Ernie Skrevet 14. april 2010 Del Skrevet 14. april 2010 (endret) Var egentlig bare småpirk... men hvorfor bruker du mysql_fetch_assoc? prøv $get = mysql_fetch_array( $res ); Unnskyld meg, men hva i alle dager skal det ha med problemet? Han heter ut resultatet som en assosiativ array, og da blir strengt tatt mysql_fetch_assoc mer passende enn mysql_fetch_array som pr. standard også vil hente ut en numerisk array av radene. Yawa: Hvordan er den tabellen definert? Spesielt gjelder det gender. Endret 14. april 2010 av Ernie Lenke til kommentar
South_Bridge Skrevet 14. april 2010 Del Skrevet 14. april 2010 Unnskyld meg... Det er greit! er som å lete etter nåla i en høystake da, når ikke all dataen er fremlagt. men nå tipper jeg at mengden data her ikke kan sammenlignes med en høystake da hehe. Jeg er også spent på definisjon av tabellen Lenke til kommentar
Yawa Skrevet 14. april 2010 Forfatter Del Skrevet 14. april 2010 (endret) takker for svar folks. jeg fikk det til. Usikker på hva som var feil da alle medlemmene plutselig kom frem. Har ikke gjort noe igrunnen bortsett fra å la det ligge litt. Så gikk jeg tilbake og gikk inn på siden igjen i dag, og da var det plutselig helt i orden... Rart da... EDIT: Tabellen er definert med navn: gender og type: varchar (6). Ikke noe spess mer. Sammenligning: UTF-6 danis og NOT NULL da... Endret 14. april 2010 av Yawa Lenke til kommentar
Yawa Skrevet 14. april 2010 Forfatter Del Skrevet 14. april 2010 I forbindelse med samme liste oppsett, så skal jeg ha en endre knapp. Slik at en admin kan få opp en form hvor alle verdiene er satt. slik har jeg lagt denne knappen til: $list .= <input name="id" type="hidden" value="'. $get['id'] .'" /><input name="submit" type="submit" value="Endre" /> Det hele ser da slik ut: <form name="mem_id" method="post" action="/admin.php?page=endre-medlem"> <?php $list = '<table>'; $res = mysql_query("SELECT * FROM members WHERE gender = 'damer'"); while ($get = mysql_fetch_assoc($res_mem)) { $list .= '<tr><td>'; $list .= $get['fname'] .' '. $get['lname'] . ' '; $list .= '<input name="id" type="hidden" value="' . $get['id'] . '" />'; $list .= '<input name="id_sub" type="submit" value="Endre" />'; $list .= '</td></tr>'; } $list .= '</table>'; print $list; ?> </form> Problemet er at riktig ikke blir hentet når jeg klikker på endre, tilhørende til navnet. Da kommer kun den siste på listen. Noen som kjenner til hvordan man får lagt opp en ENDRE-knapp? Lenke til kommentar
South_Bridge Skrevet 15. april 2010 Del Skrevet 15. april 2010 Du må gi knappen din et unikt navn/id og så sjekke POST/GET hvilken som er satt (shoot first ask later metoden). Lenke til kommentar
Yawa Skrevet 15. april 2010 Forfatter Del Skrevet 15. april 2010 Du tenkter på submit-knappen? Hvordan får jeg gjort det i mitt tilfelle? Er det riktig fremgangsmåte og start jeg er på? eller er det en annen mer naturlig måte å gjøre akkurat sistnevnte på? Lenke til kommentar
South_Bridge Skrevet 16. april 2010 Del Skrevet 16. april 2010 (endret) Hvis jeg forstår deg riktig har du en liste med brukere og id til disse og ønsker å ha muligheten til å forrandre id til en bruker. og sånn som du printer det ut blir resultatet noe ala: Per [001] [ENDRE] Pål [002] [ENDRE] Askeladden [003] [ENDRE] MEN: når du lager elementene i html formen gir du ikke id feltene unik id... så når du skal behandle formen så aner koden egentlig likke hvem som er blitt endret om du feks trykker på [ENDRE] for askeladden. Den kjappeste løsningen vil være å gjøre om <input name="id_sub" type="submit" value="Endre" /> til <input name="' . $get['id'] . '" type="submit" value="Endre" /> og da når du løper igjennom postvariablene sjekke ALLE navn (shoot first ask later (aka dum dum varianten, vet ikke om det kan gjøres annerledes)) for å finne ut hvilken knapp som er blitt trykket for å hente ut verdien til denne. du får da henta ut hvilken id som er blitt trykket og du kan jobbe med den videre... Men dette er bare en tanke... det finnes sikkert enklere løsninger, kanskje noen her poster det Og det om jeg har forstått problemet ditt riktig... Endret 16. april 2010 av South_Bridge Lenke til kommentar
TheClown Skrevet 16. april 2010 Del Skrevet 16. april 2010 (endret) Du må ha en form rundt knappen GET <form action="edit.php?id=$IDVARHER"> <input type="submit" name="edit" value="Edit"> </form> POST <form action="edit.php"> <input type="hidden" name="id" value="$IDVARHER"> <input type="submit" name="edit" value="Edit"> </form> På hver av alle resultatene. Endret 16. april 2010 av TheClown Lenke til kommentar
Yawa Skrevet 16. april 2010 Forfatter Del Skrevet 16. april 2010 (endret) ... og ønsker å ha muligheten til å forrandre id til en bruker. ... Jeg ønsker ikke å endre ID'en, men medlemsinformasjonen som ligger på samme rad som ID'en. Som stilling i styret, telefon, adresse-endring, tilgangsrettigheter etc. Menn takk TheClown. Fikk det til nå. Men har en sånn 'gender' som er 2 radio-knapper. Hvordan får jeg valgt den riktige der? Forsøkte, men ingen av dem ble valgt Endret 16. april 2010 av Yawa Lenke til kommentar
South_Bridge Skrevet 17. april 2010 Del Skrevet 17. april 2010 Du må ha en form rundt knappen GET <form action="edit.php?id=$IDVARHER"> <input type="submit" name="edit" value="Edit"> </form> POST <form action="edit.php"> <input type="hidden" name="id" value="$IDVARHER"> <input type="submit" name="edit" value="Edit"> </form> På hver av alle resultatene. Likte løsninga, har ikke tenkt på den Lenke til kommentar
Yawa Skrevet 18. april 2010 Forfatter Del Skrevet 18. april 2010 (endret) Ja det ble veldig greit nå... Men en siste ting. Videre, når jeg klikker på "endre"-knappen. Så kommer jeg til en side med en form som er ferdig utfylt med info fra databasen. Slik er den siden of formen satt opp: <div class="edit_form"> <!-- fyller ut formen basert på medlems-ID'en (SELECT * FROM tbl WHERE id = \'%s\', $id); --> <p><?php include ('/path/to/hent-medlem-script.php'); ?></p> <!-- include: script som oppdaterer databasen. Plassert her for å printe ut en respons --> <h2><?php print $get['fname'] . ' '. $get['lname']; include ('/path/to/endre-medlem-script.php');?></h2> <form name="edit_member"method="post" action="#self"> <table> <tr><th colspan="2" align="left">Kontakt</th></tr> <tr><td colspan="2"><input name="id" type="hidden" value="<?php print $get['id']; ?>" /></td></tr> <tr><td>E-post:</td><td><input name="email" type="text" value="<?php print $get['email'] ?>" /></td></tr> <tr><td>Telefon:</td><td><input name="phone" type="text" value="<?php print $get['phone'] ?>" /></td></tr> <tr><td colspan="2"> </td></tr> <tr><th colspan="2" align="left">Adresse:</th></tr> <tr><td>Sted:</td><td><input name="location" type="text" value="<?php print $get['location'] ?>" /></td></tr> <tr><td>Gate:</td><td><input name="street" type="text" value="<?php print $get['street'] ?>" /></td></tr> <tr><td>Post nr:</td><td><input name="post_nr" type="text" value="<?php print $get['post_nr'] ?>" /></td></tr> <tr><td>Poststed:</td><td><input name="post_loc" type="text" value="<?php print $get['post_loc'] ?>" /></td></tr> <tr><td width="100px"></td><td width="230px"><input name="submit" type="submit" value="Oppdater" /></td></tr> </table> </form> </div><!-- .edit_form --> Når jeg endrer innholdet og klikker på oppdater, så funker det kjempe. Databasen blir oppdatert. Respons av resultatet samt eventuelle feilmeldinger etc. funker også smell. Men når siden refresher og databasen blir oppdatert og responsen blir printet, så oppdaterer ikke innholdet i formen seg. Den gamle informasjonen henger igjen. Oppdagerings-scriptet ser slik ut: <?php if ($_POST['submit']) { // alle - mysql_real_escape_string($_POST['vars']); // diverse valideringsfunksjoner $query = sprintf('UPDATE tbl SET var1 = \'%s\', var2 = \'%s\', ... = WHERE id = \'%s\'', $var1, $var2, ..., $id); $result = mysql_query ($query); print '<span class="green"><strong><em> Oppdatert</em></strong></span>'; } ?> Det er ett av to jeg kunne tenke meg at hadde vert bra. #1 - Når en bruker blir oppdatert, så blir man sendt tilbake til oversikten over medlemmene sammen med en respons som: "Navn ble oppdatert". #2 - At siden bare refresher med responsen etter navnet: "Oppdatert" samt at feltene innheholder de nye informasjonen. Noen som fikk det med seg og skjønnte hva problemet er og hvor jeg vil? Noe sent/tidlig nå, så godt mulgi at noe blir noe uklart. Forsøkte meg på å sette en $_SESSION. Fikk jeg ikke til. Endret 18. april 2010 av Yawa 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å