Neden bu PHP komut dosyası benim CSS düzeni ile müdahale yok?

5 Cevap php

Bu sayfa kullanımları $_GET bir varlık id kapmak ve bir mysql veritabanını sorgulamak ve bazı bilgilerini dönmek için.

'Id' şey uymuyorsa, hiçbir sonuç gösterilir ama sayfa gayet iyi görünüyor vardır. 'Id' ise boş bir hata oluştuğunda bu $id = $_GET["id"] or die(mysql_error());, onlar sayfa düzeni düzgün görüntülenmeyen oluşacak. Bunu nasıl düzeltebilirim?

Bonus soru: Nasıl "Hiçbir eşleşen bulunan sonuç" veya id veritabanındaki herhangi id maç veya null olmayan bir şey gibi bir mesaj alacağı.

Teşekkür ederim.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="style.css" />
<title>IT Asset</title>
</head>

<body>
    <div id="page">
                <div id="header">
                  <img src="images/logo.png" />
                </div>

                </div>

                <div id="content">
                    <div id="container">

                        <div id="main">
                        <div id="menu">
                            <ul>
                                <table width="100%" border="0">
                                <tr>
                                <td><li><a href="index.php">Search Assets</a></li></td>
                                <td><li><a href="browse.php">Browse Assets</a></li></td>
                                <td><li><a href="add_asset.php">Add Asset</a></li></td>
                                <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
                                </tr>
                                </table>
                          </ul>
                        </div>
                        <div id="text">
                        <ul>
                        <li>
                        <h1>View Asset</h1>
                        </li>
                        </ul>
<table width="100%" border="0" cellpadding="2">
<?php

//make database connect
mysql_connect("localhost", "asset_db", "asset_db") or die(mysql_error());
mysql_select_db("asset_db") or die(mysql_error());

//get asset
$id = $_GET["id"] or die(mysql_error());
//get type of asset
$sql = "SELECT asset.type
From asset
WHERE asset.id = $id";
$result = mysql_query($sql)
or die(mysql_error());
$row = mysql_fetch_assoc($result);
$type = $row['type'];

