Gå til innhold

hindre skriving til mysql flere ganger ved refresh


Anbefalte innlegg

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? :hrm:

 

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 av hockey500
Lenke til kommentar
Videoannonse
Annonse

<?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
ThaMezzy: funka ikke  :cry:. 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 av ThaMezzy
Lenke til kommentar

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; :blush:)

 

<?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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...