Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jportal]galeria z liczba plikow
Forum PHP.pl > Forum > Gotowe rozwiązania
trucksweb
czy ktos moze napisac mi zapytanie do bazdy danych o ilosc plikow. chodzi o to ze chcialem dodac link na stronie glownej do galerii, ale tak aby za linkiem pojawiala sie aktualna liczba zdjec w odpowiednim dziale. Czy mozna cos takiego zrobic?questionmark.gif? :arrow:
oto struktura skryptu tworzacego odpowiednie tabele w bazie:
Cytat
# Struktura tabeli dla 'galery_a'
#

CREATE TABLE galery_a (
  id int(8) NOT NULL auto_increment,
  title varchar(64) NOT NULL,
  text text NOT NULL,
  date datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
  author varchar(32) NOT NULL,
  PRIMARY KEY (id)
);

#
# Zawartosc tabeli 'galery_a'
#

INSERT INTO galery_a VALUES ( '1', 'American Trucks', '', '2004-03-08 17:01:46', 'admin');
INSERT INTO galery_a VALUES ( '2', 'Samochody europejskie', '', '2004-03-08 17:02:12', 'admin');

# --------------------------------------------------------
#
# Struktura tabeli dla 'galery_b'
#

CREATE TABLE galery_b (
  id int(32) NOT NULL auto_increment,
  cat varchar(32) NOT NULL,
  title varchar(64) NOT NULL,
  date datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
  name varchar(16) DEFAULT '0' NOT NULL,
  size varchar(32) NOT NULL,
  PRIMARY KEY (id)
);

#
# Zawartosc tabeli 'galery_b'
#
Majdan
[sql:1:d78bd0263c]select count(*) from galery_a;[/sql:1:d78bd0263c]
[sql:1:d78bd0263c]select count(*) from galery_b;[/sql:1:d78bd0263c]
Zwróci ilość wszystkich wierszy w bazie galery_a, albo galery_b.
trucksweb
to jest tresc pliki galery.aim.php


[php:1:92d9387af5]<?php
Cytat
<?


function module_start($cmd) {



if($cmd=='add_now') {
add_row();
}
}

function module_main($cmd) {

global $gbook_limit, $page;

if($cmd=='') {

main_title_open();
echo 'Galeria';
main_title_close();
main_text_open();
list_cat();
main_text_close();

}  


if($cmd<>'') {

main_title_open();
echo 'Galeria';
main_title_close();
main_text_open();
echo '<br>';
show_minis($cmd, $page);
main_text_close();

}  

}

function module_info($co) {

if($co=='title')
return 'galeria';

}


function module_type() {
return 'normal';
}

?>
<?

function list_cat() {

global $PHP_SELF, $op;

if(!function_exists(gal_inc)) include('module/galery.inc.php');

$query = "SELECT * FROM $gal_a_tbl ORDER BY title";
$result = mysql_query($query);
$ile = mysql_num_rows($result);

echo '<br>';

while($r = mysql_fetch_array($result)) {

$id = $r['id'];
$title = $r['title'];
$text = $r['text'];

$text = stripslashes($text);
$title = stripslashes($title);
$text = make_clickable($text);

$title = '<a href="module.php?op='.$op.'&cmd='.$id.'" class="t_list">'.$title.'</a></b>';


$qu = "SELECT * FROM $gal_b_tbl WHERE cat='$id'";
$re = mysql_query($qu);
$ile = mysql_num_rows($re);

$others = 'obrazów: <b>'.$ile.'</b>';

list_open();
list_body_open($title, $text, $others);
list_close();
}
}


function show_minis($cat, $page) {

global $art_tbl, $PHP_SELF, $arts, $op;

if(!function_exists(gal_inc)) include('module/galery.inc.php');

$query = "SELECT * FROM $gal_b_tbl WHERE cat='$cat' ORDER BY date DESC";
$result = mysql_query($query);
$ile = mysql_num_rows($result);


if($ile==0) echo '<center>Nie znaleziono żadnych obrazów w tej kategorii</center><br>';
else {

if($ile<>0) {
$znk = $page * $gal_limit;
mysql_data_seek($result, $znk);  
}

$aaa = 0;
$cols = 0;

echo '<table width="100%" cellpadding="1" cellspacing="1" border="0">
<tr>';

while($r = mysql_fetch_array($result)) {

$id = $r['id'];
$name = $r['name'];
$size = $r['size'];

if($cols==$gal_cols) {
$cols = 0;
echo '</tr>
<tr>';
}

echo '<td align="center" class="uni_02"><a href="uploads/galery/'.$id.'.'.$name.'" target="_blank"><img src="uploads/galery/m'.$id.'.'.$name.'" border="0"></a><br>
['.$size.'kB]</td>';


$aaa++;
$cols++;
if($aaa==$gal_limit) break;
}

echo '</tr>
</table>';

echo '<br><center>';
$ile = mysql_num_rows($result);
if($ile<>0) {
$arts= $ile;
$ile = $ile / $gal_limit;
$ile = ceil($ile);

$bbb = 0;
while($bbb<>$ile) {

$ccc = $bbb + 1;
if($page==$bbb) {
echo '[<b>'.$ccc.'</b>] ';
} else {
echo '[<a href="module.php?op='.$op.'&page='.$bbb.'&cmd='.$cat.'">'.$ccc.'</a>] ';
}

$bbb++;
}
} else {
echo '[<b>1</b>] ';
}
}
}

?>

?>[/php:1:92d9387af5]


