1 (edited by mortana 2012-11-09 23:34:41)

Topic: Skirtingas duomenu gavimas

Labas vakaras,

Nesu pažengęs šioje srityje, tiesiog kuriu tinklapį koreguodamas "script"us.
Klausimas:
Pagal apačioje esantį kodą gaunu informaciją pagal įvestą kategoriją, o kaip padaryti jei užklausoje nėra nurodyta katalogas ir rodytų visą paskutinę informaciją?

<?php include("includes/header.php"); ?>
        
<div id="katalogas">
<div id="katleft">
    <div id="navigacija"><p><a href="index.php">Namai</a> > <a href="katalogas.php?cat=kita">Katalogas</a></p></div>
        <div id="prekeCNT">    

<?php
require 'db.inc.php';

$db = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD) or
    die ('Unable to connect. Check your connection parameters.');

mysql_select_db(MYSQL_DB, $db) or die(mysql_error($db));

//
// Category
//
    
    $get = (isset($_GET['cat'])) ? $_GET['cat'] : '' ;
    
    // Count the matches
    $result = mysql_query("SELECT COUNT(*) as count FROM articles a JOIN users WHERE kategorija = '$get'")
    or die("Error fetching number in DB<br>".mysql_error());
    $row = mysql_fetch_array($result);
    $numofrows = $row['count'];
    
    // Fetch results
    $query = "SELECT
                *
            FROM    
                articles 
            WHERE
                kategorija = '$get' 
            ORDER BY
                article_id DESC ";
    $result = mysql_query($query);
    $numrows = @mysql_num_rows($result);
        
        
    if (empty($get)){
    die("<h2>Pasirinkite prekę:<br>
    <a href=\"apzvalga.php?item=tk-103b\">TK-103b</a>
    </h2>");
    }
    // If there are results, show them
    if (!$numrows == ""){
    while($row = mysql_fetch_array($result)){
    
    $article_id =     $row['article_id'];
    $title =         $row['title'];
    $kodas =         $row['kodas'];
    $kaina =         $row['kaina'];
    
    echo "<div id=\"prekeTHMB\">
        <div id=\"prekesIMG\"><a href=\"shop.php?item=$kodas\"><img src=\"images/items/$kodas.png\"></a></div>
        <p><a href=\"shop.php?item=$kodas\">$title</a></p>
        <div id=\"prekeTHMBbottom\">
        <b>$kaina LT </b>
        <a href=\"shop.php?item=$kodas\">
        <img src=\"../images/placiau.png\"; onmouseover=\" src='images/placiau2.png';\" 
        onmouseout=\"src='images/placiau.png';\"  alt=\"Placiau\" /></a>
        </div></div>";
    echo "";
    
    }
    }
    
    // If there are no results..
    else{
    echo "<p>There are no items in this category yet.</p>";
    }
    
    // Closes the connection
    mysql_close();
    
    
    ?>


<?php

$db = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD) or
    die ('Unable to connect. Check your connection parameters.');

mysql_select_db(MYSQL_DB, $db) or die(mysql_error($db));


$query = "SELECT * FROM articles WHERE kategorija='Kita'";
$result = mysql_query($query);
$Kita = mysql_num_rows($result);

$counts = array();

        echo '</div>
    </div>
    <div id="katright">
        <div id="kategorijos"><h1>Kategorijos</h1>
        <ul>        
            <li><a href="katalogas.php?cat=Kita" style="color:rgb(49, 49, 49);">Kita (' . $Kita . ')</a></li>

        </ul>
        </div>
        <div id="objectasd"></div>
    </div>

</div>';
?>

Re: Skirtingas duomenu gavimas

mortana wrote:

o kaip padaryti jei užklausoje nėra nurodyta katalogas ir rodytų visą paskutinę informaciją?

Kas ta paskutinė informacija?

Tai dayk kažkokią IF salyką, kur patikrini ar kažkas nurodyta ar ne. Ir vienu atveju rodai kažką pagal parametrus, kitu atveju ar kitokia užklausa ar dar kažkas.

Re: Skirtingas duomenu gavimas

Pakutine informacija, tai paskutiniai straipsniai is visu ketegoriju.
As bandziau i IF salyga:

    if (empty($get)){
    die("<h2>Pasirinkite prekę:<br>
    <a href=\"apzvalga.php?item=tk-103b\">TK-103b</a>
    </h2>");
    }

Ideti kazka panasaus i sita koda:

$limit = 4;

    $sql = 'SELECT
            article_id
        FROM
            articles
        WHERE
            is_published = TRUE
        ORDER BY
            publish_date DESC
        LIMIT 
        '.$limit .' ';
$result = mysql_query($sql, $db);

if (mysql_num_rows($result) == 0) {
        echo ' <p><strong> Nera staipsniu. </strong></p> ';
    } else {
        while ($row = mysql_fetch_array($result)) {
    output_story($db, $row['article_id'], TRUE);
    }
}
mysql_free_result($result);

Bet pjaunasi tarpusavi kiti kodai

Re: Skirtingas duomenu gavimas

mortana wrote:

Bet pjaunasi tarpusavi kiti kodai

Na tai toks jau tas programavimas - kuo toliau į mišką tuo daugiau medžių. Reikia mokytis truputį tobulinti programos struktūrą, kad tokie dalykai būtų išspręsti. Reikia išskaidyti kodą į dalis, kur HTML šablonai, kur kokie pasikartojantys gabalai, kuriuos galima iškelti pradžiai į atskiras funkcijas (vėliau į klases). Pasidaryti taip, kad visa kontrolė eitų per vieną failą (index.php) ir t.t. ir pan. čia ilga pasaka. Ne forumo žinutės lygio. Jeigu aš tau pasakysiu kaip padaryt iš tikro gerai, tu tikriausiai vistiek nesuprasi.