switch ($type){
case "Server":
$sql = "
SELECT asset.id
,asset.company
,asset.location
,asset.purchase_date
,asset.purchase_order
,asset.value
,asset.type
,asset.notes
,server.manufacturer
,server.model
,server.serial_number
,server.esc
,server.user
,server.prev_user
,server.warranty
FROM asset
LEFT JOIN server
    ON server.id = asset.id
WHERE asset.id = $id
";
$result = mysql_query($sql);
while($row = mysql_fetch_assoc($result))
{
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Asset ID:</td><td>";
    $id = $row['id'];
    setcookie('id', $id);
    echo "$id</td></tr>";
    echo "<tr<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Company:</td><td>";
    $company = $row['company'];
    setcookie('company', $company);
    echo "$company</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Location:</td><td>";
    $location = $row['location'];
    setcookie('location', $location);
    echo "$location</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Purchase Date:</td><td>";
    $purchase_date = $row['purchase_date'];
    setcookie('purchase_date', $purchase_date);
    echo "$purchase_date</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Purchase Order:</td><td>";
    $purchase_order = $row['purchase_order'];
    setcookie('purchase_order', $purchase_order);
    echo "$purchase_order</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Value:</td><td>";
    $value = $row['value'];
    setcookie('value', $value);
    echo "$value</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Type:</td><td>";
    $type = $row['type'];
    setcookie('type', $type);
    echo "$type</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Notes:</td><td>";
    $notes = $row['notes'];
    setcookie('notes', $notes);
    echo "$notes</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Manufacturer:</td><td>";
    $manufacturer = $row['manufacturer'];
    setcookie('manufacturer', $manufacturer);
    echo "$manufacturer</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Model / Description:</td><td>";
    $model = $row['model'];
    setcookie('model', $model);
    echo "$model</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Serial Number / Service Tag:</td><td>";
    $serial_number = $row['serial_number'];
    setcookie('serial_number', $serial_number);
    echo "$serial_number</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Express Service Code:</td><td>";
    $esc = $row['esc'];
    setcookie('esc', $esc);
    echo "$esc</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>User:</td><td>";
    $user = $row['user'];
    setcookie('user', $user);
    echo "$user</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Previous User:</td><td>";
    $prev_user = $row['prev_user'];
    setcookie('prev_user', $prev_user);
    echo "$prev_user</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Warranty:</td><td>";
    $warranty = $row['warranty'];
    setcookie('warranty', $warranty);
    echo "$warranty</td></tr>";
}

break;


case "Laptop":
$sql = "
SELECT asset.id
,asset.company
,asset.location
,asset.purchase_date
,asset.purchase_order
,asset.value
,asset.type
,asset.notes
,laptop.manufacturer
,laptop.model
,laptop.serial_number
,laptop.esc
,laptop.user
,laptop.prev_user
,laptop.warranty
FROM asset
LEFT JOIN laptop
    ON laptop.id = asset.id
WHERE asset.id = $id
";
$result = mysql_query($sql);
while($row = mysql_fetch_assoc($result))
{
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Asset ID:</td><td>";
    $id = $row['id'];
    setcookie('id', $id);
    echo "$id</td></tr>";
    echo "<tr<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Company:</td><td>";
    $company = $row['company'];
    setcookie('company', $company);
    echo "$company</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Location:</td><td>";
    $location = $row['location'];
    setcookie('location', $location);
    echo "$location</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Purchase Date:</td><td>";
    $purchase_date = $row['purchase_date'];
    setcookie('purchase_date', $purchase_date);
    echo "$purchase_date</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Purchase Order:</td><td>";
    $purchase_order = $row['purchase_order'];
    setcookie('purchase_order', $purchase_order);
    echo "$purchase_order</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Value:</td><td>";
    $value = $row['value'];
    setcookie('value', $value);
    echo "$value</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Type:</td><td>";
    $type = $row['type'];
    setcookie('type', $type);
    echo "$type</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Notes:</td><td>";
    $notes = $row['notes'];
    setcookie('notes', $notes);
    echo "$notes</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Manufacturer:</td><td>";
    $manufacturer = $row['manufacturer'];
    setcookie('manufacturer', $manufacturer);
    echo "$manufacturer</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Model / Description:</td><td>";
    $model = $row['model'];
    setcookie('model', $model);
    echo "$model</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Serial Number / Service Tag:</td><td>";
    $serial_number = $row['serial_number'];
    setcookie('serial_number', $serial_number);
    echo "$serial_number</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Express Service Code:</td><td>";
    $esc = $row['esc'];
    setcookie('esc', $esc);
    echo "$esc</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>User:</td><td>";
    $user = $row['user'];
    setcookie('user', $user);
    echo "$user</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Previous User:</td><td>";
    $prev_user = $row['prev_user'];
    setcookie('prev_user', $prev_user);
    echo "$prev_user</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Warranty:</td><td>";
    $warranty = $row['warranty'];
    setcookie('warranty', $warranty);
    echo "$warranty</td></tr>";
}

        break;  
case "Desktop":
$sql = "
SELECT asset.id
,asset.company
,asset.location
,asset.purchase_date
,asset.purchase_order
,asset.value
,asset.type
,asset.notes
,desktop.manufacturer
,desktop.model
,desktop.serial_number
,desktop.esc
,desktop.user
,desktop.prev_user
,desktop.warranty
FROM asset
LEFT JOIN desktop
    ON desktop.id = asset.id
WHERE asset.id = $id
";
$result = mysql_query($sql);
while($row = mysql_fetch_assoc($result))
{
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Asset ID:</td><td>";
    $id = $row['id'];
    setcookie('id', $id);
    echo "$id</td></tr>";
    echo "<tr<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Company:</td><td>";
    $company = $row['company'];
    setcookie('company', $company);
    echo "$company</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Location:</td><td>";
    $location = $row['location'];
    setcookie('location', $location);
    echo "$location</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Purchase Date:</td><td>";
    $purchase_date = $row['purchase_date'];
    setcookie('purchase_date', $purchase_date);
    echo "$purchase_date</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Purchase Order:</td><td>";
    $purchase_order = $row['purchase_order'];
    setcookie('purchase_order', $purchase_order);
    echo "$purchase_order</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Value:</td><td>";
    $value = $row['value'];
    setcookie('value', $value);
    echo "$value</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Type:</td><td>";
    $type = $row['type'];
    setcookie('type', $type);
    echo "$type</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Notes:</td><td>";
    $notes = $row['notes'];
    setcookie('notes', $notes);
    echo "$notes</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Manufacturer:</td><td>";
    $manufacturer = $row['manufacturer'];
    setcookie('manufacturer', $manufacturer);
    echo "$manufacturer</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Model / Description:</td><td>";
    $model = $row['model'];
    setcookie('model', $model);
    echo "$model</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Serial Number / Service Tag:</td><td>";
    $serial_number = $row['serial_number'];
    setcookie('serial_number', $serial_number);
    echo "$serial_number</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Express Service Code:</td><td>";
    $esc = $row['esc'];
    setcookie('esc', $esc);
    echo "$esc</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>User:</td><td>";
    $user = $row['user'];
    setcookie('user', $user);
    echo "$user</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Previous User:</td><td>";
    $prev_user = $row['prev_user'];
    setcookie('prev_user', $prev_user);
    echo "$prev_user</td></tr>";
    echo "<tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Warranty:</td><td>";
    $warranty = $row['warranty'];
    setcookie('warranty', $warranty);
    echo "$warranty</td></tr>";
}
        break;  
}

