Avatar billede katja_kh Nybegynder
13. marts 2008 - 11:59 Der er 24 kommentarer og
1 løsning

Update sommerhus info

hej.
Jeg har lavet en select box hvor man kan vælge de forskellige sommerhuse, så skal man når man trykker på vælg ryge over på en ny side, hvor en formular bliver udfyldt med sommerhusets informationer hvilke man så kan redigere.

Jeg kan ikke lige finde ud af hvordan jeg helt korrekt skal få idét med over, lige nu laver den en form for hver af sommerhusene, den skal kun lave én,som så bliver udfyldt med information på baggrund af det medsendte id. 

Jeg har følgende kode:

Først select boxen:
<?php
include('../../Backup2/includes/db_con.php');
if (isset($_GET['valg'])) {
   
}
$r=mysql_query("select * from sommerhus_info");
while($row=mysql_fetch_array($r)){
echo "<option value='$row[id]'>$row[titel]</option>";
}
?>
</select>
<br>
            <input type="submit" name="valg" value="Vælg" class="knap" style="background-color:ccc">
</form>

Her er koden til formen:
<?
include("../../Backup2/includes/db_con.php");

if (isset($_POST["submit"])) {
   
   
$id = $_GET['id'];
    $titel=$_POST["titel"];
    $sove=$_POST["sove"];
    $kvad=$_POST["kvad"];
    $strand=$_POST["strand"];
    $beskriv=$_POST["beskriv"];
    $pris=$_POST["pris"];
    $res=$_POST["res"];
   
    mysql_query("UPDATE sommerhus_info SET titel ='$titel', soveplads='$sove',kvadratmeter='$kvad',afstand_strand='$strand',beskrivelse='$beskriv',pris='$pris', reserv='$res' WHERE id=$_GET[id]");
    ?>
    <script type="text/javascript">
    window.location.href="ret.php";
    </script>
    <?
}else{

    $sql=mysql_query("SELECT * FROM sommerhus_info");
    while ($data=mysql_fetch_array($sql)){
   

?>

<form method="POST" action="<?echo $PHP_SELF?>">
Titel:<br>
<input type="text" name="titel" value="<?echo $data[titel]?>"><br>
Sovepladser:<br>
<input type="text" name="sove" value="<?echo $data[soveplads]?>"><br>
Kvadratmeter:<br>
<input type="text" name="kvad" value="<?echo $data[kvadratmeter]?>"><br>
Afstand til strand:<br>
<input type="text" name="strand" value="<?echo $data[afstand_strand]?>"><br>
Beskrivelse:<br>
<input type="text" name="beskriv" value="<?echo $data[beskrivelse]?>"><br>
Pris:<br>
<input type="text" name="pris" value="<?echo $data[pris]?>"><br>
Reserveret:<br>
<input type="text" name="res" value="<?echo $data[reserv]?>"><br>
<input type="submit" name="submit" value="Opdater">
<input type="hidden" name="id" value="<?echo $data[id]?>">
</form>

<?
    }
}
?>

