Avatar billede kischi Novice
31. august 2012 - 13:37 Der er 6 kommentarer og
1 løsning

indsætte post i database

Hej experter,

Jeg har en database som indsætter poster som man skriver på min side.
Og det virkede fint.

Så skulle jeg tilføje en ekstra post, og nu virker det ikke.

Jeg ved at det har noget med day4 at gøre fordi det er den jeg har indsat.

min insert kode ser sådan her ud:

$sql = 'INSERT INTO registrations (name, birth, gender, mail, mobile, address, postal, city, country, packagedeal, day1, day2, day3, day4, community, food, hotel, room, roommate1, roommate2) VALUES ("'.$name.'","'.$birth.'","'.$gender.'","'.$mail.'","'.$mobile.'","'.$address.'","'.$postal.'","'.$city.'","'.$country.'","'.$packagedeal.'",'.$day1.','.$day2.','.$day3.','.$day4.',"'.$community.'","'.$food.'","'.$sjufhotel.'","'.$sjufroom.'","'.$roommate1.'","'.$roommate2.'")';


hvis jeg fjærner $ fra day4 så indsætter den alle andre poster end day4 så de andre virker også det er kun day4 der laver rod i det.

Jeg håber der er nogle der kan hjælpe.

Tak
Avatar billede michael_stim Ekspert
31. august 2012 - 13:51 #1
Nu kan jeg ikke se hvad der står ved $day4, men hvor kommer den fra, og er alt stavet rigtigt (dit input navn, din post/get-variabel osv)?
Avatar billede kischi Novice
31. august 2012 - 14:41 #2
Ja så vidt jeg kan se så er alt stavet rigtigt, men efter man har siddet med det i et stykke tid, kan det vel ikke skade at få nogle andre øjne på også.

Hele min kode som indeholder day4 og som skulle få den til at poste den i databasen ser sådan her ud.
Jeg håber det var det du mente:

<?php
   
    $name = mysql_escape_string($_POST['name']);
    $birth = mysql_escape_string($_POST['birth']);
    $gender = mysql_escape_string($_POST['gender']);
    $mail = mysql_escape_string($_POST['mail']);
    $mobile = mysql_escape_string($_POST['mobile']);
    $address = mysql_escape_string($_POST['address']);
    $postal = mysql_escape_string($_POST['postal']);
    $city = mysql_escape_string($_POST['city']);
    $country = mysql_escape_string($_POST['country']);
    $packagedeal = mysql_escape_string($_POST['packagedeal']);
    $day1 = mysql_escape_string($_POST['day1']);
    $day2 = mysql_escape_string($_POST['day2']);
    $day3 = mysql_escape_string($_POST['day3']);
    $day4 = mysql_escape_string($_POST['day4']);
    $hascommunity = mysql_escape_string($_POST['hascommunity']);
    $community = mysql_escape_string($_POST['community']);
    $food = mysql_escape_string($_POST['food']);
    $sjufhotel = mysql_escape_string($_POST['sjuf-hotel']);
    $sjufroom = mysql_escape_string($_POST['sjuf-room']);
    $roommate1 = mysql_escape_string($_POST['roommate1']);
    $roommate2 = mysql_escape_string($_POST['roommate2']);
   
    if ( $hascommunity == "no" ) $community = "";
    if ( $sjufroom == "single" ) {
        $roommate1 = "";
        $roommate2 = "";
    }
   
    if ( $sjufroom == "double" ) $roommate2 = "";
   
    $price = 0;
   
    $attending = '';
   
    if ( $packagedeal == 'yes' ) {
        $price = 1800;
        $attending = 'You will attend all three days.';
    } else {
        $attending = 'You will attend:<br />';
        if ($day1 == "true") {
            $price += 800;
            $attending .= 'Day 1: Lets Get It Started 29/12<br />';
        }
        if ($day2 == "true") {
            $price += 400;
            $attending .= 'Day 2: The Spiritual Day 30/12<br />';
        }
        if ($day3 == "true") {
            $price += 900;
            $attending .= 'Day 3: The Major Countdown 31/12<br />';
        }
        if ($day4 == "true") {
            $price += 900;
            $attending .= 'Day 3: The Major Countdown 31/12<br />';
        }
    }
   
    // Save info to database
    define('__ROOT__', dirname(dirname(__FILE__)));
    require_once(__ROOT__.'/includes/config.php');
   
  $db_conn=mysql_connect($db_host, $db_user, $db_pass);
   
    mysql_query("SET NAMES 'utf8'") or die(mysql_error());
    mysql_query("SET CHARACTER SET 'utf8'") or die(mysql_error());
   
    mysql_select_db($db_name, $db_conn);
   