?>
</table>
<br />
<br />
<table width="100%" border="0">
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td><a href="#">Add Software</a></td>
<td><a href="#">Edit Asset</a></td>
<td><a href="#">Delete Asset</a></td>
</tr>
</table>
                        </div>

                        </div>
                </div>
                <div class="clear"></div>
                <div id="footer" align="center">
                    <p>&nbsp;</p>
                </div>
                </div>
                <div id="tagline">

                </div>


</body>
</html>

5 Cevap

Sizin düzeni sonları HTML çıktısı ortasında hakkı "ölmek" çünkü. Komut ölürse Sayfanız irade çıktı sadece "Görünüm varlık" sonra masaya içerik kadar, sonra, tek bir karakter altında orada olup çıktı duracaktır. Eğer bir tablo başlangıç ​​etiketi çıkış olmak ile sonuna kadar değil, kapalı, ne divlere herhangi vücut veya html etiketleri kapalı olacak olacak.

Ayrıca bir kez herhangi bir HTML çıktısı olarak başlamıştır setcookie işlevini kullanamazsınız bulacaksınız.

Tercihen ayrı dosyalar halinde, ya da alternatif PHP kodu dosyaya ve aşağıdaki HTML üstündeki - Ben tamamen PHP mantık ve HTML çıktısını ayıran öneririm. Senin mantık yapın ve sadece uygun değişkenleri gerektiğinde dahil, normal çıktı, sonra ilk önce bütün PHP PHP içinde değişkenleri kaydedin. Böyle bir şey:

<?php
// connect to the database and run your query here
// save results into an array, something like this:
$rows = array();
while($row = mysql_fetch_assoc($result))
{
    // processing with $row here if needed
    $rows[] = $row;
}

//rest of PHP code

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!-- rest of the opening HTML code here -->

<table width="100%" border="0" cellpadding="2">
<?php foreach ( $rows as $row ) : ?>
<tr>
    <td>Addet ID:</td>
    <td><?php echo $row['id'] ?></td>
</tr>
<tr>
...etc
</tr>
<?php endforeach; ?>
</table>

<!-- rest of the closing HTML code here -->

Eğer kodu entegre ve bu şekilde biçimlendirme zaman çok sınırlıdır. Almanız gereken yaklaşım kod, süreç sizin giriş çalıştırın ve daha sonra nasıl bu verileri çıkış bilen bir şablona geçti uygun bir çıkış üretmektir.

Eğer herhangi çıktı, bir değişken önce sonra mysql hatası kontrol edebileceği bir kullanıcı dostu bir hata mesajı varsa mevcut ve çıkış. Hiçbir hata, o zaman veri döngü sonuçlarını görüntülemek için eğer.

Eğer (şablon döngü sonra yeniden diziyi oluşturmak için ilk kümesi döngü vs) sadece bir kez veri döngü istiyorsanız, (bir değişkene mysql sonucu atamak ve bu şekilde işleyebilir yapamazsınız olsa bitirdiniz kadar) db kapatın. Gerçekten bir kurumsal uygulama milisaniye kurtarmaya çalıştığınız sürece o kadar fark yapmak, ya da veri 10s 1000'ler satır yoktur.

Bunu yapmak için tercih ya da yolu, sonra bu gibi durumlarda işlemek için tek yoldur "süreci ilk olarak, daha sonra mevcut" ... Bu size çıktıyı işlemek için nasıl maksimum esneklik sağlar.

Burada acımasızca dürüst olmak için gidiyorum: {[(0)];} PHP gerçekten kötü bir rap olsun budur. Gerçekten, gerçekten PHP ve HTML ayıran içine bakmak gerekir.

Ana sorun şudur:

$id = $_GET["id"] or die(mysql_error());

Hatta bir id verilir değilken durumu idare etmeye çalışmayın; Bu mysql_error söz değil () çağırmak için uygunsuz bir fonksiyonu olacaktır.

Bunun yerine, kimliği ayarlı değil durumu idare etmek için bir kontrol yapısını kullanmak gerekir.


if(!isset($_GET['id'])) {

    $result = mysql_query($sql);

    print '<p>Your search returned ';
    print mysql_num_rows($result);
    print 'results. </p>'; 

}

else {

    print '<p>An id was not supplied.</p>';
}

Sadece kod ile kaymağını, bu kırık düzeltmek isteyebilirsiniz <tr>:

echo "<tr<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>Company:</td><td>";
         ^

Sadece sayfanın ortasında ölemez - sayfanızın eksik ve geçersiz olacaktır. Yapmanız gereken, aksi takdirde içeriği ile tablo, çıkış hata mesajı hata durumunda html ve tabloyu açmadan önce durumu kontrol etmektir. İntihar bir çözüm değildir.