Autor Zpráva
mjaus
Profil
Zdravim.

Robim vypis z mysql databaze kde su dve tabulky. Jedna popisuje produkt a druha objednavacie kody pre popisany produkt avsak jeden produkt moze mat 5-15 (alebo n) objednavacich kodov.

Vypis z prvej:
$dotaz="SELECT * FROM consum"; 
$vysledek = MySQL_Query($dotaz); 
while ($zaznam = MySQL_Fetch_Array($vysledek)){
echo "<h3>".$zaznam['nazov']."</h3>";
echo "<p><strong>".$zaznam['popis_short']."</strong></p>";
echo "<div class='col_right'><p>".$zaznam['popis_long']."</p>";
$bal = $zaznam['nazov'];

do premennej $bal som ulozil aj nazov produktu. Vypis druhej tabulky je pomocou nazvu produktu:

$dotaz1="SELECT * FROM consum_mma,consum WHERE consum_mma.nazov_mma='$bal'"; 
$vysledek1 = MySQL_Query($dotaz1); 
while ($zaznam1 = MySQL_Fetch_Array($vysledek1)){ 
echo "<table>;
echo "<tr>";
echo "<td>".$zaznam1['wcode']."</td>";    
echo "<td>".$zaznam1['priemer']."</td>";
echo "</tr>";
echo "</table>";
};

no a este nakoniec uzavriet vypis prvej. resp. nacitat dalsi produkt: };

Vsetko funguje. Do prvej sa nacita a vypise NAZOV, POPIS1 a POPIS2 produktu. Pod to sa hned nacitaju k danemu produktu WCODE aj PRIEMER. Vsetko ako by malo byt. Avsak problem je tento:

Zaznamov v tabulke produktov su 3 (takze sa vypisu tri produkty). Zaznamov v tabulke kodov je:
pre 1 produkt 12
pre 2 produkt 3
pre 3 produkt 0
avsak tabulka kodov sa vypise sice spravne pre kazdy produkt tie kdy ktore maju no je ich 3x viac. Opakuju sa tolko krat kolko je produktov takze pre jeden produkt sa mi opakuje jeden kod 3x....

k nahliadnutiu: http://www.klinker.sk/Cemont_My/index.php?p=materialy/elektrody

prikladam cely kod bez require:
<div class="content_listes">

<?
require('***');

$dotaz="SELECT * FROM consum"; 
//vytvoření sql dotazu
$vysledek = MySQL_Query($dotaz); // provedení sql dotazu 
while ($zaznam = MySQL_Fetch_Array($vysledek)){

//vytvoření premennych pre data z tabulky
echo "<div class='mod_liste'>";

echo "<h3>".$zaznam['nazov']."</h3>";
echo "<p><strong>".$zaznam['popis_short']."</strong></p>";
echo "<div class='col_left'><img id='left' src='photo/sortiment/".$zaznam['wcode'].".jpg' alt='".$zaznam['nazov']."' width='146px' /></div>";
echo "<div class='col_right'><p>".$zaznam['popis_long']."</p>";
$bal = $zaznam['nazov'];

// tabulka
echo "<table width='95%'><thead><tr>";
echo "<th scope='col'>Špecifikácia</th>";
echo "<th scope='col'></th>";    
echo "</tr></thead><tr>";
    echo "<td>Typ obalu</td>";    
    echo "<td>".$zaznam['obal']."</td>";
echo "</tr><tr class='odd'>";
    echo "<td>Pevnosť v ťahu:</td>";    
    echo "<td>".$zaznam['tah']." MPa</td>";
echo "</tr><tr>";
    echo "<td>Medza klzu:</td>";    
    echo "<td>".$zaznam['klz']." MPa</td>";    
echo "</tr><tr class='odd'>";
    echo "<td>Predĺženie A 5:</td>";    
    echo "<td>".$zaznam['predlz']." %</td>";    
echo "</tr><tr>";
    echo "<td>Nárazová práca V pri ".$zaznam['teplota1']." °C:</td>";    
    echo "<td>".$zaznam['praca1']." J</td>";    
echo "</tr><tr class='odd'>";
    echo "<td>Nárazová práca V pri ".$zaznam['teplota2']." °C:</td>";    
    echo "<td>".$zaznam['praca2']." J</td>";    
echo "</tr></table>";

echo "</br>";
echo "Objednávacie kódy:</br>";

echo "Bal: ".$bal;

// tabulka2
echo "<table width='95%'><thead><tr>";
echo "<th scope='col'>Obj. kód</th>";
echo "<th scope='col'>Priemer (mm)</th>";
echo "<th scope='col'>Dĺžka (mm)</th>";
echo "<th scope='col'>Hmotnosť (kg/1000ks)</th>";
echo "<th scope='col'>Balík (ks)</th>";
echo "<th scope='col'>Kartón (ks)</th>";    
echo "</tr></thead>";


$dotaz1="SELECT * FROM consum_mma,consum WHERE consum_mma.nazov_mma='$bal'"; 
$vysledek1 = MySQL_Query($dotaz1); // provedení sql dotazu 
while ($zaznam1 = MySQL_Fetch_Array($vysledek1)){ 

echo "<tr style='border-bottom: 1px solid white'>";
    echo "<td>".$zaznam1['wcode']."</td>";    
    echo "<td>".$zaznam1['priemer']."</td>";
    echo "<td>".$zaznam1['dlzka']."</td>";
    echo "<td>".$zaznam1['hmotnost']."</td>";
    echo "<td>".$zaznam1['balik']."</td>";
    echo "<td>".$zaznam1['karton']."</td>";
echo "</tr>";

};

echo "</table>";

echo "</div>";
// echo "<div id="clear"></div>";

echo "</div>";
};

//nacita pocet zaznamov tabulke
$num_rows = mysql_num_rows($vysledek);
//vypis premennych
echo "Počet záznamov: ". $num_rows;
?>

</div>
Kajman
Profil
Do $dotaz1 nedávejte consum bez spojovací podmínky.

Jinak se to dá vytahovat z databáze i méně dotazy, viz.
http://php.vrana.cz/srovnani-dotazu-do-zavislych-tabulek.php
mjaus
Profil
Kajman:

Dakujem moc uz to bezi ako ma.... Mali ste pravdu. Niekedy menej je viac. Ja som bol uz beznadejny...

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: