Avatar billede tobrukDk Novice
24. marts 2012 - 20:23 Der er 10 kommentarer og
1 løsning

php udskrive fejl selvom jeg ikke har klik

Hej

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"


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


Jeg har valgt at give 10 point pga det er sådan lille fejl ville jeg mene :) og ja derfor.

ellers må du komme med en mega god grund til hvorfor du skal have mere.. :)
Avatar billede inteeeL Nybegynder
24. marts 2012 - 20:26 #1
<?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 tobrukDk Novice
24. marts 2012 - 20:34 #2
Det kan jeg godt se omkring det der med $sql osv.. :) jaa du har ret at det er unødvendigt at begge dele er der.. :)

mysql_fetch_array hvad bruges det mest til og hvorfor det?

mysql_fetch_assoc hvad bruges det mest til og hvorfor det?

hvad mener du med det her ;

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. :-)

Ja troede du mente indrukninger var sådan her men altså ligesom at alt det som er inde en if sæting endnu til der er kommer noget nyt skal bare være i sammen linje eller hvad man siger?


men give et svar! :)
Avatar billede kjeldsted Novice
24. marts 2012 - 20:45 #3
mysql_fetch_array benytts hvis du BÅDE skal benytte et numerisk indexeret array samt et associeret array.

Altså med fetch_array kan du fx både udskrive med $row['id'] og $row[0]. De vil give det samme resultat. Hvis man ikke skal benytte det numeriske index er der ingen grund til at gemme det på servernes hukommelse.
Avatar billede tobrukDk Novice
24. marts 2012 - 20:50 #4
#3 okay så forstår jeg det meget bedre :) og tak forklaring :)
Avatar billede tobrukDk Novice
24. marts 2012 - 20:51 #5
#3 men bruger man mest assoc frem for array ?
Avatar billede inteeeL Nybegynder
24. marts 2012 - 20:56 #6
<?php

$sql = mysql_query("SELECT id, name, email, age FROM table LIMIT 1");

$fetchArray = mysql_fetch_array( $sql);
$fetchAssoc = mysql_fetch_assoc( $sql);
$fetchRow = mysql_fetch_array( $sql);

?>

$fetchArray vil returnere både et numerisk-indekseret array og et associativt-indekseret array
Numerisk-indekseret: $fetchArray[0] vil returnere id'et, $fetchArray[1] vil returnere name osv.
Associativt-indekseret: $fetchArray['id'] vil returnere id, $fetchArray['email'] vil returnere email osv.

$fetchAssoc vil kun returnere et associativt-indekseret array
Associativt-indekseret: $fetchAssoc['id'] vil returnere id, $fetchAssoc['email'] vil returnere email osv.

$fetchRow vil kun returnere et numerisk-indekseret array:
Numerisk-indekseret: $fetchRow[0] vil returnere id'et, $fetchRow[1] vil returnere name osv.

Det vil altså perfomancemæssigt være hurtigere at bruge en af de to sidste, da der kun vil blive lagret
et enkelt array. I dit tilfælde vil mysql_fetch_assoc nok være mest passende.

Du skal kun lave indrykninger efter et åbent tag og hvis lukketagget ikke er på samme linje (det samme gælder med tuborgklammen { })
Det gælder i alle sprog. Jeg benytte selv tab til indrykninger, nogle bruger enkelte mellemrum - det er en smagssag.

$fetchArray vil returnere både et numerisk-indekseret array og et associativt-indekseret array
Numerisk-indekseret: $fetchArray[0] vil returnere id'et, $fetchArray[1] vil returnere name osv.
Associativt-indekseret: $fetchArray['id'] vil returnere id, $fetchArray['email'] vil returnere email osv.

$fetchAssoc vil kun returnere et associativt-indekseret array
Associativt-indekseret: $fetchAssoc['id'] vil returnere id, $fetchAssoc['email'] vil returnere email osv.

$fetchRow vil kun returnere et numerisk-indekseret array:
Numerisk-indekseret: $fetchRow[0] vil returnere id'et, $fetchRow[1] vil returnere name osv.

Det vil altså perfomancemæssigt være hurtigere at bruge en af de to sidste, da der kun vil blive lagret
et enkelt array. I dit tilfælde vil mysql_fetch_assoc nok være mest passende.

Du skal kun lave indrykninger efter et åbent tag og hvis lukketagget ikke er på samme linje (det samme gælder med tuborgklammen { })
Det gælder i alle sprog. Jeg benytte selv tab til indrykninger, nogle bruger enkelte mellemrum - det er en smagssag.
Avatar billede inteeeL Nybegynder
24. marts 2012 - 20:57 #7
Den sidste boks skulle indeholde følgende:
<?php

if( !empty( $test)) {
    echo 'Indrykningen sker her';
}

?>

<form action="#" method="POST">
    <input type="text" name="test"> //Indrykning sker her
</form>
Avatar billede tobrukDk Novice
24. marts 2012 - 21:04 #8
#6 & 7 okay jeg kan godt forstår hvad du mener med det hele og tak for du vil hjælpen ;) vil du have de 10 point for hjælpen :)
Avatar billede inteeeL Nybegynder
24. marts 2012 - 21:10 #9
Selvtak :-)
Avatar billede tobrukDk Novice
24. marts 2012 - 21:13 #10
#9 jeg synes hele tiden at jeg lærer noget nyt her ind på eksperten.. :) og håber du få en hyggelig aften !
Avatar billede inteeeL Nybegynder
24. marts 2012 - 21:30 #11
Det er rigtig godt at høre! Tak og i lige måde. :-)
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