Avatar billede matz Nybegynder
11. august 2007 - 17:41 Der er 9 kommentarer og
1 løsning

insert into mysql

Hvordan laver jeg en insert into med en form i oop?

kode:

include_once 'connect.php';

class Video {
  public $titel;
 
  function udskrivVideo() {
        echo "<p>".$this->titel." </p>";
  }
}

$test_1 = new Video();
$test_2 = new sql();
$test_2->connect();
$test_2->q("SELECT id, fornavn FROM navn");
$array = $test_2->a();
$test_1->titel = $array[1];
$test_2->free();
$test_2->close();
$test_1->udskrivVideo();


Her der udskriver den data, men hvordan fungere det hvis man skal gemme data - altså insert into hvor man også har en form?
Avatar billede mcardle Nybegynder
11. august 2007 - 18:08 #1
Du skriver bare:

$test2->q("INSERT INTO person (FirstName, LastName, Age)
  VALUES ('Peter', 'Griffin', '35')");

//mcardle
Avatar billede matz Nybegynder
11. august 2007 - 18:08 #2
Ja det havde jeg regnet ud :)

Jeg tænkte mere på hvordan man skal indsætte ens form og hvordan ved den at når der bliver trykke på submit at den sskal gemme?
Avatar billede mcardle Nybegynder
11. august 2007 - 18:17 #3
Du kan jo bare lave en if.

<form method="POST" action="den_anden_side.php">
  <input type="text" name="firstName" />
  <input type="text" name="lastName" />
  <input type="text" name="age" />
</form>

Anden side.:

$firstName = $_POST["firstName"];
$lastName = $_POST["lastName"];
$age = $_POST["age"];

if(isset($firstName) && isset($lastName) && isset($age)){
  $test_2 = new sql();
  $test_2->connect();
  $test2->q("INSERT INTO person (FirstName, LastName, Age)
  VALUES ('Peter', 'Griffin', '35')");
}

sql.class.php.:

function q($query){
  public $firstName, $lastName, $age;
}

Det burde virke.

//mcardle
Avatar billede mcardle Nybegynder
11. august 2007 - 18:19 #4
Hov...

$test2->q("INSERT INTO person (FirstName, LastName, Age)
  VALUES ('Peter', 'Griffin', '35')");

=

$test2->q("INSERT INTO person (FirstName, LastName, Age)
  VALUES ('$firstName', '$lastName', '$age')");
Avatar billede mcardle Nybegynder
11. august 2007 - 18:20 #5
Og så skal der jo være en submitknap på formen. ;o)

//mcardle
Avatar billede matz Nybegynder
12. august 2007 - 00:45 #6
Kan du gøre det mere klart for mig, for den laver en fejl:

Fatal error: Call to a member function q() on a non-object in C:\wamp\www\oop\side2.php on line 11

Jeg har gjort følgende:

upload.html :

<form method="POST" action="side2.php">
  Fornavn
  <input type="text" name="fornavn" /><br />
  Efternavn
  <input type="text" name="efternavn" />
  <input type="submit" value="Opret" name="opret" />
</form>

side2.php :

<?php

include_once 'connect.php';

$firstName = $_POST["fornavn"];
$lastName = $_POST["efternavn"];

if(isset($firstName) && isset($lastName)){
  $test_2 = new sql();
  $test_2->connect();
  $test2->q("INSERT INTO navn (fornavn, efternavn)
  VALUES ('$firstName', '$lastName')");
}
?>
Avatar billede mcardle Nybegynder
12. august 2007 - 03:21 #7
$test2-> Er det ikke fordi du mangler et underscore _, så det bliver:

if(isset($firstName) && isset($lastName)){
  $test_2 = new sql();
  $test_2->connect();
  $test_2->q("INSERT INTO navn (fornavn, efternavn)
  VALUES ('$firstName', '$lastName')");
}
Avatar billede mcardle Nybegynder
12. august 2007 - 03:22 #8
Og så skal du lave en:

$test_2->close();

til sidst.

//mcardle
Avatar billede matz Nybegynder
12. august 2007 - 13:48 #9
Ja det virker :) Lig et svar
Avatar billede mcardle Nybegynder
12. august 2007 - 17:37 #10
Svar...

//mcardle
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