Avatar billede farhang Nybegynder
05. oktober 2006 - 11:20 Der er 14 kommentarer og
1 løsning

Hente data fra to tabeller ind i formular

Jeg har to tabeller, som jeg gerne vil hente data fra. Den ene hedder products og den anden images, jeg vil hente data fra images ind i en scroll-box/form for at vælge et givent billede, når jeg trykker på ret, skal products tabellen blive opdateret med det valgte data fra images. Nogen der vil hjælpe mig?

<table border="0" width="785" cellspacing="1" cellpadding="3" align="center">
  <form action="save.php" method="post">
    <input type="hidden" value="<?= $row['products_prodnum'] ?>" name="products_prodnum" size="1" />
    <tr>
      <td width="20%" valign="bottom"><font class="undermenu"><b>Varernr.</b></font></td>
      <td width="20%" valign="bottom"><font class="undermenu"><b>Navn</b></font></td>
      <td width="20%" valign="bottom"><font class="undermenu"><strong>Size</strong></font></td>
      <td width="20%" valign="bottom"><font class="undermenu"><b>Pris</b></font></td>
      <td width="20%" valign="bottom"><font class="undermenu"><b>Kategori</b></font></td>
    </tr>
    <tr>
      <td><font class="undermenu">
        <?= $row['products_prodnum'] ?>
      </font></td>
      <td><input type="text" value="<?= $row['products_navn'] ?>" name="products_navn" size="20" /></td>
      <td><input type="text" value="<?= $row['products_size'] ?>" name="products_size" size="20" /></td>
      <td><input type="text" value="<?= $row['products_pris'] ?>" name="products_pris" size="20" /></td>
      <td><input type="text" value="<?= $row['products_type'] ?>" name="products_type" size="20" /></td>
    </tr>
    <tr>
      <td colspan="5" valign="bottom"><font class="undermenu"><b>Beskrivelse:</b></font></td>
    </tr>
    <tr>
      <td colspan="5"><textarea name="products_beskrivelse" cols="94" rows="5"><?= $row['products_beskrivelse'] ?>
</textarea></td>
    </tr>
    <tr>
      <td colspan="3"><font class="undermenu"><b>Stort billede: </b><a class="undermenu" href="upload_image.php" target="_blank">[upload]</a> <a class="undermenu" href="showimages.php" target="_blank">[vælg]</a></font></td>
      <td colspan="2"><font class="undermenu"><b>Lille billede: </b><a class="undermenu" href="upload_image.php" target="_blank">[upload]</a> <a class="undermenu" href="showimages.php" target="_blank">[vælg]</a></font></td>
    </tr>
    <tr>
      <td colspan="3" valign="top"><img src="<?= $row['products_imageurl'] ?>" width="400" height="400" border="0" /></td>
      <td colspan="2" valign="top"><img src="<?= $row['products_thumbnailimageurl'] ?>" width="95" height="95" border="0" /></td>
    </tr>
    <tr>
      <td colspan="3" valign="top"><input type="text" value="<?= $row['products_imageurl'] ?>" name="products_imageurl" size="45" /></td>
      <td colspan="2" valign="top"><input type="text" value="<?= $row['products_thumbnailimageurl'] ?>" name="products_thumbnailimageurl" size="45" /></td>
    </tr>
    <tr>
      <td colspan="5" align="center" valign="middle"><input type="hidden" name="action" value="add" />
          <input name="submit" type="submit" value="Ret" /></td>
    </tr>
  </form>
</table>
----
<?php
$conn = mysql_connect("xxxxx", "xxxxx", "xxxxx")
  or die(mysql_error());
$db = mysql_select_db("xxxxx_shop")
  or die(mysql_error());

if($_POST[action] =="add")
{
mysql_query("UPDATE products SET products_navn ='$_POST[products_navn]', products_size ='$_POST[products_size]', products_pris ='$_POST[products_pris]', products_type ='$_POST[products_type]', products_beskrivelse ='$_POST[products_beskrivelse]', products_imageurl ='$_POST[products_imageurl]', products_thumbnailimageurl ='$_POST[products_thumbnailimageurl]' WHERE products_prodnum ='$_POST[products_prodnum]'") or die(mysql_error());

$status = Opdateret;
}
                    header("location: produkter.php");
