hockey500 Skrevet 19. juni 2005 Del Skrevet 19. juni 2005 (endret) Hei, var litt usikker på tittelen, men håper dere skjønte det. problemet er at en rad legges til flere ganger i en tabell hvis man refresher siden. prøver å forklare litt nærmere: 1: Man går inn på siden og skriver der inn hva man ønsker å legge inn i tabell (fornavn, etternavn, mobil nr.) 2: man trykker "Legg til" og verdiene legges til i tabellen og tabellen vises på siden. 3: både html koden (<form method="POST">osv osv...</form>) og php koden som behandler verdiene legges i samme fil. 4: Hvis man etter å ha lagt til en person i tabellen en gang og trykker refresh vil raden med fornavn, etternavn og mobil legges til flere ganger. noen som vet hvordan jeg forhindrer at det skjer? EDIT: hvis jeg bruker følgende kode funker det sånn passe: if(empty($fornavn) && empty(etternavn)){} else { $query = "INSERT INTO tabell values('$fornavn','$etternavn','$mobil')"; $resultat = mysql_query($query) or die("En feil oppstod:" . mysql_error()); } da legges det i det minste ikke inn tomme rader hver gang du besøker siden, men det hindrer ikke at samme person legges til flere ganger. Endret 19. juni 2005 av hockey500 Lenke til kommentar
ThaMezzy Skrevet 19. juni 2005 Del Skrevet 19. juni 2005 (endret) Kunne søkt gjennom databasen om alle feltene finnes fra før. Dette vil selvfølgelig ta litt tid når den legger til, men det funker iallefall. Kan gi eksempel på kode hvis det er ønskelig. Endret 19. juni 2005 av ThaMezzy Lenke til kommentar
ThaMezzy Skrevet 19. juni 2005 Del Skrevet 19. juni 2005 <?php $fornavn = $_POST['fornavn']; $etternavn = $_POST['etternavn']; $mobil = $_POST['mobil']; $sjekker = mysql_query("SELECT * FROM nyheter WHERE mobil = '$mobil' AND fornavn = '$fornavn' AND etternavn = '$etternavn'"); if(@mysql_num_rows($sjekker) == 0) { echo "Hei, du la til dette fint"; } else { echo "Dette innleggeet fins allerede"; } ?> Er veldig trett nå grunnet LAN så kan hende dette ble veldig rart, skal se ordentlig på det etterpå når jeg har fått meg en dusj. Lenke til kommentar
Gilbert Skrevet 19. juni 2005 Del Skrevet 19. juni 2005 ...eller man kan putte inn i en session når brukeren sist skrev den spørringen Lenke til kommentar
hockey500 Skrevet 19. juni 2005 Forfatter Del Skrevet 19. juni 2005 ThaMezzy: funka ikke . og sessions har jeg ikke peiling på. skal se om jeg finner noe *søke søke* Lenke til kommentar
ThaMezzy Skrevet 19. juni 2005 Del Skrevet 19. juni 2005 (endret) ThaMezzy: funka ikke . og sessions har jeg ikke peiling på. skal se om jeg finner noe *søke søke* Kom det en feilmelding eller lagde den to stykker? For den bure funke. Ville kanskje brukt sessions. Kan sikkert gi noen eksempler derå Endret 19. juni 2005 av ThaMezzy Lenke til kommentar
hockey500 Skrevet 21. juni 2005 Forfatter Del Skrevet 21. juni 2005 jeg klarte det. løsningen ble som du sa, var visst bare jeg som gjorde en feil. (feilen var $num_rows = 0; istedenfor $num_rows == 0; ) <?php $user = "root"; $pass= "**********"; $host = "localhost"; $connection = mysql_connect($host, $user, $pass); mysql_select_db("ojk"); $insertfnavn = $_POST['insertfnavn']; $insertenavn = $_POST['insertenavn']; $insertmobil = $_POST['insertmobil']; $sporring = "SELECT * FROM ojk WHERE fornavn='$insertfnavn' AND etternavn='$insertenavn'"; $sporringresultat = mysql_query($sporring) or die(mysql_error()); $num_rows = mysql_num_rows($sporringresultat); if(!empty($insertfnavn) && !empty($insertenavn) && $num_rows == 0){ $query = "INSERT INTO ojk values('$insertfnavn','$insertenavn','$insertmobil')"; $resultat = mysql_query($query) or die("Could not execute query:" . mysql_error()); } $query2 = "SELECT * FROM ojk"; $resultat2 = mysql_query($query2) or die("Beklager, en feil oppstod:". mysql_error()); echo "<table border='1' style='width:350px;'><tr><th>#</th><th>Navn</th><th>Etternavn</th><th>Mobil nummer</th></tr>"; $nrr = 1; while ($rad = mysql_fetch_array($resultat2)) { $navnf = $rad['Fornavn']; $navne = $rad['Etternavn']; $nr = $rad['Mobil']; if($nr == '') $nr = " "; echo "<tr><td>" . $nrr . "</td><td>" . $navnf . "</td><td>". $navne ."<td>" . $nr ."</td></tr>"; $nrr++; } echo "</table>"; ?> Lenke til kommentar
Kellendil Skrevet 21. juni 2005 Del Skrevet 21. juni 2005 Jeg ville nok løst ting på en enklere måte.. Send form action til et script som legger til dataene, og redirect tilbake til fremsiden. dermed vil ting bare bli lagt til når du trykker submit. Lenke til kommentar
Torbjørn Skrevet 21. juni 2005 Del Skrevet 21. juni 2005 Det er den foretrukne måten å gjøre det på. Lenke til kommentar
hockey500 Skrevet 21. juni 2005 Forfatter Del Skrevet 21. juni 2005 finnes det noen lettere måte å gjøre det på hvis html og php skal være i samme fil da? Lenke til kommentar
hockey500 Skrevet 21. juni 2005 Forfatter Del Skrevet 21. juni 2005 finnes det en lettere måte å gjøre det på hvis php og html skal være i samme fil da? Lenke til kommentar
Torbjørn Skrevet 21. juni 2005 Del Skrevet 21. juni 2005 Ja, du kan redirecte til deg selv, og deretter en exit, 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å