Avatar billede crabber Nybegynder
03. oktober 2006 - 09:49 Der er 15 kommentarer og
1 løsning

Oprette table, udfylder indhold og indsætte i db?

Jeg har prøvet at lave en formel hvor man opretter et antal rækker og udfylder dem. Der efter bliver indholdet sat over samme antal tabler og skal derefter sættes ind i min db. Men jeg kan ikke få det til at virke.

Jeg håber virkelig der er nogen som kan hjælpe mig!

KODEN:

<?php
session_start();
if(!isset($_SESSION['user_id']))
{
    header('location: index.php');
}
else
{


//Billed resize
function skaler_gif($img, $w, $h){

    $thumbnail = imagecreatetruecolor($w, $h);
    $billede = imagecreatefromgif($img);
   
    $billedstr = getimagesize($img);
   
    imagecopyresized($thumbnail, $billede, 0, 0, 0, 0, $w, $h, $billedstr[0], $billedstr[1]);
    imagegif($thumbnail, $img);
    //die("røv");
}//End function skaler_gif()


function skaler_jpg($img, $w, $h){

    $thumbnail = imagecreatetruecolor($w, $h);
    $billede = imagecreatefromjpeg($img);
   
    $billedstr = getimagesize($img);
   
    imagecopyresized($thumbnail, $billede, 0, 0, 0, 0, $w, $h, $billedstr[0], $billedstr[1]);
    imagejpeg($thumbnail, $img);
}//End function skaler_jpg()




    //måler images størrelse
    for($i=0;$i<count($_FILES[billedfil][tmp_name]);$i++){
        $picttest = getimagesize($_FILES[billedfil][tmp_name][$i]);//Test om det er et billede
       
        $fejl= "";
        if($picttest[2]==2 or $picttest[2]==1){
        $br=50;
        $hi=50;
       
            if($picttest[0]>$picttest[1]){
                $x=$hi;
                $y=$br;
            }elseif($picttest[0]<$picttest[1]){
                $x=$hi;
                $y=$br;
            }elseif($picttest[0]==$picttest[1]){
                $x=$hi;
                $y=$br;
            }//End if-elseif
   
$mappe="../images/produkt_images/";
    $billednavn = time().$_FILES[billedfil][name][$i];
    $thumbnavn ="pro_".$billednavn;
        copy($_FILES[billedfil][tmp_name][$i], $mappe.$billednavn);
        copy($_FILES[billedfil][tmp_name][$i], $mappe.$thumbnavn);
        $fil_at_skalere = $mappe.$thumbnavn;
       
        if($picttest[2]==2){
        skaler_jpg($fil_at_skalere, $y, $x);
        }
       
        if($picttest[2]==1){
        skaler_gif($fil_at_skalere, $y, $x);
        }
        unlink($mappe.$billednavn);
   
    } else {
    $fejl= "Billede skal være GIF eller JPG";
    }
   
    }//End for
   
?>

<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
<table width="396" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="7" height="19">&nbsp;</td>
    <td colspan="5" class="menu_link">Opret et produkt </td></tr>
  <tr>
    <td>&nbsp;</td>
    <td width="86">
    </a></td>
    <td colspan="4">&nbsp;</td>
  </tr>
  <tr>
    <td height="19">&nbsp;</td>
    <td>V&aelig;lg gruppe:</td>
    <td colspan="3">
<?php

$gruppeQuery = "SELECT * FROM grupper";
$gruppeResult = mysql_query($gruppeQuery);

$select = "<select name='gruppevalg'>";
while ($row = mysql_fetch_array($gruppeResult))
          {
          $select .= "<option>";
          $select .= $row["gruppe"];
          $select .= "</option>";
          }
$select .= "<select>";
echo $select;
?></td>
    <td width="89">&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>Overskrift: </td>
    <td colspan="3"><input name="overskrift" type="text" id="overskrift" /></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td height="19">&nbsp;</td>
    <td><p>Billede:<br />
          <br />
        </p>      </td>
    <td colspan="3"><label>
      <input name="billedfil[]" type="file" id="images" />
    </label></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td valign="top">&nbsp;</td>
    <td colspan="3">&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td colspan="4">Beskrivelse:<br />      <br /></td>
    <td>&nbsp;</td>
  </tr>

  <tr>
    <td>&nbsp;</td>
    <td width="250">Tekst felter:</td>
    <td valign="top"><select name="tekst" id="tekst">
      <?php
      for($i=0; $i<21; $i++){
          if($_POST['tekst']==$i){
            echo "<option value=\"$i\" selected=\"selected\">$i</option>";
        } else {
            echo "<option value=\"$i\">$i</option>";
            }
      }
      ?>

    </select></td>
    <td> PDF felter: </td>
    <td valign="top"><select name="filer" id="filer">
      <?php
      for($i=0; $i<11; $i++){
          if($_POST['filer']==$i){
            echo "<option value=\"$i\" selected=\"selected\">$i</option>";
        } else {
            echo "<option value=\"$i\">$i</option>";
            }
      }
      ?>
    </select></td>
    <td valign="top"><input name="submitfelter" type="submit" id="submitfelter" value="Opret  felter" /></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td width="77" valign="top">&nbsp;</td>
    <td width="77">&nbsp;</td>
    <td width="60" valign="top">&nbsp;</td>
    <td valign="top">&nbsp;</td>
  </tr>
 
<?php

if(isset($_POST['submitfelter'])) {

//TEKST
$tekst = $_POST['tekst'];

for($i=1; $i<= $tekst; $i++){
   
    $text = "";
    $navn .= $i;
    $be .= $i;
      $ind .= $i;
   
$text .='<tr>';
$text .= '<td>&nbsp;</td>';
       
$text .= '<td valign="top">';
$beskrivelseQuery = "SELECT * FROM beskrivelses_felter ";
$beskrivelsesResult = mysql_query($beskrivelseQuery);

$text .= "<select name='$navn' id='$be'>";
while ($row = mysql_fetch_array($beskrivelsesResult))
          {
          $text .= "<option>";
          $text .= $row["felter"];
          $text .= "</option>";
          }
$text .= "<select>";
$text .= '</td>';

$text .= '<td colspan="3">';
$text .= '<textarea name="$navn" rows="3" id="$ind"></textarea>';
$text .= '</td>';
$text .= '<td>&nbsp;</td>';
$text .= '</tr>';
print $text;
}

//FILER
$filer = $_POST['filer'];

for($i=1; $i<= $filer; $i++){
   
    $pdf = "";
    $navn .= $i;
    $be2 .= $i;
      $fil .= $i;
   
$pdf .='<tr>';
$pdf .= '<td>&nbsp;</td>';
       
$pdf .= '<td valign="top">';
$beskrivelseQuery = "SELECT * FROM beskrivelses_felter ";
$beskrivelsesResult = mysql_query($beskrivelseQuery);

$pdf .= "<select name='$navn' id='$be2'>";
while ($row = mysql_fetch_array($beskrivelsesResult))
          {
          $pdf .= "<option>";
          $pdf .= $row["felter"];
          $pdf .= "</option>";
          }
$pdf .= "<select>";
$pdf .= '</td>';

$pdf .= '<td colspan="3">';
$pdf .= '<input name="$navn" rows="3" id="$fil" type="file" id="pdffil"></input>';
$pdf .= '</td>';
$pdf .= '<td>&nbsp;</td>';
$pdf .= '</tr>';
print $pdf;
}}


//session_start();
// laver de input felter du har brug for
function MakeTextField($count)
{
    $_SESSION['Count'] = $count;
    $output = "";
    $output .= '<tr>';
        for($i = 1; $i <= $count; $i++)
        {
            $output .= '<td id="be'.$i.'" name="be'.$i.'"></td>';
            $output .= '<td id="ind'.$i.'" name="ind'.$i.'"></td>';
           
        }
    $output .= '</tr>';
    return $output;
}
//udskriver eller indsætter i DBer det samme !!!
function PostInput()
{
    $output = "";
    for ($i = 1; $i >= $_SESSION['Count']; $i++)   
    {
        $output .= $_POST['be'.$i];
        $output .= '<br>';
        $output .= $_POST['ind'.$i];
        $output .= '<br>';
    }
    return $output;
}

?>

<?php
//kalder mine functioner flet dem evt. ind i en if(isset())
if(isset($_POST['LavFelter']))
{
    $count = $_POST['AntalFelter'];
    MakeTextField($count);
}
$static = $_POST['tekst'];
MakeTextField($static);
//PostInput(); #TROELS
?>



  <tr>
    <td>&nbsp;</td>
    <td valign="top">&nbsp;</td>
    <td colspan="3" valign="top">&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td valign="top">&nbsp;</td>
    <td colspan="3" valign="top">&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td valign="top">&nbsp;</td>
    <td colspan="3" valign="top">&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td colspan="3" align="right" valign="top"><input name="submit" type="submit" id="submit" value="Opret" /></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td colspan="4" valign="top"><?php echo $endMessage; $fejl; ?></td>
    <td>&nbsp;</td>
  </tr>
</table>

<?php
$valg = $_POST['gruppevalg'];
$produkt = $_POST['overskrift'];

if(isset($_POST['submit'])){

include"../includes/mysql.inc.php";

$selectQuery = "SELECT id FROM grupper WHERE '$valg' = gruppe";
$selectResult = mysql_query($selectQuery);
$row = mysql_fetch_array($selectResult);

echo $insetQuery = "INSERT INTO produkter VALUES ('','$produkt','images/produkt_images/$thumbnavn','','','" . $row["id"] . "')";
$insetResult = mysql_query($insetQuery);
$endMessage="Produkt navnet - $produkt - er blevet sat ind i databasen";

}

?>
</form>
<?php } ?>
Avatar billede crabber Nybegynder
03. oktober 2006 - 09:50 #1
indholdet skal sættes ind efter $thumbnavn','HER'.
Avatar billede mysli Nybegynder
03. oktober 2006 - 09:57 #2
echo $insetQuery = "INSERT INTO produkter VALUES ('','$produkt','images/produkt_images/$thumbnavn','','','" . $row["id"] . "')";

