PHP MySQL eko verileri [kapalı]

1 Cevap php
<?php

// query db

    $sql = "SELECT category.id as category_pk, category_id, products.* from category, products WHERE products.id = category.category_id AND category.id = category_id"; // from category get id
    if ($result = mysql_query($sql)) {
      if (mysql_num_rows($result)) {
        $row = mysql_fetch_assoc($result);
        echo "<h2>" . $row['category_id'] . "</h2>";
        } else {
        echo "Something is wrong!";
      }
    }

?>
    <div class="datadivleftcontent">

<?php
// query db

    $sql = "SELECT product_image, products.* FROM product_image, products WHERE product_image.product_id = products.id AND product_image.product_id = products.id"; // from products get id
    if ($result = mysql_query($sql)) {
      if (mysql_num_rows($result)) {

     while ($row = mysql_fetch_assoc($result)) { //initial the loop

        echo "<h4>" . $row['name'] . "</h4>"; // echo date results as format "h4"
        echo "<p>" . $row['description'] . "</p>"; // echo content as p format "body text"
        echo "<h5>Measurements: " . $row['measurements'] . "</h5>"; // echo content as p format "body text"

echo "<a href='img/products/{$row['filename']}' rel='lightbox' title='{$row['name']}'>"; 

echo "<img src='img/products/thumbnails/{$row['filename']} 'alt='{$row['name']}' title='{$row['name']}' width='173' height='136'></a>";



}
        } else {
        echo "Something is wrong!";
      }
    }

?>

Tamam, bu şimdiye kadar yaptığım budur:

DB:

category:
id (pk, auto increment)
category_id (index)

products:
id (fk to category_id, cascade)
name (index)
description
measurements

product_image:
product_id (fk to name, cascade)
filename
thumbnail

Şimdi, ben size bağlayan kategorinin türünü seçebileceğiniz bir menü (liste öğesi) var product_range.php:

<?php

    // query db
    $sql = mysql_query ("SELECT * FROM `category` ORDER BY ID ASC");
    // echo linked result from db
   if($resource and !is_bool($resource)) {
    $row = mysql_fetch_assoc($resource);
 }
    while ($row = mysql_fetch_assoc($sql)){

    echo "<a href='product_range.php?id={$row['category_id']}' "; echo ($fullpath == "product_range.php?category_id={$row['category_id']}") ? 'id="select"' : ''; echo ">" . ($row['category_id']) . "</a>";
} 
?>

Bunun için kodu product_range.php:

<?php include ("include/head.php"); ?>

<?php // db connect
$link = mysql_connect('localhost', 'root', 'password');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
echo '';
mysql_select_db("wp");
?>

<body>

<?php include ("include/header.php"); ?>

<div class="wrapper">

<?php include ("include/topnav.php"); ?>

<!-- data div -->
<div class="datadiv">

<div class="datadivleft">

<?php

// query db
if (isset($_GET['id'])) {
    $sql = "SELECT category.id as category_pk, category_id, products.* from category, products WHERE products.id = category.category_id AND category.id = ?" . mysql_real_escape_string($_GET['id']) . "'"; // from category get id
    if ($result = mysql_query($sql)) {
      if (mysql_num_rows($result)) {
        $row = mysql_fetch_assoc($result);
        echo "<h2>" . $row['category_id'] . "</h2>";
        } else {
        echo "Something is wrong!";
      }
    }
  }
?>
    <div class="datadivleftcontent">

