Avatar billede overgreat Forsker
10. juni 2005 - 17:57 Der er 8 kommentarer og
1 løsning

sætte værdier fra tabel ind i INSERT og VALUES kommando!

Mit problem drejer sig i at få sat værdier fra en tabel ind i INSERT og VALUES kommando. Dette har jeg haft mega besvær med, og derfor håber jeg på hjælp.

Jeg forklarer lige tingene lidt i steps!

-------------------------------------
Undertegnede har en tabel der hedder bil_udstyra

Den ser ud som følger:

id  -  udstyr      -  udstyra
-------------------------
1      airbag      -  Airbag
2      anhangertrak -  Anhængertræk
3      elruder      -  Elruder
..    ..              ..
..    ..              .. 
..    ..              ..

osv

--------------------------------
Den håber jeg at få hjælp til at kunne gøre noget i stil med følgende:


mysql_query("INSERT INTO `bil_udstyr` ( `id` <? ,`$udstyr[bil_udstyra]` ?>
)
  VALUES ('' <? , '$$udstyr[bil_udstyra]' ?> )");

------------------------------
så den løbende smider værdier/rækkerne fra tabellen ind i INSERT og VALUES kommandoen, så den kommer til at se ud som følger:


mysql_query("INSERT INTO `bil_udstyr` ( `id` ,`airbag`,`anhangertrak`, ,`elruder`
)
  VALUES ('', '$airbag', 'anhangertrak', 'elruder' )");

-----------------------------
Grunden til at jeg IKKE bare kan skrive værdier ind i INSERT og VALUES kommandoen er, at jeg har en formular hvor der kan oprettes nyt udstyr.... derfor skal den gerne automatisk indsætte dette udstyr også!


Hele PHP-udtrykket indsætter jeg nederst i dette spørgsmål jeg ligeledes indsat mine checkboxe, som måske klarer billedet op for hvordan dynamikken i udstyret automatisk kommer med i formular hvis nyt udstyr oprettes i systemet.

