Avatar billede tobrukDk Novice
23. marts 2012 - 19:13 Der er 12 kommentarer og
1 løsning

probler med updater rank

hej med jer derude og godaften! :D



Det er sådan at jeg skal kun updater 1 ting ud af 18 ting ind i database. Jeg har en database(table) som hedder brugere..


    CREATE TABLE IF NOT EXISTS `brugere` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `rank` tinyint(1) NOT NULL,
    `email` varchar(255) NOT NULL,
    `password` varchar(255) NOT NULL,
    `brugere_opret` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    ....................... osvv
    PRIMARY KEY (`id`),
    UNIQUE KEY `email` (`email`)
    )

Det er sådan at jeg skal have updater kun "Rank" og den gider overhovedet ikke på nogle måde.

jeg har skrevet kode sådan her ;



    <form action="admin_bruger_rank_updater.php" method="post">
    <input name="id" value="<?php echo $row['id'];?>" type="hidden">
    <input type="text" name="rank" value="<?php echo $row["rank"];?>">
    <input type="submit" value="Opret Indhold" name="updater">
    </form>



____________

anden side


    <?php
    include ("include/database/db.php");
    if (isset($_POST['updater'])) {
    $id = $_POST["id"];
    $rank = $_POST['rank'];
    $bruger = mysql_query("SELECT * FROM brugere");
    $sql = "UPDATE brugere SET rank='$rank' WHERE id = $id";
    $tabledata = $sql; echo $sql;
    $resultat = mysql_query($tabledata) or die (mysql_error());
    if () {
    echo "Godkendt";
    }
    else {
    echo "Fejl";
    }
    }
    else {
    echo "Der ske ingen ting";
    }
    ?>




Hvorfor er den ikke gider at gør det ? håber du kan forklare mig det

så hvis den bliver altså rank 0 så skal den smid mig af og så er den updater :)

hvordan skal jeg gøre det?
Avatar billede heinzdmx Nybegynder
23. marts 2012 - 19:20 #1
Din if har ingen betingelse og så laver du en else 2 gange (og har for mange } i forhold til { )
Avatar billede tobrukDk Novice
23. marts 2012 - 19:36 #2

<?php
            $id = $_GET["id"];
            $result = mysql_query("SELECT * FROM `brugere` WHERE id = $id");
            while($row = mysql_fetch_array($result))
            {
        ?>
            <form action="admin_bruger_rank_updater.php" method="post">
                <input name="id" value="<?php echo $row['id'];?>" type="hidden">
                <input type="text" name="rank">
                <input type="submit" value="Opret Indhold" name="updater">
            </form>
        <?php
            }
        ?>


Det var fejl :)

ja det har du ret i og det kigge jeg også lige på :)
Avatar billede inteeeL Nybegynder
23. marts 2012 - 21:43 #3
#1 - det er ikke helt rigtigt. Hans if-else opbygning er korrekt og der er tilstrækkelig af { og }. Dog er mangler du at færdiggøre din først if-betingelse. Endvidere er $bruger-værdien samt $tabledata ikke nødvendig at have med. Se følgende opsætning (ikke store ændringer):


<?php

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

if (isset($_POST['updater'])) {
    $id = $_POST["id"];
    $rank = $_POST['rank'];
    $sql = "UPDATE brugere SET rank='$rank' WHERE id = $id";
    $resultat = mysql_query($sql) or die (mysql_error());
    if ($result) {
        echo "Godkendt";
    }
    else {
        echo "Fejl";
    }
}
else {
    echo "Der sker ingen ting";
}

?>


Hvad får du af fejl? Uanset hvad vil der blive udskrevet en fejl på admin_bruger_rank_updater.php (sådan er dine if-else betingelser opbygget). Umiddelbart ser din sql-statement korrekt ud. Er du sikker på, at den overførte værdi $_POST['id'] indeholder den rigtige værdi? I så fald kan du lige prøve ovenstående kode og fortælle os, hvad der sker. :-)
Avatar billede heinzdmx Nybegynder
23. marts 2012 - 22:03 #4
Det har du da ret i, den manglende indrykning fik mig til at overse kodestykket:
if (isset($_POST['updater'])) {
Avatar billede inteeeL Nybegynder
23. marts 2012 - 23:02 #5
Det kan også være svært at spotte uden indrykningerne - synes generelt det er småirriterende at skulle skimme en kode igennem uden indrykninger.
Avatar billede tobrukDk Novice
24. marts 2012 - 14:32 #6
#1 der er ingen fejl med if og else { } osv... hmm
Avatar billede inteeeL Nybegynder
24. marts 2012 - 16:25 #7
Får du blot en blank side? Har du husket at sætte alle PHP-advarsler/fejl til:

<?php error_reporting(E_ALL); ?>
Avatar billede tobrukDk Novice
24. marts 2012 - 19:50 #8
okay det lyder meget godt :) && Takker for hjælp Tilføj lige et svar hvis i vil have noget for det?
Avatar billede tobrukDk Novice
24. marts 2012 - 20:08 #9

