Avatar billede snigeren Nybegynder
07. november 2005 - 20:30 Der er 15 kommentarer og
1 løsning

indsætte flere entries i min DB på én gang

Jeg prøver at få min php fil til at indsætte tre forskellige entries i databasen på én gang med følgende script:

Den kommer ikke med fejl, men den indsætter kun én entry og der kommer ikke nogen itemPrice, itemQty eller itemType ind i DB´en alt andet kommer fint ind.

Håber der er en venlig sjæl der kan hjælpe stakkels mig :P


<?php

    // This page will list all of the items
    // from the items table. Each item will have
    // a link to add it to the cart

    include("../db.php");
   
    // Get a connection to the database
    $cxn = @ConnectToDb($dbServer, $dbUser, $dbPass, $dbName);
    ?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Jernbanemaerker</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="../css/styles.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
.style2 {color: #89744B}
-->
</style>
</head>

<body bgcolor="#D8C5A3">
<table width="900" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr align="right" valign="top">
    <td width="900" height="143"><img src="../gfx/top_gfx_admin.jpg" width="900" height="143"></td>
  </tr>
  <tr>
    <td height="503" valign="top" class="body" bgcolor="#F2E3C8"><table width="100%"  border="0" cellpadding="0" cellspacing="0">
      <tr class="style2">
        <td width="245" height="379" align="center" valign="top" class="left"><p>&nbsp;</p>
          <h1><strong>Tilf&oslash;j nyt produkt </strong></h1>
          <p><a href="index.php">Til admin forside</a> </p></td>
        <td width="655" align="center" valign="top" class="middle"><table width="90%"  border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td colspan="2" align="left" valign="top"><p>&nbsp;</p>
              <h1>Tilf&oslash;j nyt produkt </h1>
              <p><?php
                      if($action=="ny"){
                    echo '<form action="admin_new_product.php?mainId=';
                    echo $_GET["mainId"];
                    echo '&action=gem" method="post" enctype="multipart/form-data" name="form1">';
                    echo '<table width="100%"  border="0" cellspacing="0" cellpadding="0">';
                    echo '<tr><td width="23%">Navn:</td><td width="77%"><input name="itemName" type="text" size="60"></td></tr>';
                    echo '<tr><td valign="top">Beskrivelse:</td><td><textarea name="itemDesc" cols="50" rows="6"></textarea></td></tr>';
                    echo '<tr><td>Pris 1:</td><td><input name="itemPriceA" type="text" size="60"></td></tr>';
                    echo '<tr><td>Pris 2:</td><td><input name="itemPriceB" type="text" size="60"></td></tr>';
                    echo '<tr><td>Pris 3:</td><td><input name="itemPriceC" type="text" size="60"></td></tr>';
                    echo '<tr><td>Antal 1:</td><td><input name="itemQtyA" type="text" size="60"></td></tr>';
                    echo '<tr><td>Antal 2:</td><td><input name="itemQtyB" type="text" size="60"></td></tr>';
                    echo '<tr><td>Antal 3:</td><td><input name="itemQtyC" type="text" size="60"></td></tr>';
                    echo '<tr><td>Billede: </td><td><input type="file" name="filnavnB" size="48"></td></tr>';
                    echo '<tr><td>Thumbnail: </td><td><input type="file" name="filnavnT" size="48"></td></tr>';
                    echo '<tr><td>Produkt type 1: </td><td><select name="itemTypeA" id="itemTypeA">';
                    echo '<option>Enkelt_m&aelig;rke</option>';
                    echo '<option>5_stribe</option>';
                    echo '<option>25_stribe</option>';
                    echo '<option>Helark</option>';
                    echo '</select><td></tr>';
                    echo '<tr><td>Produkt type 2: </td><td><select name="itemTypeB" id="itemTypeB">';
                    echo '<option>Enkelt_m&aelig;rke</option>';
                    echo '<option>5_stribe</option>';
                    echo '<option>25_stribe</option>';
                    echo '<option>Helark</option>';
                    echo '</select><td></tr>';
                    echo '<tr><td>Produkt type 3: </td><td><select name="itemTypeC" id="itemTypeC">';
                    echo '<option>Enkelt_m&aelig;rke</option>';
                    echo '<option>5_stribe</option>';
                    echo '<option>25_stribe</option>';
                    echo '<option>Helark</option>';
                    echo '</select><td></tr>';
                    echo '<tr><td></td><td><input name="submit" type="submit" value="Gem"></td></tr>';
                    echo '<td></td><td></td></tr></table></form>';
                    }
                   
                    if($action=="gem"){
                        $tempfile = $_FILES['filnavnB']['tmp_name'];
                        $destination = "../gallery/billeder/{$_FILES['filnavnB']['name']}";
                        move_uploaded_file($tempfile, $destination);
                        $tempfile = $_FILES['filnavnT']['tmp_name'];
                        $destination = "../gallery/thumbs/{$_FILES['filnavnT']['name']}";
                        move_uploaded_file($tempfile, $destination);
                        $name = $HTTP_POST_VARS['itemName'];
                        global $billede;
                        global $thumb;
                        $billede = $_FILES['filnavnB']['name'];
                        $thumb = $_FILES['filnavnT']['name'];
                        $desc = $HTTP_POST_VARS['itemDesc'];
                        $priceA = $HTTP_POST_VARS['itemPriceA'];
                        $priceB = $HTTP_POST_VARS['itemPriceB'];
                        $priceC = $HTTP_POST_VARS['itemPriceC'];
                        $quantityA = $HTTP_POST_VARS['itemQtyA'];
                        $quantityB = $HTTP_POST_VARS['itemQtyB'];
                        $quantityC = $HTTP_POST_VARS['itemQtyC'];
                        $typeA = $HTTP_POST_VARS['itemTypeA'];
                        $typeB = $HTTP_POST_VARS['itemTypeB'];
                        $typeC = $HTTP_POST_VARS['itemTypeC'];
                        $mainId = $_GET["mainId"];
                        $sqla = "insert into items (itemName, itemDesc, itemPrice, itemQty, itemPhoto, itemThumb, itemType, mainId) values ('$name', '$desc', '$priceA', '$quantityA', '$billede', '$thumb', '$typeA', '$mainId')";
                        $sqlb = "insert into items (itemName, itemDesc, itemPrice, itemQty, itemPhoto, itemThumb, itemType, mainId) values ('$name', '$desc', '$priceB', '$quantityB', '$billede', '$thumb', '$typeB', '$mainId')";
                        $sqlc = "insert into items (itemName, itemDesc, itemPrice, itemQty, itemPhoto, itemThumb, itemType, mainId) values ('$name', '$desc', '$priceC', '$quantityC', '$billede', '$thumb', '$typeC', '$mainId')";
                        echo $sql;
                        $resulta = mysql_query($sqla) or die(mysql_error());
                        $resultb = mysql_query($sqlb) or die(mysql_error());
                        $resultc = mysql_query($sqlc) or die(mysql_error());
                        echo "<script>parent.location='index.php'</script>";
                        }
                       
                       
                    if($action=="edit"){
            $sql = "select * from Artist where itemsId like ";
            $sql .= $HTTP_POST_VARS['itemsId'];
            $artist = mysql_query($sql);
                        while($row = mysql_fetch_array($artist)){   
                        echo "<br>Editér kunsnter:";
                        echo "<form name=kuntner method=post action=admin_artist.php?action=update>";
                        echo "<table width=100%  border=0 cellspacing=0 cellpadding=0><tr>";
                        echo "<td>Navn:</td>";
                        echo "<td><input type=text name=navn value='";
                        echo $row['itemName'];
                        echo "'>";
                          echo "<input type=hidden name=Id value=";
                        echo $row['itemId'];
                        echo ">";
                        echo "</td></tr>";
                        echo "<tr><td>Beskrivelse:</td><td><textarea name=desc>";
                        echo $row['itemDesc'];
                        echo "</textarea></td></tr>";
                        echo "<tr><td>menu-billede:</td><td>";
                        echo $row['menu_gfx'];
                        echo " <a href= java script:; onClick=MM_openBrWindow('Change_Menu.php?ID=";
                        echo $row["ID"];
                        echo "','Ændring','width=400,height=175')>ændr via popup</a></td></tr>";
                        echo "<tr><td>pic:</td><td>";
                        echo $row['Pic'];
                        echo " <a href= java script:; onClick=MM_openBrWindow('Change_Pic.php?ID=";
                        echo $row["ID"];
                        echo "','Ændring','width=400,height=175')>ændr via popup</a></td></tr>";
                        echo "<tr><td>Gallery-billede:</td><td>";
                        echo $row['Gallery_pic'];
                        echo " <a href= java script:; onClick=MM_openBrWindow('Change_Gallery.php?ID=";
                        echo $row["ID"];
                        echo "','Ændring','width=400,height=175')>ændr via popup</a></td></tr>";
                        echo "<tr><td>&nbsp;</td><td><input type=submit name=Submit value=gem></td></tr>";
                        echo "</table> </form>";
            }
            }
                    ?></p></td>
          </tr>
        </table></td>
      </tr>
    </table></td>
  </tr>
</table>
</body>
</html>


/Snig
Avatar billede nielle Nybegynder
07. november 2005 - 21:35 #1
Hvordan får du vist din form? Så vidt jeg kan se bliver den først vist når $action er lig med "ny", og det sker ikke via den viste kode.
Avatar billede snigeren Nybegynder
07. november 2005 - 21:45 #2
Jeg sætter action=ny på forrige side: 
a href="admin_new_product_3.php?mainId=103&action=ny">Tilf&oslash;j 3 nye produkter </a>

I øvrigt kom jeg til at smide action=edit delen med oxo, bare glem den... den er ikke færdig endnu...

Men har du en idé til hvordan jeg løser mit problem?
Avatar billede nielle Nybegynder
07. november 2005 - 22:20 #3
Ok, men så ville jeg godt nok anbefale at du skriver $_GET["action"] og $_POST["action"] i stedet for $action. Desuden ville jeg anbefale at du brugte noget andet end netop ordet "action" da dette kan blive forvekslet med formens action. Endeligt ville jeg, bruge $_POST[...] i stedet for $HTTP_POST_VARS[...].

I din kodeblok:

if ($action == "gem") { ... }

- har du en reference til $_GET["mainId"]. Den skal rettes til $_POST["mainId"], ellers er den bare tom.

Bortset far disse betragtninger, hvad er så i vejen med din kode? PÅ hvilken måde fejler end? Hvad er symtomerne?
Avatar billede snigeren Nybegynder
07. november 2005 - 22:27 #4
mjaa den kommer ikke med nogen fejl, den laver bare kun én entry og der får den ikke disse med: itemPriceA, B eller C, itemQtyA, B eller C, itemTypeA, B eller C

Billeder og den øvrige tekst kommer med, bare ikke de tre jeg gerne vil have skal være forskellige fra billeder, overskrift og beskrivelse.
Avatar billede nielle Nybegynder
07. november 2005 - 22:39 #5
Når databasen opføre sig underligt så skyldes det i 9 ud af 10 tilfælde at SQL'en indeholder noget andet end det man forventer. Derfor er det altid en god ide - i den slags tilfælde - at lave noget debug-kode:

echo "DEBUG #1: " . $sqla . "<br>";
$resulta = mysql_query($sqla) or die(mysql_error());

echo "DEBUG #2: " . $sqlb . "<br>";
$resultb = mysql_query($sqlb) or die(mysql_error());

echo "DEBUG #3: " . $sqlc . "<br>";
$resultc = mysql_query($sqlc) or die(mysql_error());
// Kommenter denne linje ud mens at der debugges -- echo "<script>parent.location='index.php'</script>";
Avatar billede snigeren Nybegynder
07. november 2005 - 23:09 #6
ok,.. det må jeg lige prøve. Er ikke sikker på jeg når at se på det i morgen og jeg er for træt nu =(

Du hører sikkert snart fra mig igen =D
Avatar billede snigeren Nybegynder
13. november 2005 - 17:55 #7
hej igen =)
Uhm,.. skulle nedenstående kode ikke vise indholdet af sqla?
echo "DEBUG #1: " . $sqla . "<br>";
$resulta = mysql_query($sqla) or die(mysql_error());

det er oxo lidt mærkeligt,.. jeg har prøvet at kommentere den linie ud og fjerne den helt men den bliver ved med at hoppe tilbage til admin/index.php istedet for at blive og vise kode:

echo "<script>parent.location='index.php'</script>";
Avatar billede nielle Nybegynder
13. november 2005 - 18:05 #8
Korrekt, det skulle det. Hvad får du da vist i stedet?
Avatar billede snigeren Nybegynder
13. november 2005 - 18:10 #9
ikke noget den hopper bare tilbage til inde.php som der står i den linie vi kommenterede ud
Avatar billede nielle Nybegynder
13. november 2005 - 22:21 #10
Det lyder jo som om at det er et helt andet stykke kode, end det vi forventer, som bliver eksekveret. Prøv at tømme din cache.
Avatar billede snigeren Nybegynder
14. november 2005 - 16:58 #11
hmm det virkede heller ikke at tømme cashen =(

Har du tilfældigvis et eksempel på at uploade flere på én gang?
Avatar billede nielle Nybegynder
14. november 2005 - 19:35 #12
Ingen eksempler lige ved hånden. :^|

Hvis din kode springer videre til index.php på trods af at du slet ikke har nogen "<script>parent.location='index.php'</script>" i den så er der noget seriøst galt.

Enten løses det ved en iisreset, som skulle tømme cachen på webserveren (eller det er måske en apache?), eller også får du simpelthen udført en anden PHP-fil end den du sidder og arbejder med.
Avatar billede nielle Nybegynder
21. november 2005 - 18:46 #13
Er du kommet videre?
Avatar billede snigeren Nybegynder
21. november 2005 - 22:05 #14
NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO!

Jeg har haft lidt travlt her den seneste tid og var lige kommet lidt væk fra projektet...

Problemet er så simpelt...

...eller også får du simpelthen udført en anden PHP-fil end den du sidder og arbejder med.  <---- FACK!

echo '<form action="admin_new_product.php?mainId=';
jeg har jo omdøbt den her fil til admin_new_product_3.php

MAN!

Hvor klogt var det,.. spørger jeg lige mig selv,..

Nu virker det jo upåklageligt... havde fuldstændig overset den lille dumme detalje.

Men tak for hjælpen,.. du fik mig da til at finde min fejl =)

smid lige et svar så jeg kan få lukket og slukket og forhåbentlig glemme alt om denne tråd :P
Avatar billede nielle Nybegynder
21. november 2005 - 23:01 #15
Tro mig, jeg kender kun alt for godt den slags fejl selv :^|

... og et svar :^)
Avatar billede snigeren Nybegynder
21. november 2005 - 23:03 #16
det tænker jeg oxo =) men endnu engang tak
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