-----------------
-----------------
(Det er ved xxx'erne at jeg har problemet med koden!)
-----------------
<?
if($up==ja){
session_start();
$_SESSION['nummer'] = $nummer;

$konfiguration["upload_bibliotek"] = "./upload";
$konfiguration["max_stoerrelse"] = "1000";

/* Hvor flytter vi fra og til */
$fra = $_FILES["upfil"]["tmp_name"];
$ext = strtolower(end(explode(".", $_FILES['upfil']['name'])));
$name = "$id.$ext";
$til = $konfiguration["upload_bibliotek"] . "/" . $name;

/* Check PHP-version */
list($major, $minor, $rev) = explode(".", phpversion());
if($major < 4) {
  die("Jeg kan kun arbejde med PHP 4.0.0 eller derover");
}

/* Skab de "moderne" arrays hvis vi arbejder med en aeldre PHP */
if($minor < 1) {
  $_FILES = $HTTP_POST_FILES;
  $_POST = $HTTP_POST_VARS;
  $_SERVER = $HTTP_SERVER_VARS;
}

/* Accepterer vi filens stoerrelse? */
$fil_stoerrelse = filesize($fra)/1024;
if($fil_stoerrelse > $konfiguration["max_stoerrelse"]) {
  die("Desværre - filen er for stor. Jeg accepterer kun " .
      $konfiguration["max_stoerrelse"] . "kb, og din fil fylder " .
      ceil($fil_stoerrelse, 1) . " kb");
}

/* Saa koerer vi */
if(function_exists("move_uploaded_file")) {
  move_uploaded_file($fra, $til);
  $billede = basename($til);

  include("config.php");
  $db = mysql_connect($server, $user, $pass);

  mysql_select_db($database, $db);

  mysql_query("SELECT id, udstyr, udstyra FROM bil_udstyra");

  $dato = date("j/n - Y");

  mysql_query("INSERT INTO `bil_bil` ( `id` , `kategori`, `maerke`, `model`, `variant`, `type`, `bstof`, `farve`, `aar`, `km`, `pris`, `afgift`, `billede`)
  VALUES ('', '$kategori', '$maerke', '$model', '$variant', '$type', '$bstof', '$farve', '$aar', '$km', '$pris', '$afgift', '$billede')");
 
  mysql_query("INSERT INTO `bil_udstyr` ( `id`, xxxxx)
  VALUES ('', xxxxxxx)")
 
echo "Møblet er oprettet!<br>";

  echo "<a href='abil.php'>Retur</a><br>";
session_destroy();
}

else {
  copy($fra, $til);

}

}else{
?>

--------------
-------------
(eks på mine checkboxe hvor antallet er afhængig af antal rækker i førnævnte tabel!)
-------------

<?
include("config.php");
$db = mysql_connect($server, $user, $pass);
mysql_select_db($database, $db);

$foresp = mysql_query("SELECT id, udstyr, udstyra FROM bil_udstyra ORDER BY udstyr");

while ($data = mysql_fetch_row($foresp)){
echo "<input type='checkbox' name='$data[1]' value='ja'><br>";
}
?>
Avatar billede overgreat Forsker
10. juni 2005 - 22:42 #1
Hjæææælllp. Håber der er en der har en løsning derude.!
Avatar billede kargo1 Nybegynder
11. juni 2005 - 12:40 #2
Du forklarer ikke, hvad der går galt.
Men umiddelbart vil jeg tro, du får en databasefejl, fordi du sætter id til at være en tom streng. Hvis id skal genereres automatisk af databasen, skal du udelade det fra din insert-sætning.

Altså:
mysql_query("INSERT INTO `bil_bil` ( `kategori`, `maerke`, `model`, `variant`, `type`, `bstof`, `farve`, `aar`, `km`, `pris`, `afgift`, `billede`)
  VALUES ('$kategori', '$maerke', '$model', '$variant', '$type', '$bstof', '$farve', '$aar', '$km', '$pris', '$afgift', '$billede')");
Avatar billede overgreat Forsker
11. juni 2005 - 13:41 #3
Hej Tak for indlægget

Jeg har fået den til at virke hvis jeg skriver følgende (i øjeblikket har jeg tre forskellige slags udstyr):

mysql_query("INSERT INTO `bil_udstyr` ( `id`, `airbag`, `elruder`, `anhangertrak`)
  VALUES ('', 'airbag', 'elruder', 'anhangertrak')")

Mit problem er blot at der i mit cms system er mulighed for at oprette flere forskellige slags udstyr løbende.... og for at der ikke skal til at rettes i koder hver gang, ville det være perfekt at kunne lave et udtræk af bil_udstyra tabellen hvor feltet udstyra indeholder navnene på de forskellige slags udstyr!

Hvis man lægger mærke til mine checkboxe så laver den jo også bare det antal checkboxe der passer til rækkerne i udstyra-feltet!

Selve id-delen virker fint nok da den genereres nederst i formularen.

mit problem er at jeg skal have koden til at gøre følgende (når jeg skriver række tænker jeg på værdien i de forskellige rækker i feltet udstyra fra tabllen bil_udstyra):

mysql_query("INSERT INTO `bil_udstyr` ( `id` ,`række1`,`række2`, ,`række3`...osv
)
  VALUES ('', '$række1', 'række2', 'rækee3'...osv )");
Avatar billede overgreat Forsker
11. juni 2005 - 13:44 #4
sorry nederste skulle være (glemte $-tegnene):
mysql_query("INSERT INTO `bil_udstyr` ( `id` ,`række1`,`række2`, ,`række3`...osv
)
  VALUES ('', '$række1', '$række2', '$række3'...osv )");
Avatar billede kargo1 Nybegynder
11. juni 2005 - 17:16 #5
Hvad sker der, når du kører den kode?
Avatar billede overgreat Forsker
11. juni 2005 - 19:01 #6
Hvis jeg prøver at køre nedenstående giver den intet resultat:

mysql_query("INSERT INTO `bil_udstyr` ( `id` <? ,`$udstyr[bil_udstyra]` ?>
)
  VALUES ('' <? , '$$udstyr[bil_udstyra]' ?> )");

---------------------------
Men det sker heller ikke noget når jeg echo'er $udstyr[bil_udstyra]...

så mit spørgsmål går mere på hvordan man kan konstruere noget kode så man få "rækkerne" fra feltet udstyr fra bil_udstyra-tabellen.

Der må være en måde hvor man kan få php'en til at generere koden, så den indsætter tingene i følgende system:

mysql_query("INSERT INTO `bil_udstyr` ( `id` ,`række1`,`række2`, ,`række3`...osv
)
  VALUES ('', '$række1', '$række2', '$række3'...osv )");
Avatar billede overgreat Forsker
11. juni 2005 - 20:36 #7
Jeg har prøvet følgende men får nedenstående fejl:
Parse error: parse error, unexpected T_STRING in c:\www\henrik\gdo\dan\opretbil.php on line 54

kan det afhjælpes?

------------------------------
<?
if($up==ja){
session_start();
$_SESSION['nummer'] = $nummer;

$konfiguration["upload_bibliotek"] = "./upload";
$konfiguration["max_stoerrelse"] = "1000";

/* Hvor flytter vi fra og til */
$fra = $_FILES["upfil"]["tmp_name"];
$ext = strtolower(end(explode(".", $_FILES['upfil']['name'])));
$name = "$id.$ext";
$til = $konfiguration["upload_bibliotek"] . "/" . $name;

/* Check PHP-version */
list($major, $minor, $rev) = explode(".", phpversion());
if($major < 4) {
  die("Jeg kan kun arbejde med PHP 4.0.0 eller derover");
}

/* Skab de "moderne" arrays hvis vi arbejder med en aeldre PHP */
if($minor < 1) {
  $_FILES = $HTTP_POST_FILES;
  $_POST = $HTTP_POST_VARS;
  $_SERVER = $HTTP_SERVER_VARS;
}

/* Accepterer vi filens stoerrelse? */
$fil_stoerrelse = filesize($fra)/1024;
if($fil_stoerrelse > $konfiguration["max_stoerrelse"]) {
  die("Desværre - filen er for stor. Jeg accepterer kun " .
      $konfiguration["max_stoerrelse"] . "kb, og din fil fylder " .
      ceil($fil_stoerrelse, 1) . " kb");
}

/* Saa koerer vi */
if(function_exists("move_uploaded_file")) {
  move_uploaded_file($fra, $til);
  $billede = basename($til);

  include("config.php");
  $db = mysql_connect($server, $user, $pass);

  mysql_select_db($database, $db);
mysql_query("SELECT id, udstyr, udstyra FROM bil_udstyra");

  $dato = date("j/n - Y");

  mysql_query("INSERT INTO `bil_bil` ( `id` , `kategori`, `maerke`, `model`, `variant`, `type`, `bstof`, `farve`, `aar`, `km`, `pris`, `afgift`, `billede`)
  VALUES ('', '$kategori', '$maerke', '$model', '$variant', '$type', '$bstof', '$farve', '$aar', '$km', '$pris', '$afgift', '$billede')");
 
mysql_query("INSERT INTO `bil_udstyr` ( `id` <?
include("config.php");
  $db = mysql_connect($server, $user, $pass);
  mysql_select_db($database, $db);
  $forespa = mysql_query("SELECT id, udstyr, udstyra FROM bil_udstyra");
while ($dataa = mysql_fetch_row($forespa)){
echo "`$dataa[1]`"; }
?>

)
  VALUES (''
<?
include("config.php");
  $db = mysql_connect($server, $user, $pass);
  mysql_select_db($database, $db);
  $forespb = mysql_query("SELECT id, udstyr, udstyra FROM bil_udstyra");
while ($datab = mysql_fetch_row($forespb)){
echo "'$$datab[1]'"; }
?> 
)");

 
echo "Møblet er oprettet! <br>";

  echo "<a href='abil.php'>Retur</a><br>";
session_destroy();
}

else {
  copy($fra, $til);

}

}else{
?>
Avatar billede overgreat Forsker
11. juni 2005 - 20:39 #8
Uden de to indsatte (se nedenstående) finder den fint formularen frem:

--------------
<?
include("config.php");
  $db = mysql_connect($server, $user, $pass);
  mysql_select_db($database, $db);
  $forespa = mysql_query("SELECT id, udstyr, udstyra FROM bil_udstyra");
while ($dataa = mysql_fetch_row($forespa)){
echo "`$dataa[1]`"; }
?>

-------------- 

Så det er der den krazher
Avatar billede overgreat Forsker
29. juni 2005 - 15:29 #9
jeg lukker
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