<?php
// query db
if (isset($_GET['id'])) {
    $sql = "SELECT products_image.* FROM products_image, products WHERE products_image.id = products.name AND products_image.id = ?" . mysql_real_escape_string($_GET['id']) . "'"; // from products get id
    if ($result = mysql_query($sql)) {
      if (mysql_num_rows($result)) {

     while ($row = mysql_fetch_assoc($result)) { //initial the loop

        echo "<h4>" . $row['name'] . "</h4>"; // echo date results as format "h4"
        echo "<p>" . $row['description'] . "</p>"; // echo content as p format "body text"
        echo "<h5>Measurements: " . $row['measurements'] . "</h5>"; // echo content as p format "body text"

echo "<a href='img/products/{$row['filename']}' rel='lightbox' title='{$row['name']}'>"; 

echo "<img src='img/products/thumbnails/{$row['filename']} 'alt='{$row['name']}' title='{$row['name']}' width='173' height='136' /></a>";


}
        } else {
        echo "Something is wrong!";
      }
    }
  }
?>


</div>


</div>

</div>
<!-- end -->

<?php include ("include/showcase.php"); ?>

<?php include ("include/btmcontent.php"); ?>

</div>

<?php include ("include/footer.php"); ?>

</body>
</html>

Ben DB yankılandı herhangi bir veri alınamıyor. Ben belirttiğim gibi sözdizimi kaynak denedim. Ben yanlış ne yapıyorum?

1 Cevap

EDIT:

Hi, Thanks for your reply, the * is a typo I missed it's not in the actual source. Also for picking up. Everything is working as it should, but here it is: I have a table named filename consisting filename_id (foreign key) image (containing the image.jpg) and thumbnail (containing the image.jpg) the filename_id relates to products filename (index). So the images relates to the products and category selected by the user. I get all the data with 1 image related (products filename field) echoed but do not get the images related from the filename table. Hope some of this makes some sense. – John 10 mins ago

Tamam, böylece yumruk Eğer ürün ve kategoriler almak gerekir:

SELECT category.id as category_pk, category_id, products.* from category, products WHERE products.id = category.category_id AND category.id = ?;

"?" yüklediğin dezenfekte / kazanılmış kategori id isteğiniz meydana getirir.

Bu, belirli bir kategori ve her ürün için tüm ilgili kategori bilgi için tüm ürün alır.

Sonra görüntüler için size yapmanız çoklu görüntüler böylece foreach ürün var çünkü başka bir sorgu vermek zorunda sorunu gidiyoruz:

SELECT filename.* FROM filename, products WHERE filename.filename_id = products.filename AND filename.filename_id = ?;

Bu i senin her ürün için görüntüleri sorgulamak için gidiyoruz çünkü ağır çok DB ... bunu yapmak için başka bir yolu tüm görüntüleri ürün ve kategori ile katıldı ve daha sonra bize sructure içine orgainzed everythoing almak için bazı php kullanabilirsiniz sorgulamak olacaktır html için çıkış fonksiyonları ile. Eğer sadece tek bir sorgu yapmak yoludur.

Ayrıca onun geç şemanız gözden geçirmek isteyebilirsiniz için değilse ... Bu çok kafa karıştırıcı! Ben aşağıdaki gibi bir şey yapardı:

category:
id (pk auto increment)
name (index mul or unique)

product:
id (pk, auto increment)
category_id (fk to category.id)
name (index multi)
description
measurements

product_image:
id (pk, auto increment)
product_id (fk to product)
image_file (image filename)
thumbnail_file (thumbnail filename)


Lütfen sizin src üzerinde biten alıntı eksik. Ayrıca resim etiketi kapatmak gerekiyor ... ve neden etiketi bir * var mı? (Aşağıda düzeltilmiş):

echo "<img src='img/products/thumbnails/{$row['filename']}' 'alt='{$row['name']}' title='{$row['name']}' width='156' height='109' /></a>";

Bunun dışında yaşıyorsanız eaxct sorun ne formu? Eğer görüntüleri bulamıyorsunuz? Eğer yanlış isimleri / kategoriler alıyorsanız. vs?

Ayrıca, bu tür çirkin bence ... Eğer bu kadar gibi burada sprinf yararlanmak isteyebilirsiniz:

  echo sprintf('<img src="img/production/thumbnails/%s" alt="%s" title="%s" width="156" height="109" /></a>',
    $row['filename'],
    $row['name'],
    $row['name']
  );