?>
Avatar billede jakobdo Ekspert
05. oktober 2006 - 22:09 #1
Nu ved jeg ikke helt hvad du spørger om.
Er det hvordan du laver en scrollbox / select-option ?
Eller er det selve det at opdatere din database?
Avatar billede farhang Nybegynder
06. oktober 2006 - 08:52 #2
Jeg har lavet det således:
<?php
  $link = mysql_connect("xxxxx", "xxxxx", "xxxxx")
    or die("Could not connect: " . mysql_error());
  mysql_select_db('xxxxx_shop', $link)
    or die ( mysql_error());
  $imagessql = "SELECT * FROM images";
 
  $result = mysql_query($imagessql)
    or die("Invalid query: " . mysql_error());
  while ($row = mysql_fetch_array($result)) {
    $images[$row['image_id']] = $row['image_caption'];
  }

  switch ($_GET['action']) {
    case "edit":
      $productssql = "SELECT * FROM products
                  WHERE products_prodnum = '" . $_GET['id'] . "'";
      $result = mysql_query($productssql)
        or die("Invalid query: " . mysql_error());
      $row = mysql_fetch_array($result);
      $products_thumbnailimageurl = $row['products_thumbnailimageurl'];
      break;
     
    default:
      $products_thumbnailimageurl = "";
      break;
  }
?>
        <select name="products_thumbnailimageurl" size="1">
          <option value="<?php echo $products_thumbnailimageurl; ?>" selected>Vælg et billede...</option>
          <?php
  foreach ($images as $image_id => $image_caption) {
    if ($image_id == $products_thumbnailimageurl) {
      $selected = "$products_thumbnailimageurl";
    } else {
      $selected = "";
    }
?>
          <option value="<?php echo $image_id; ?>.jpg"<?php
        echo $selected; ?>><?php echo $image_id; ?>.jpg</option>
          <?php
  }
?>
                        </select>

Jeg har image_id som option og products_thumbnailimageurl som name, Image_id er i images tabel og har samme værdi som products_thumbnailimageurl fra products tabel. Jeg har så en edit-function, som updaterer hele recorden for en products. Problemet opstår, når det sker, products værdien for products_thumbnailimageurl bliver fjernet fra min record selvom jeg ikke vil fjerne eller ændre det.

Hvad skal jeg gør?
Avatar billede jakobdo Ekspert
06. oktober 2006 - 09:13 #3
Jeg forstod ikke det sidste du skrev der.
Avatar billede farhang Nybegynder
06. oktober 2006 - 10:01 #4
Jeg har image_id og products_thumbnailimageurl, image_id ligger i images tabel og products_thumbnailimageurl ligger i products tabel. Jeg har så en add-function, som opdaterer en enkelt record i min products tabel. Problemet opstår, når recorden i min products tabel blive opdateret, så bliver værdien for products_thumbnailimageurl fjernet fra min record, selvom jeg ikke vil fjerne eller ændre det.
Avatar billede jakobdo Ekspert
06. oktober 2006 - 10:36 #5
Er du sikker på image_id er sat til noget?
Det kan jo være image_id netop er tom, og derfor bliver rækken sat til ingenting.
Avatar billede farhang Nybegynder
06. oktober 2006 - 12:05 #6
Ja, jeg er ikke sikker. Jeg ved ikke hvordan sætter image_id til noget og hvordan jeg relaterer dens id til products tabellen, så det bliver husket?
Avatar billede jakobdo Ekspert
06. oktober 2006 - 12:27 #7
Altså jeg ville jo gøre sådan her:
produkt-tabel
id
produkt-navn
produkt-info
osv...
billede-id

billede-tabel
id
billede-navn
billede-info
osv...

Så gemmer du billede-id i produkttabellen.
f.eks.
produktid = 12
produktnavn = "jakobdo"
produktinfo = "udgået"
billede-id  = 2

2 betyder så at du i din billede-tabel har et billede som har id = 2 og det billede skal vises med produktid = 12.
Forstår du?
Og rammer jeg helt ved siden af her?
Avatar billede farhang Nybegynder
06. oktober 2006 - 12:38 #8
Hvordan skal koden så se ud, hvis jeg gør det?
Avatar billede jakobdo Ekspert
06. oktober 2006 - 12:57 #9
Kan du SQL selv?
Avatar billede farhang Nybegynder
06. oktober 2006 - 13:04 #10
meget lidt
Avatar billede jakobdo Ekspert
06. oktober 2006 - 13:20 #11
Måske jeg spørger dumt...
Men hvordan forventer du så at lave sådanne systemer?
Avatar billede farhang Nybegynder
06. oktober 2006 - 13:29 #12
Jeg er et stædigt æsel, jeg studerer mine php-bøger og prøver mig frem. Desuden vil jeg lære php og sql og har høje krav til mig selv. ;-)
Avatar billede jakobdo Ekspert
06. oktober 2006 - 13:45 #13
Fair nok.
Men du skal ihf. have det grundlæggende php og sql på plads, så vil du også hurtigt kunne udbygge og lave større ting selv.
Avatar billede farhang Nybegynder
06. oktober 2006 - 14:05 #14
Ok
Avatar billede farhang Nybegynder
29. november 2006 - 15:20 #15
ok
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