Zoskupenie

Programovacie jazyky, rady, poradňa...
S!4d4k
Novice
Novice
Príspevky: 4
Registrovaný: 19 mar 2006, 18:55

Zoskupenie

Príspevok od používateľa S!4d4k »

zdravim vie mi niekto proadit ako mam urobit zoskupenie? mam udaje v db tabulke napr:

Kód: Vybrať všetko

zakaznik1 kniha1 autor4
zakaznik1 kniha2 autor5
zakaznik1 kniha2 autor8

zakaznik2 kniha3 autor1
zakaznik2 kniha5 autor2
zakaznik2 kniha6 autor3

zakaznik3 kniha8 autor4
zakaznik3 kniha6 autor5
zakaznik3 kniha4 autor6


a chem aby mi to vypisalo takto:

Kód: Vybrať všetko

zakaznik1: 

kniha1 autor4
kniha2 autor5
kniha2 autor8

zakaznik2:   

kniha3 autor1
kniha5 autor2
kniha6 autor3

zakaznik3:
kniha8 autor4
kniha6 autor5
kniha4 autor6

snaizl som sa to spravit ale nejaks a nedarilo vedel by niekto urpavit tento kod?

Kód: Vybrať všetko

<?php
include("db.php");

$sql = mysql_query("SELECT  vypozicky.*, autori.autor, autori.autorID, knihy.knihaID, knihy.autorID, vypozicky.knihaID, vypozicky.autorID, vypozicky.zakaznikID, zakaznici.zakaznikID, zakaznici.zakaznik, knihy.kniha 
FROM vypozicky, autori, zakaznici, knihy WHERE autori.autorID = vypozicky.autorID AND vypozicky.knihaID =  knihy.knihaID AND zakaznici.zakaznikID =  vypozicky.zakaznikID 
 
 
 "); 
$data = mysql_fetch_array($sql);
while ($data = mysql_fetch_array($sql, MYSQL_BOTH)){
$zakaznik = $data["zakaznik"];
$autor.=''.$data["autor"].'<br>';
$kniha.=''.$data["kniha"].'<br>';
           
echo "
<tr> 
<td class='td' style='WIDTH: 150px;'> 	 $zakaznik  </td>
<td class='td' style='WIDTH: 300px;'> 	 $kniha </td>
<td class='td' style='WIDTH: 300px;'> $autor </td>
 
 </tr>
";
}
 ?>            

tento kod mi to zobrazuej takto dalej som sa nedostal :

Obrázok
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

daj normálne export štruktúry db, z toho čo si dal nie je jasné aké sú medzi tabuľkami relácie (dokonca ani neviem aké tabuľky tam máš a z toho query sa mi to nechce spätne budovať). V php máš inač viac chýb
S!4d4k
Novice
Novice
Príspevky: 4
Registrovaný: 19 mar 2006, 18:55

Príspevok od používateľa S!4d4k »

Kód: Vybrať všetko

CREATE TABLE IF NOT EXISTS `autori` (
  `autorID` int(11) NOT NULL auto_increment,
  `autor` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`autorID`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=11 ;

INSERT INTO `autori` (`autorID`, `autor`) VALUES
(1, 'Eva Urbaníková'),
(2, 'Stephenie Meyerová'),
(3, 'Jozef Heriban'),
(4, 'Michael Jackson'),
(5, 'Margaret Mitchellová'),
(6, 'Dan Brown'),
(7, 'Catherine Coulterová'),
(8, 'Patricia Cornwellová'),
(9, 'Louise L. Hayová'),
(10, 'Tracey Coxová');

CREATE TABLE IF NOT EXISTS `knihy` (
  `knihaID` int(11) NOT NULL auto_increment,
  `autorID` int(11) NOT NULL default '0',
  `kniha` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`knihaID`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=13 ;

INSERT INTO `knihy` (`knihaID`, `autorID`, `kniha`) VALUES
(1, 1, 'Všetko alebo nič: Príbeh pokračuje'),
(2, 2, 'Hostitel'),
(3, 1, 'Stalo sa mi všetko'),
(4, 3, 'Posadnutost'),
(5, 4, 'Dancing The Dream'),
(6, 8, 'Kniha mrtvych'),
(7, 6, 'Anjeli a démoni'),
(8, 7, 'Sila nehy'),
(9, 5, 'Odviate vetrom'),
(10, 2, 'Súmrak'),
(11, 9, 'Láska sa rodí v tebe'),
(12, 10, 'Vášnivá láska');

CREATE TABLE IF NOT EXISTS `vypozicky` (
  `ID` int(11) NOT NULL auto_increment,
  `knihaID` int(11) NOT NULL default '0',
  `autorID` int(11) NOT NULL default '0',
  `zakaznikID` int(11) NOT NULL default '0',
  `kniha` varchar(255) NOT NULL default '',
  `autor` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`ID`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;

INSERT INTO `vypozicky` (`ID`, `knihaID`, `autorID`, `zakaznikID`, `kniha`, `autor`) VALUES
(1, 3, 1, 5, 'Stalo sa mi všetko', 'Eva Urbaníková'),
(2, 9, 5, 4, 'Odviate vetrom', 'Margaret Mitchellová'),
(3, 7, 6, 8, 'Anjeli a démoni', 'Dan Brown'),
(4, 5, 4, 9, 'Dancing The Dream', 'Michael Jackson'),
(5, 12, 10, 7, 'Vášnivá láska', 'Tracey Coxová');

CREATE TABLE IF NOT EXISTS `zakaznici` (
  `zakaznikID` int(11) NOT NULL auto_increment,
  `zakaznik` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`zakaznikID`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=13 ;

INSERT INTO `zakaznici` (`zakaznikID`, `zakaznik`) VALUES
(1, 'Zakaznik Peter'),
(2, 'Zakaznik Marek'),
(3, 'Zakaznik Jozef'),
(4, 'Zakaznik Miroslav'),
(5, 'Zakaznik Tomáš'),
(6, 'Zakaznik Radovan'),
(7, 'Zakaznik Lukáš'),
(8, 'Zakaznik Marián'),
(9, 'Zakaznik Ivan'),
(10, 'Zakaznik Patrik'),
(11, 'Zakaznik Andrej'),
(12, 'Zakaznik Erik');
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

Kód: Vybrať všetko

<?php
include("db.php");

$sql = mysql_query("SELECT  vypozicky.*, autori.autor, autori.autorID, knihy.knihaID, knihy.autorID, vypozicky.knihaID, vypozicky.autorID, vypozicky.zakaznikID, zakaznici.zakaznikID, zakaznici.zakaznik, knihy.kniha
FROM vypozicky, autori, zakaznici, knihy WHERE autori.autorID = vypozicky.autorID AND vypozicky.knihaID =  knihy.knihaID AND zakaznici.zakaznikID =  vypozicky.zakaznikID
 
 
 ");

echo "<table border=1>";
while ($data = mysql_fetch_array($sql)){
$zakaznik = $data["zakaznik"];
$autor.=''.$data["autor"].'<br>';
$kniha.=''.$data["kniha"].'<br>';
           
echo "
<tr valign=top >
<td class='td' style='WIDTH: 150px;'>     $zakaznik  </td>
<td class='td' style='WIDTH: 300px;'>     $kniha </td>
<td class='td' style='WIDTH: 300px;'> $autor </td>
 
 </tr>
";
}
echo "</table>";
 ?>  
S!4d4k
Novice
Novice
Príspevky: 4
Registrovaný: 19 mar 2006, 18:55

Príspevok od používateľa S!4d4k »

hm stale to zobrazuje rovnako nie tak ako chcem
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

Kód: Vybrať všetko

<?php
include("db.php");

$sql = mysql_query("SELECT  vypozicky.*, autori.autor, autori.autorID, knihy.knihaID, knihy.autorID, vypozicky.knihaID, vypozicky.autorID, vypozicky.zakaznikID, zakaznici.zakaznikID, zakaznici.zakaznik, knihy.kniha
FROM vypozicky, autori, zakaznici, knihy WHERE autori.autorID = vypozicky.autorID AND vypozicky.knihaID =  knihy.knihaID AND zakaznici.zakaznikID =  vypozicky.zakaznikID
 
 
 ");

echo "<table border=1>";
$temp = "";
while ($data = mysql_fetch_array($sql)){
$zakaznik = $data["zakaznik"];
$autor.=''.$data["autor"].'<br>';
$kniha.=''.$data["kniha"].'<br>';
echo "<tr valign=top >";
if($temp != $zakaznik){
	$temp = $zakaznik;
	echo "<tr><td class='td' style='WIDTH: 150px;' colspan=2 >     $zakaznik  </td></tr>";
} 
echo "<tr>
<td class='td' style='WIDTH: 300px;'>     $kniha </td>
<td class='td' style='WIDTH: 300px;'> $autor </td>
 
 </tr>
";
}
echo "</table>"; 

?>
S!4d4k
Novice
Novice
Príspevky: 4
Registrovaný: 19 mar 2006, 18:55

Príspevok od používateľa S!4d4k »

dakujem to uz ide.. a este jedna vec da sa do tohto scriptu na vyhladavanie zakomponovat tento tvoj script ? z emi pri vysledku vyhladavania... vedla uziavatela vypise ake ma knihy pozicane?

Kód: Vybrať všetko

<?php
                
              include("db.php");
if(isset($_GET[retazec])){
    if(empty($_GET[retazec])){
        $retazec = FALSE;
        $error = "Nezadali ste reťazec pre vyhľadávanie!<br />";
    } else {
        $retazec = $_GET[retazec];
    }
if($retazec){
    
            echo "<H2> Výsledky vyhľadávania <strong>$retazec</strong>! </H2><br />";
            $retazec = explode(" ",$retazec);
            $sql = "SELECT * FROM zakaznici WHERE zakaznici.zakaznik LIKE '%".$retazec[0]."%'";
            for ($num=1;$num<count($hladaj);$num++) {
                $sql .= "$sql AND $podla LIKE '%".$hladaj[$num]."%'";
            }
            $sql = "$sql ORDER BY zakaznikID DESC";
            $vysledok = mysql_query($sql);
            $pocet = mysql_num_rows($vysledok);
            if($pocet == NULL){
                die("Zadaný reťazec sa v databáze nenachádza!<br />n");
            }
            while($zaznam = mysql_fetch_object($vysledok)){
                $zakaznik = $zaznam->zakaznik;
                echo "$zakaznik <br />";
            }
            unset($zakaznikID);
            echo "<hr />Výsledkov: <strong>$pocet</strong> | <a href='javascript:history.back()' title='Späť'>Späť</a><br />";
        } else {
            echo $error;
        }
    }   ?>
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

takýmto "lebo štýlom" (cháp skladaním náhodných kodov čo niekde nájdeš) nikdy nič nenaprogramuješ. Vôbec sa mi to ani nechce študovať, mal si na začiatku napísať všetko čo chceš. A vyhladávanie sa robí cez fulltext a match, nie cez nejaké like
Napísať odpoveď