$sql = 'INSERT INTO registrations (name, birth, gender, mail, mobile, address, postal, city, country, packagedeal, day1, day2, day3, day4, community, food, hotel, room, roommate1, roommate2) VALUES ("'.$name.'","'.$birth.'","'.$gender.'","'.$mail.'","'.$mobile.'","'.$address.'","'.$postal.'","'.$city.'","'.$country.'","'.$packagedeal.'",'.$day1.','.$day2.','.$day3.','.$day4.',"'.$community.'","'.$food.'","'.$sjufhotel.'","'.$sjufroom.'","'.$roommate1.'","'.$roommate2.'")';
Avatar billede kischi Novice
31. august 2012 - 14:43 #3
nåå ja jeg kan da godt se at den bliver cutted af, her er min insert håber den passer i vinduet nu :)


$sql = 'INSERT INTO registrations (name, birth, gender, mail, mobile, address, postal, city, country, packagedeal, day1, day2, day3, day4, community, food, hotel, room, roommate1, roommate2) VALUES ("'.$name.'","'.$birth.'","'.$gender.'","'.$mail.'","'.$mobile.'","'.$address.'","'.$postal.'","'.$city.'",
"'.$country.'","'.$packagedeal.'",'.$day1.','.$day2.',
'.$day3.','.$day4.',"'.$community.'",
"'.$food.'","'.$sjufhotel.'","'.$sjufroom.'","'.$roommate1.'","'.$roommate2.'")';
Avatar billede michael_stim Ekspert
31. august 2012 - 14:53 #4
if ($day4 == "true") {
            $price += 900;
            $attending .= 'Day 3: The Major Countdown 31/12<br />';
        }

Ved ikke om teksten skal være sådan, da det jo er dag 4, men har intet med fejlen at gøre.

Hvad er det du sender? En integer? Hvordan ser din <input type=...> ud?

Prøv denne:


$sql = 'INSERT INTO registrations (name, birth, gender, mail, mobile, address, postal, city, country, packagedeal, day1, day2, day3, day4, community, food, hotel, room, roommate1, roommate2) VALUES ("'.$name.'","'.$birth.'","'.$gender.'","'.$mail.'","'.$mobile.'","'.$address.'","'.$postal.'","'.$city.'",
"'.$country.'","'.$packagedeal.'","'.$day1.'","'.$day2.'",
"'.$day3.'","'.$day4.'","'.$community.'",
"'.$food.'","'.$sjufhotel.'","'.$sjufroom.'","'.$roommate1.'","'.$roommate2.'")';
Avatar billede kischi Novice
31. august 2012 - 14:59 #5
Ja teksten bliver ændret :)

Ja det er en tinyint som ville blive vist i databasen hvis det er det du mener?

Hvis man vælger dag 4 eller dag 3 eller en af de andre, så kommer der til at stå 1 ud for den man har valgt.

Det virker jo også med de andre men ikke med day4

Det her er min input type for day 3 og day4

<input type="checkbox" value="day3" name="packagedeal" id="package_day3" /><label for="package_day3">
Day 3: The Major Countdown - 900 SEK</label><br />
                <input type="checkbox" value="day4" name="packagedeal" id="package_day4" />
<label for="package_day4">Day 4: The Major Countdown - 900 SEK</label><br />
Avatar billede olsensweb.dk Ekspert
31. august 2012 - 18:52 #6
Avatar billede kischi Novice
02. oktober 2012 - 17:58 #7
svar
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

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