Avatar billede tobrukDk Novice
04. marts 2012 - 17:28 Der er 7 kommentarer og
1 løsning

findes email i database men skal kun updater email hvis den ikke gøre

Hej

Overskift giv næsten sig selv ville jeg håbe på :)

det er sådan at jeg er kommet frem til et proble som lyde til at det kan være det her


<?php
include("include/database/db.php");

if (isset($_POST['updater'])) {
    $id = $_POST['id'];
    $email = $_POST['email'];
   
   
    $bruger = mysql_query("SELECT * FROM brugere WHERE email='$email'");
          if(mysql_num_rows($bruger) < 0){
              $tabledata = "UPDATE brugere SET email = '$email' WHERE `id` = $id";
              $resultat = mysql_query($tabledata) or die (mysql_error());
             
              if (mysql_affected_rows() > 0) {
                  header("Location: admin_index.php");
              }
          }
    else {
        echo "Der ske en fejl";
    }
}
else
    echo "Der ske ingen ting";
?>


det er sådan at jeg vil gerne have at den skal kunne updater email hvis det er sådan at Email ikke findes i databasen.

Den skal ikke updater email adr hvis den findes dog pga at sikkerhed overskyld hvis man kan sige det på en måde fordi hvis 2 email er ens og den anden har admin adgang så ville det være utroligt mørkeligt hvis det var sådan at fucket op ..




sådan her se min kode ud fra starte af!!


<a href="admin_bruger_emailupdater.php?id=<?php echo $row['id'];?>"><?php echo $row['email'];?></a>


og det er sådan at den skal gå hen til brugers id / email adr og skulle kunne opdater den..

så er det her admin_bruger_emailupdater.php


<?php
        $id = $_GET['id'];
        $result = mysql_query("SELECT * FROM `brugere` WHERE id = $id");
        $num_rows = mysql_num_rows($result);
        if ($num_rows == 0) {
            echo "admin_index.php";   
        }       
        while($row = mysql_fetch_array($result))
        {
        ?>
            <form method="post" action="admin_bruger_email_updater.php">
                <input name="id" value="<?php echo $row['id'];?>" type="hidden">
                <input type="email" name="email" placeholder="<?php echo $row['email'];?>" value="<?php echo $row['email'];?>">
                <br>
                <input type="submit" value="Updater email" name="updater">
            </form>
        <?php
        }
        ?> 


og hvis det er man gør det som der stå så gå den videre her til som er her admin_bruger_email_updater.php


<?php
include("include/database/db.php");

if (isset($_POST['updater'])) {
    $id = $_POST['id'];
    $email = $_POST['email'];
   
   
    $bruger = mysql_query("SELECT * FROM brugere WHERE email='$email'");
          if(mysql_num_rows($bruger) < 0){
              $tabledata = "UPDATE brugere SET email = '$email' WHERE `id` = $id";
              $resultat = mysql_query($tabledata) or die (mysql_error());
             
              if (mysql_affected_rows() > 0) {
                  header("Location: admin_index.php");
              }
          }
    else {
        echo "Der ske en fejl";
    }
}
else
    echo "Der ske ingen ting";
?>


Spørger hvis der er noget i gerne vil vide eller har noget som i ikke helt forstår.. :)
Avatar billede inteeeL Nybegynder
04. marts 2012 - 17:55 #1
Du skal foretage et tjek i databasen, før du opdaterer brugerens email. Du tjekker, om der findes en bruger med tilsvarende email. Hvis der ikke findes en bruger med tilsvarende email, fortsætter scriptet - ellers udskriver du en fejlmeddelelse. Det kunne se sådan her ud:
<?php

include("include/database/db.php");

if (isset($_POST['updater'])) {
    $id = $_POST['id'];
    $email = $_POST['email'];
 
    $bruger = mysql_query("SELECT * FROM brugere WHERE email='$email'");
    if(mysql_num_rows($bruger) == 0){
        $tabledata = "UPDATE brugere SET email = '$email' WHERE `id` = $id";
        $resultat = mysql_query($tabledata) or die (mysql_error());
               
        if (mysql_affected_rows() > 0) {
            header("Location: admin_index.php");
        }
    }
    else {
        echo "Der findes allerede en bruger med denne email";
    }
}
else {
    echo "Der ske ingen ting";
}
   
?>

Hvis mysql_num_rows($bruger) er lig med 0, betyder det, at der ingen bruger med tilsvarende email er - ergo scriptet kan fortsætte (mysql_num_rows vil aldrig returnere < 0 rækker, enten er der rækker, ellers er der ikke). Hvis mysql_num_rows($bruger) derimod er større end 0 betyder det, at der findes en bruger med tilsvarende email, derfor udskrives fejlmeddelelsen ""Der findes allerede en bruger med denne email".
Avatar billede tobrukDk Novice
04. marts 2012 - 18:00 #2
#1

jeg kunne godt se hvad fejl var :) det var at du sæt bare == ved 0.. :) det er hvad jeg kan se hvad der blive lavet om på ellers må du lige sige til hvis der var andet :)
Avatar billede inteeeL Nybegynder
04. marts 2012 - 18:02 #3
Det er den eneste rettelse (og så lige fejlmeddelelsen), ja. :-)
Avatar billede tobrukDk Novice
04. marts 2012 - 18:04 #4
ja okay det kun jeg så godt se :) men vil du have noget for det eller er det så lille fejl så du ikke gider eller hvad?
Avatar billede inteeeL Nybegynder
04. marts 2012 - 18:07 #5
"men vil du have noget for det eller er det så lille fejl så du ikke gider eller hvad? <- Hehe, så bliver det ikke sagt mere indirekte. :-)

Du må gerne lægge et svar og selv acceptere det.
Avatar billede tobrukDk Novice
04. marts 2012 - 18:09 #6
altså du bestemmer selv om du vil have de 20 point.. hvis du gerne vil have dem så skal du bare lægge et svar så skal jeg nok godkende det :) det er fint nok med mig :) ??
Avatar billede inteeeL Nybegynder
04. marts 2012 - 21:58 #7
Fejlen var minimal, læg du bare selv et svar og accepter det, så vi kan få lukket tråden.
Avatar billede tobrukDk Novice
04. marts 2012 - 22:06 #8
okay :) håber det er okay med dig da ;)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB

Cognizant Technology Solutions Denmark ApS

Senior Test Manager

Cognizant Technology Solutions Denmark ApS

Service Line Specialist – EPS – SAP