Prøv at specificere hvilke rækker der er tale om, eks.

INSERT INTO produkter (navn, thumb, id) VALUES ('$produkt','images/produkt_images/$thumbnavn', '$row[id]')";
Avatar billede crabber Nybegynder
03. oktober 2006 - 10:13 #3
Det hjælper ikke!
Avatar billede mysli Nybegynder
03. oktober 2006 - 10:22 #4
$tekst = $_POST['tekst'];

for($i=1; $i<= $tekst; $i++){

Kan forestille mig dette kan volde problemer. Kan ikke forstille mig $_POST['tekst']; er et tal, men en streng. Prøv at køre en var_dump($tekst); inden for løkken.
Avatar billede crabber Nybegynder
03. oktober 2006 - 10:32 #5
Det vil heller ikke virke!
Avatar billede mysli Nybegynder
03. oktober 2006 - 10:41 #6
Nej, men hvad dumper variablen?

var_dump() fortæller de informationer variablen har.

for($i=1; $i<= $tekst; $i++) < den for løkke kan kun køre, hvis $tekst er et tal og ikke en streng, hvilket jeg tror den er.
Avatar billede crabber Nybegynder
03. oktober 2006 - 10:48 #7
Det er også et tal... Det blir lavet oppe i select boxen!

Jeg tror mere der er problemer i den kode hvor den skal generer tabellerne og indsætte teksten.

<select name="tekst" id="tekst">
      <?php
      for($i=0; $i<21; $i++){
          if($_POST['tekst']==$i){
            echo "<option value=\"$i\" selected=\"selected\">$i</option>";
        } else {
            echo "<option value=\"$i\">$i</option>";
            }
      }
      ?>

    </select>
Avatar billede mysli Nybegynder
03. oktober 2006 - 10:59 #8
Ja, men variablen vil jeg formode indeholder en streng med et tal i - det giver en stor forskel.

Disse to er forskellige:
$tekststreng = "1"; Dette er en streng med et tal i
$teksttal = 1; Dette er et tal, såkaldt integer.

Prøv at skrive dette:

$tekst = $_POST['tekst'];
$tekst += 2;
$tekst -= 2;
for($i=1; $i<= $tekst; $i++){

På den måde skulle forminputtet gerne ændres til en integer
Avatar billede crabber Nybegynder
03. oktober 2006 - 11:52 #9
Den vil stadig væk ikke sætte det ind i db'en!
Avatar billede mysli Nybegynder
03. oktober 2006 - 12:07 #10
echo $insetQuery = "INSERT INTO produkter VALUES ('','$produkt','images/produkt_images/$thumbnavn','','','" . $row["id"] . "')";
$insetResult = mysql_query($insetQuery);
$endMessage="Produkt navnet - $produkt - er blevet sat ind i databasen";

Hvorfor skal $insetQuery skrives? (echo)
Til føj dette; or die(mysql_error()); efter  mysql_query($insetQuery)

Så udskriver databasen hvilke fejl der opstår.
Avatar billede crabber Nybegynder
03. oktober 2006 - 12:11 #11
Det var for at se om den overhoved udskrev noget fra for lykken.. og det gær den ikke!
Avatar billede crabber Nybegynder
03. oktober 2006 - 12:19 #12
Den udspytter ikke nogen fejl!
Avatar billede mysli Nybegynder
03. oktober 2006 - 12:36 #13
Du er nødt til at være mere informationsgivende. Er det kun databasen den ikke vil sætte ind i?

if(isset($_POST['submit'])){

include"../includes/mysql.inc.php";

$selectQuery = "SELECT id FROM grupper WHERE '$valg' = gruppe";
$selectResult = mysql_query($selectQuery);
$row = mysql_fetch_array($selectResult);

echo $insetQuery = "INSERT INTO produkter VALUES ('','$produkt','images/produkt_images/$thumbnavn','','','" . $row["id"] . "')";
$insetResult = mysql_query($insetQuery);
$endMessage="Produkt navnet - $produkt - er blevet sat ind i databasen";

}

Bliver denne løkke overhovedet kørt? Prøv at lave en echo som det første. Syntaksen i $selectQuery = "SELECT id FROM grupper WHERE '$valg' = gruppe"; er også forkert. Du bør skrive
$selectQuery = "SELECT id FROM grupper WHERE gruppe = '$valg'";
Avatar billede crabber Nybegynder
04. oktober 2006 - 09:53 #14
Det er selve

forlykken der skal oprette og samen sætte de tables der blir lavet der ikke vil sætte ind i db'en.
Alt andet virker fint!
Avatar billede mysli Nybegynder
04. oktober 2006 - 11:03 #15
Det kan nok skyldes du ikke har en for løkke som indsætter i databasen.

if(isset($_POST['submit'])){

include"../includes/mysql.inc.php";

$selectQuery = "SELECT id FROM grupper WHERE '$valg' = gruppe";
$selectResult = mysql_query($selectQuery);
$row = mysql_fetch_array($selectResult);

echo $insetQuery = "INSERT INTO produkter VALUES ('','$produkt','images/produkt_images/$thumbnavn','','','" . $row["id"] . "')";
$insetResult = mysql_query($insetQuery);
$endMessage="Produkt navnet - $produkt - er blevet sat ind i databasen";

}

Dette er det eneste indsætnings kald til databasen, og den indeholder ingen for løkke
Avatar billede crabber Nybegynder
04. oktober 2006 - 14:35 #16
Jeg har fået en til at hjælep mig med at lavet det. Så nu virker det. Men mange tak fordi du gad bruge din tid på mig!

Casper
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