<?php

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

            if (isset($_POST['updater'])) {
                $id = mysql_real_escape_string($_POST["id"]);
                $booking = mysql_real_escape_string($_POST['booking']);

                    $sql = "UPDATE brugere SET booking='$booking' WHERE id = $id";
                    $tabledata = $sql;
                    $resultat = mysql_query($tabledata) or die (mysql_error());
                           
                    if($sql)    {
                          header("Location: admin_bruger.php");
                    }
                else {
                    echo "Ske en fejl";
                }
            }
            else {
                echo "Der ske ingen ting";
            }
        ?>
        <?php
            $id = $_GET["id"];
            $result = mysql_query("SELECT * FROM `brugere` WHERE id = $id");
            while($row = mysql_fetch_array($result))
            {
        ?>
            <form action="" method="post">
                <input name="id" value="<?php echo $row['id'];?>" type="hidden">
                <input type="text" name="booking">
                <input type="submit" value="Opret Indhold" name="updater">
            </form>
        <?php
            }
        ?>


Det er sådan at lige nu har jeg alt indhold på 1 side. men uden at jeg har klik på submit så kommer den frem med en fejl, jeg kan virkelig ikke husk hvad det nu er man skal gøre sådan at den ikke siger fejl før man har KLIK på submit...



Håber du kan hjælp mig videre fordi den siger hele tiden "Ske en fejl"
Avatar billede tobrukDk Novice
24. marts 2012 - 20:08 #10
altså den skal ikke have været ind her. jeg tror jeg var start ny pinligt!!!
Avatar billede inteeeL Nybegynder
24. marts 2012 - 20:22 #11
<?php

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

if (isset($_POST['updater'])) {
    $id = mysql_real_escape_string($_POST["id"]);
    $booking = mysql_real_escape_string($_POST['booking']);

    $sql = "UPDATE brugere SET booking='$booking' WHERE id = $id";
    $resultat = mysql_query($sql) or die (mysql_error());
                         
    if($result) {
        header("Location: admin_bruger.php");
    }
    else {
        echo "Ske en fejl";
    }
}
else {
    echo "Der er endnu ikke blevet klikket \"Opret Indhold\"";
}

$id = $_GET["id"];
$result = mysql_query("SELECT * FROM `brugere` WHERE id = $id");
while($row = mysql_fetch_assoc($result)) {

?>

<form action="" method="post">
    <input name="id" value="<?php echo $row['id'];?>" type="hidden">
    <input type="text" name="booking">
    <input type="submit" value="Opret Indhold" name="updater">
</form>

<?php
}
?>

Læg mærke til jeg har fjernet $tabledata, da den er unødvendig. Endvidere har jeg ændret if($sql) til if($result) da det ellers blot er en streng du tjekker. ?> og <?php lige efter hinanden er unødvendigt - begge dele kan fjernes, så lukketagget i stedet bruges senere. Jeg har også ændret mysql_fetch_array til mysql_fetch_assoc, da du umiddelbart ikke har brug for både et numerisk indekseret array og et associeret indekseret array - så sparer du på memory. Dette er blot de ting, jeg synes, du bør rette - det er op til dig, om du vil medtage rettelserne. :-)

PS. Gør os venligst den tjeneste og få styr på dine indrykninger. Jeg har skrevet til dig før, at du bør få styr på, hvornår du skal bruge indrykning, så det kan give et bedre overblik - ikke kun for dig, men også for os.
Avatar billede inteeeL Nybegynder
24. marts 2012 - 20:27 #12
Hov, troede det hang sammen med det andet, så jeg svarede her. En kopi af ovenstående svar er givet i din nyoprettede tråd. :-)
Avatar billede tobrukDk Novice
24. marts 2012 - 23:59 #13
det er helt iorden inteeeL,, Kan du lige skrive til mig privat jeg skal spørger dig om noget vigtigt eller lign ??
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