Avatar billede roz Nybegynder
04. juli 2005 - 00:18 Der er 12 kommentarer og
2 løsninger

Ret i Database = FEJL

Jeg har denne kode:

Kodeeksempel

<?php
$nygruppe = $_POST['nygruppe'];
$gruppe = $_POST['gruppe'];
include ('config.php');

$result = mysql_query("SELECT * FROM groups WHERE Gruppe = '$nygruppe'") or die(mysql_error());
if( $row = mysql_fetch_array($result))
    {
    echo "Gruppen ".$nygruppe." eksisterer allerede.";
echo "<a href=ret.php>Tilbage</a>";
}
else{
    $result = mysql_query("UPDATE groups SET Gruppe='$nygruppe' WHERE Gruppe='$gruppe'") or die(mysql_error());
    echo "Gruppen ".$gruppe." hedder nu ".$nygruppe." ";
echo "<a href=ret.php>Tilbage</a>";

}
?>



Men det eneste der sker når man kører den er at den udskriver

Gruppen (navnet på gruppen fra siden før) [OG SÅ IKKE MERE PÅ DENNE LINIE:S]

Tilbage

Den opdaterer ikke i min database eller noget. Er der nogen der kan se hvad fejlen kan være?

Mvh.
Rune Jensen
Avatar billede jaw Nybegynder
04. juli 2005 - 00:52 #1
Prøv at undersøge, hvilken del af if-sætningen den kommer ind i.
Avatar billede nielle Nybegynder
04. juli 2005 - 06:53 #2
Er du sikker på at der eksistere en Gruppe med værdien $gruppe, når du udføre din:

$result = mysql_query("UPDATE groups SET Gruppe='$nygruppe' WHERE Gruppe='$gruppe'") or die(mysql_error());

- ellers skulle det jo være en INSERT i stedet.
Avatar billede roz Nybegynder
04. juli 2005 - 09:17 #3
Ja HELT sikker for i det script der sender oplysningerne til denne side tjekker jeg først om $gruppe eksisterer.
Det skal også lige siges at koden fungerer fint hvis $nygruppe eksisterer i forvejen. Så udskriver den det rigtige.
Avatar billede bromer Nybegynder
04. juli 2005 - 09:57 #4
roz: Hvad laver følgende linier?

$nygruppe = $_POST['nygruppe'];
$gruppe = $_POST['gruppe'];

når du alligevel ikke laver noget ved dem, så kan du vel lige så godt bruge $_POST[''] nede i din update.
Avatar billede flatov Nybegynder
04. juli 2005 - 13:22 #5
prøv noget i stil med:

$result = mysql_query("UPDATE groups SET Gruppe='$_POST[$nygruppe]' WHERE Gruppe='$_POST[$gruppe]'") or die(mysql_error());
Avatar billede bromer Nybegynder
04. juli 2005 - 13:56 #6
Eller du kan gøre det lidt pænere hvor du rent faktisk er lidt mere bevidst om hvad du smider ind i din database:

<?php

if (get_magic_quotes_gpc() == 0) {
$_POST['nygruppe'] = addslashes($_POST['nygruppe']);
$_POST['gruppe'] = addslashes($_POST['gruppe']);
}

$result = mysql_query(sprintf("UPDATE groups SET Gruppe='%s' WHERE Gruppe='%s'",$_POST['nygruppe'],$_POST['gruppe'])) or die(mysql_error());
?>

flatov: Det du har lavet ser altså lidt forkert ud. Jeg er rimelig overbevidst om at du ikke vil bruge $nygruppe og $gruppe som indexes til $_POST arrayet.

--
derka derka
Avatar billede roz Nybegynder
04. juli 2005 - 18:28 #7
Hmm bromer..
Det virker stadig ikke. Dog udskriver den noget nyt nu:
Gruppen hedder nu
Tilbage

Koden er lige nu sådan her:
<?php
if (get_magic_quotes_gpc() == 0) {
$_POST['nygruppe'] = addslashes($_POST['nygruppe']);
$_POST['gruppe'] = addslashes($_POST['gruppe']);
}
include ('config.php');

$result = mysql_query("SELECT * FROM groups WHERE Gruppe = '$nygruppe'") or die(mysql_error());
if( $row = mysql_fetch_array($result))
    {

    echo "Gruppen ".$nygruppe." eksisterer allerede. <br />";
echo "<a href=ret.php>Tilbage</a>";
}
else{
$result = mysql_query(sprintf("UPDATE groups SET Gruppe='%s' WHERE Gruppe='%s'",$_POST['nygruppe'],$_POST['gruppe'])) or die(mysql_error());
    echo "Gruppen ".$gruppe." hedder nu ".$nygruppe." <br />";
echo "<a href=ret.php>Tilbage</a>";

}
?>
Avatar billede jaw Nybegynder
04. juli 2005 - 18:40 #8
Umiddelbart ser det ud til, at dine $_POST variabler ikke har noget indhold, eller at du benytter dem forkert. Prøv at starte filen med at udskrive dem og se om der kommer noget.

echo $_POST['gruppe'] . " " . $_POST['nygruppe'];
Avatar billede roz Nybegynder
04. juli 2005 - 19:04 #9
Så virker det sgu :) heh.

Var en fejl i sendingen af data og det viste din kode mig Jaw ;)

Så smid et svar så får du point.

Tak for hjælpen til i andre også:)
Avatar billede jaw Nybegynder
04. juli 2005 - 19:06 #10
Jeg er nu ikke helt sikker på, at det kun er mig der skal have points, men det er jo op til dig at afgøre. I hvert fald siger jeg så tak :)
Avatar billede roz Nybegynder
05. juli 2005 - 01:29 #11
Nææ jeg syntes nu også næsten nielle og bromer skulle have nogle. Men ved ikke om de er interesserede i 10 point hver? hehe.
Men hvis i er så bar smid et svar... :)
Avatar billede nielle Nybegynder
05. juli 2005 - 06:44 #12
Jeg afstår fro points på denne her :^)
Avatar billede bromer Nybegynder
05. juli 2005 - 08:58 #13
jeg smider da gerne et svar
Avatar billede roz Nybegynder
05. juli 2005 - 11:51 #14
Det er bare iorden :) Tak for hjælpen.
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