a to plik galery.inc
[php:1:92d9387af5]<?php
Cytat
<?

if(!function_exists(gal_inc)) {
function gal_inc() {}
}


$gal_a_tbl = 'galery_a';
$gal_b_tbl = 'galery_b';

$gal_cols = '4';
$gal_limit = '4';

?>
[php:92d9387af5]<?php
?>[/php:92d9387af5]
?>[/php:1:92d9387af5]
Majdan
Spróbuj tak:
[php:1:f3fbe95880]<?php
$query1 = "select count(*) from galery_a";
$result1 = mysql_query($query1);
if(!$result1) echo "Błąd!";

$query_data1 = mysql_fetch_row($result1);
$total_num1 = $query_data1[0];
if(!$total_num1) echo "Błąd!";

$query2 = "select count(*) from galery_b";
$result2 = mysql_query($query2);
if(!$result2) echo "Błąd!";

$query_data2 = mysql_fetch_row($result2);
$total_num2 = $query_data2[0];
if(!$total_num2) echo "Błąd!";

echo "Ilość zdjęć w tabeli from galery_a wynosi " .$total_num1;
echo "<br>";
echo "Ilość zdjęć w tabeli from galery_b wynosi " .$total_num2;
?>[/php:1:f3fbe95880]
Majdan
Cały skrypt, po zmiankach będzie wyglądał tak:

[php:1:350265748b]<?php
$tabela1 = "galery_a";
$tabela2 = "galery_b";

$query1 = "select count(*) from " . $tabela1;
$result1 = @mysql_query($query1);
if(!$result1) echo "Wystąpił błąd! Nie można pobrać danych z bazy " . $tabela1 .
".<br>";

$query_data1 = @mysql_fetch_row($result1);
$total_num1 = $query_data1[0];
if(!$total_num1) echo "Wystąpił błąd! Nie można wyświetlić danych z bazy" . $tabela1
. ".<br>";


$query2 = "select count(*) from " . $tabela2;
$result2 = @mysql_query($query2);
if(!$result2) echo "Wystąpił błąd! Nie można pobrać danych z bazy " . $tabela2 .
".<br>";

$query_data2 = @mysql_fetch_row($result2);
$total_num2 = $query_data2[0];
if(!$total_num2) echo "Wystąpił błąd! Nie można wyświetlić danych z bazy" . $tabela1
. ".<br>";

if (isset($total_num1 && $total_num2) {
echo "Ilość zdjęć w tabeli " . $tabela1 . " wynosi " .$total_num1;
echo "<br>";
echo "Ilość zdjęć w tabeli " . $tabela2 . " wynosi " .$total_num2;
}
?>[/php:1:350265748b]
Majdan
Oczywiście zakładam, że masz połączenie z bazą.
Jak nie to daj to na początku skryptu:
[php:1:c53b89598b]<?php
$host = "";
$user = "";
$haslo = "";
$baza_danych = "";
if (!$id = @mysql_connect($host, $user, $haslo)) echo "<br>Wystąpił błąd! Nie udało połączyć się z serwerem MySQL.";
if (!@mysql_select_db($baza_danych, $id)) echo "<br>Wystąpił błąd! Nie udało wybrać bazy danych.";
?>[/php:1:c53b89598b]
trucksweb
srdeczne dzieki za napisanie skryptu. !!!!!! :arrow: ohmy.gif laugh.gif tongue.gif smile.gif biggrin.gif :wink:
Majdan
Nie ma za co :!: 8)
trucksweb
plik galery.adm.php administaracja galeria


[ Zmoderowano: to nie jest smietnik - tak duże listingi prosże dawać jako linki do zassania (zip) - scanner ]
Majdan
Przerobiłem mój skrypt według zaleceń: :wink:
[php:1:2e113c554a]<?php
$tabela = "galery_b";

$query1 = "select count(*) from " . $tabela . " where cat=1";
$result1 = @mysql_query($query1);
if(!$result1) echo "Wystąpił błąd! Nie można pobrać danych z tabeli " . $tabela .
" o kategorii 1.<br>";

$query_data1 = @mysql_fetch_row($result1);
$total_num1 = $query_data1[0];
if(!$total_num1) echo "Wystąpił błąd! Nie można wyświetlić danych z tabeli " . $tabela
. " o kategorii 1.<br>";


$query2 = "select count(*) from " . $tabela . " where cat=2";
$result2 = @mysql_query($query2);
if(!$result2) echo "Wystąpił błąd! Nie można pobrać danych z tabeli " . $tabela .
" o kategorii 2.<br>";

$query_data2 = @mysql_fetch_row($result2);
$total_num2 = $query_data2[0];
if(!$total_num2) echo "Wystąpił błąd! Nie można wyświetlić danych z tabeli " . $tabela . " o kategorii 2.<br>";

if (isset($total_num1 && $total_num2) {
$total_num_all = $total_num1 + $total_num2;
echo "Ilość zdjęć w tabeli " . $tabela . " wynosi " . $total_num_all . ".";
echo "<br>";
echo "Ilość zdjęć kategorii 1 wynosi " .$total_num1 . ".";
echo "<br>";
echo "Ilość zdjęć kategorii 2 wynosi " .$total_num2 . ".";
}
?>[/php:1:2e113c554a]
trucksweb
Dzieki serdecznie za napisanie skryptu !!!! :arrow: biggrin.gif smile.gif ohmy.gif 8) laugh.gif :wink: tongue.gif :arrow: :arrow:
Majdan
Jescze raz nie ma za co :!: Wkońcu po to tu jestem. 8)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.