Håber man kan forstå hvad jeg vil.
Avatar billede w13 Novice
13. marts 2008 - 12:10 #1
if (isset($_POST["submit"])) {
skal nok rettes til:
if (isset($_POST["valg"])) {
Avatar billede jakobdo Ekspert
13. marts 2008 - 12:14 #2
Din Submit hedder:
<input type="submit" name="submit" value="Opdater">

så if (isset($_POST["submit"])) { bør være korrekt nok.
Avatar billede jakobdo Ekspert
13. marts 2008 - 12:15 #3
Sorry, glem mit input. :o(
Avatar billede katja_kh Nybegynder
13. marts 2008 - 12:20 #4
jeg vil have select alene på en side.
Trykker man vælg kommer man videre til en side med en form som er udfyldt med informationerne på baggrund af det medsente sommerhus id.
Avatar billede w13 Novice
13. marts 2008 - 12:21 #5
13/03-2008 12:10:55 ;)
Avatar billede w13 Novice
13. marts 2008 - 12:22 #6
Først trykker man på knappen:
<input type="submit" name="valg" value="Vælg" class="knap" style="background-color:ccc">

Bemærk, at den har name="valg"!

På næste side tjekkes så:
if (isset($_POST["submit"])) {

Altså om der er klikket på knappen, der har name="submit", men da det jo er "valg" man har klikket på, viser den i stedet for bare allesammen.
Avatar billede katja_kh Nybegynder
13. marts 2008 - 12:33 #7
jeg kan simpelthen ikke få det til at funge..
Er der en ide til hvordan man ellers ville kunne gøre det?
Avatar billede w13 Novice
13. marts 2008 - 12:36 #8
Viser den stadig allesammen? Hvordan ser formularkoden ud til den første selectboks?

Det er den måde, du forsøger at bruge, der er klart den bedste. Et eller andet sted ligger der bare en fejl.
Avatar billede katja_kh Nybegynder
13. marts 2008 - 13:01 #9
Jeg har lavet denne select box på en side.
<?php
include('../../Backup2/includes/db_con.php');
if (isset($_GET['valg'])) {
   
}
$r=mysql_query("select * from sommerhus_info");
while($row=mysql_fetch_array($r)){
echo "<option value='$row[id]'>$row[titel]</option>";
}
?>
</select>
<br>
            <input type="submit" name="valg" value="Vælg" class="knap" style="background-color:ccc">
</form>
Avatar billede jakobdo Ekspert
13. marts 2008 - 14:31 #10
Har forsøgt at samle det hele i en fil...

<?php
include('../../Backup2/includes/db_con.php');

if(isset($_POST['valg']) && isset($_POST['sommerhus']) && is_numeric($_POST['sommerhus'])){
    $id = intval($_POST['sommerhus']);
    $sql=mysql_query("SELECT * FROM sommerhus_info WHERE id = $id LIMIT 1");
    $data=mysql_fetch_array($sql);
?>
echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'">';
Titel:<br>
<input type="text" name="titel" value="<?echo $data[titel]?>"><br>
Sovepladser:<br>
<input type="text" name="sove" value="<?echo $data[soveplads]?>"><br>
Kvadratmeter:<br>
<input type="text" name="kvad" value="<?echo $data[kvadratmeter]?>"><br>
Afstand til strand:<br>
<input type="text" name="strand" value="<?echo $data[afstand_strand]?>"><br>
Beskrivelse:<br>
<input type="text" name="beskriv" value="<?echo $data[beskrivelse]?>"><br>
Pris:<br>
<input type="text" name="pris" value="<?echo $data[pris]?>"><br>
Reserveret:<br>
<input type="text" name="res" value="<?echo $data[reserv]?>"><br>
<input type="submit" name="submit" value="Opdater">
<input type="hidden" name="id" value="<?echo $data[id]?>">
</form>

}elseif(isset($_POST['submit']) && isset($_POST['id']) && is_numeric($_POST['id'])){
    $id = $_POST['id'];
    $titel=$_POST["titel"];
    $sove=$_POST["sove"];
    $kvad=$_POST["kvad"];
    $strand=$_POST["strand"];
    $beskriv=$_POST["beskriv"];
    $pris=$_POST["pris"];
    $res=$_POST["res"];
 
    mysql_query("UPDATE sommerhus_info SET titel ='$titel', soveplads='$sove',kvadratmeter='$kvad',afstand_strand='$strand',beskrivelse='$beskriv',pris='$pris', reserv='$res' WHERE id=$_GET[id]");
    ?>
    <script type="text/javascript">
    window.location.href="ret.php";
    </script>
    <?
}else{

echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'">';
echo '<select name="sommerhus">';
$r=mysql_query("select * from sommerhus_info");
while($row=mysql_fetch_array($r)){
    echo "<option value='$row[id]'>$row[titel]</option>";
}
?>
</select>
<input type="submit" name="valg" value="Vælg" class="knap" style="background-color:ccc">
</form>
<?
}
?>

Er dog ikke testet.
Avatar billede katja_kh Nybegynder
13. marts 2008 - 14:49 #11
Nu går den det rigtige sted hen, og udfylder formularen med de rigtige informationer, men den opdaterer ikke noget i databasen.
Avatar billede jakobdo Ekspert
13. marts 2008 - 14:54 #12
Så er det denne kode del som ikke er korrekt:

}elseif(isset($_POST['submit']) && isset($_POST['id']) && is_numeric($_POST['id'])){
    $id = $_POST['id'];
    $titel=$_POST["titel"];
    $sove=$_POST["sove"];
    $kvad=$_POST["kvad"];
    $strand=$_POST["strand"];
    $beskriv=$_POST["beskriv"];
    $pris=$_POST["pris"];
    $res=$_POST["res"];

    mysql_query("UPDATE sommerhus_info SET titel ='$titel', soveplads='$sove',kvadratmeter='$kvad',afstand_strand='$strand',beskrivelse='$beskriv',pris='$pris', reserv='$res' WHERE id=$_GET[id]");
    ?>
    <script type="text/javascript">
    window.location.href="ret.php";
    </script>
    <?
}
Avatar billede katja_kh Nybegynder
13. marts 2008 - 14:59 #13
ja.. men jeg kan godt nok ikke se hvad det lige er!!
Avatar billede w13 Novice
13. marts 2008 - 15:01 #14
Og der skal self. lige åbnes for php her:

</form>

<?}elseif(isset($_POST['submit']) && isset($_POST['id']) && is_numeric($_POST['id'])){
    $id = $_POST['id'];
    $titel=$_POST["titel"];
    $sove=$_POST["sove"];
    $kvad=$_POST["kvad"];
    $strand=$_POST["strand"];
    $beskriv=$_POST["beskriv"];
    $pris=$_POST["pris"];
    $res=$_POST["res"];

:)
Avatar billede katja_kh Nybegynder
13. marts 2008 - 15:03 #15
det er ikke det der er galt, for det har jeg gjort. Har sat de manglende php tags ind.
Avatar billede jakobdo Ekspert
13. marts 2008 - 15:11 #16
Prøv at udskriv:
echo 'Vi skal opdatere'; lige efter:
<?}elseif(isset($_POST['submit']) && isset($_POST['id']) && is_numeric($_POST['id'])){

Så kan vi se om den når der til.
Avatar billede katja_kh Nybegynder
13. marts 2008 - 15:16 #17
det gør den. Når jeg trykker på vælg skriver den "Vi skal opdatere" og formen kommer frem.
Avatar billede jakobdo Ekspert
13. marts 2008 - 15:37 #18
Smid en or die(mysql_error()); efter din mysql_query()
Så kan vi evt se om der er fejl i sql'en.
Avatar billede katja_kh Nybegynder
14. marts 2008 - 08:25 #19
Den gav mig følgende fejl efter or die blev sat på:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Avatar billede jakobdo Ekspert
14. marts 2008 - 09:52 #20
Prøv følgende:

echo 'DEBUG: ' . "UPDATE sommerhus_info SET titel ='$titel', soveplads='$sove',kvadratmeter='$kvad',afstand_strand='$strand',beskrivelse='$beskriv',pris='$pris', reserv='$res' WHERE id=$_GET[id]" . '<br />';
mysql_query("UPDATE sommerhus_info SET titel ='$titel', soveplads='$sove',kvadratmeter='$kvad',afstand_strand='$strand',beskrivelse='$beskriv',pris='$pris', reserv='$res' WHERE id=$_GET[id]") or die(mysql_error());
Avatar billede katja_kh Nybegynder
14. marts 2008 - 10:01 #21
DEBUG: UPDATE sommerhus_info SET titel ='Kæmpe sommerhus', soveplads='8',kvadratmeter='120 ',afstand_strand='600 m',beskrivelse='lækkert, stort, nyt køkken og bad',pris='2500', reserv='1' WHERE id=
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

Det er godt nok irriterende at det skal være så besværligt..
Avatar billede katja_kh Nybegynder
14. marts 2008 - 10:09 #22
for mig ser det ud som om den ikke får noget id med.
Avatar billede katja_kh Nybegynder
14. marts 2008 - 10:13 #23
Hehe.. jeg har selv fået det til at virke :o)

skrev lige noget lidt anderledes i sql sætningen:
  mysql_query("UPDATE sommerhus_info SET titel ='$titel', soveplads='$sove',kvadratmeter='$kvad',afstand_strand='$strand',beskrivelse='$beskriv',pris='$pris', reserv='$res' WHERE id=$id");

nu virker det perfekt!

Er rigtig glad for al din hjælp så du skal selvfølgelig  ha point. Smid et svar jakobdo.
Avatar billede jakobdo Ekspert
14. marts 2008 - 10:43 #24
Svar!
Avatar billede jakobdo Ekspert
14. marts 2008 - 11:02 #25
Takker for point.
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