Autor Zpráva
JurkQo1
Profil
Dobrý deň, mám takýto script
<?php

   
   if(isset($_GET['p'])){
   $Page = $_GET['p'];
   }
   else {
   $Page = 1;
   }

    
    //Vyber prispevkov
    $sql = mysql_query("SELECT * FROM prispevky ORDER BY ID DESC limit 48");
    $sql5 = mysql_query("SELECT * FROM komentare");
      $c = 0;

       if($Page == 1){
       $LastP = 6;
       }
       else {
               $LastP = $Page * 6;
       }

      $c9 = 0; 
       $Page2 = $LastP - 5;
     while($data = MySQL_Fetch_Array($sql)):

     $c++;
     
     if ($c >= $Page2 and $c <= $LastP) {
     echo '<article class="prispevok20"><header class="hlavickaprispevku">';
     echo $data['Nadpis'];
     echo '</header>';
     echo '<footer class="prispevokdatum">';
     echo '<aside class="komentare">';
     
     while($data7 = MySQL_Fetch_Array):
     if($data7['IDP'] == $data['ID']){
     $c9++
     
     }
     
     endwhile; 
        if($c9 == 0){
        echo '0 Komentářů';
        }
        else {
         if($c9 == 1){
         echo '1 Komentář';
         }
          else {
           if($c9 == 2){
           echo '2 Komentáře';
           }
            else {
            if($c9 > 2){
            echo  $c9;
            echo  ' Komentáře';
            
            }
            
            }
          }
        }
     
     
    
     
     
     echo '</aside>';
     echo '<aside class="datumcas">Publikováno';
     echo $data['DatumCas'];
     echo '</aside></footer>';
     echo '<aside class="prispevok24">';
     echo $data['Prispevok'];
     echo '</aside></article><br>';
     
    

}
     else
     {          
      
     }
         
   endwhile;
    if($c > 6){
    $stranok3 = $c/6;
    
    $stranok2 = $stranok3.".S";
    $stranok1 = explode(".", $stranok2);

     if($stranok1[1] != "S"){
       $stranok = $stranok1[0] + 1;
     }
     else{
      $stranok = $stranok1[0];
     }

     $i = 0;
     echo '<div class="stranok">';
     while($i < $stranok):
      $i++;
      echo '<a href="index.php?p=';
      echo $i;
      echo '">';
      echo $i;
      echo '</a> ';
     
      endwhile;
    echo '</div>';
    
    }

?>
Akonáhle to uložím tak to zamrzne, chyba je v tom že keď vypisujem komentáre tak je tam while a to pravdepodobne nesmie byť... bez toho while to funguje lenže ja to potrebujem, mohli by ste mi poradiť iné riešenie?
mimochodec
Profil
K čemu je proměnná $sql5? A kde se plní proměnná $data7?
JurkQo1
Profil
<?php

   
   if(isset($_GET['p'])){
   $Page = $_GET['p'];
   }
   else {
   $Page = 1;
   }

    
    //Vyber prispevkov
    $sql = mysql_query("SELECT * FROM prispevky ORDER BY ID DESC limit 48");
    $sql5 = mysql_query("SELECT * FROM komentare");
      $c = 0;

       if($Page == 1){
       $LastP = 6;
       }
       else {
               $LastP = $Page * 6;
       }

      $c9 = 0; 
       $Page2 = $LastP - 5;
     while($data = MySQL_Fetch_Array($sql)):

     $c++;
     
     if ($c >= $Page2 and $c <= $LastP) {
     echo '<article class="prispevok20"><header class="hlavickaprispevku">';
     echo $data['Nadpis'];
     echo '</header>';
     echo '<footer class="prispevokdatum">';
     echo '<aside class="komentare">';
     
     while($data7 = MySQL_Fetch_Array($sql5)):
     if($data7['IDP'] == $data['ID']){
     $c9++
     
     }
     
     endwhile; 
        if($c9 == 0){
        echo '0 Komentářů';
        }
        else {
         if($c9 == 1){
         echo '1 Komentář';
         }
          else {
           if($c9 == 2){
           echo '2 Komentáře';
           }
            else {
            if($c9 > 2){
            echo  $c9;
            echo  ' Komentáře';
            
            }
            
            }
          }
        }
     
     
       

     
     echo '</aside>';
     echo '<aside class="datumcas">Publikováno';
     echo $data['DatumCas'];
     echo '</aside></footer>';
     echo '<aside class="prispevok24">';
     echo $data['Prispevok'];
     echo '</aside></article><br>';
     
    

}
     else
     {          
      
     }
         
   endwhile;
    if($c > 6){
    $stranok3 = $c/6;
    
    $stranok2 = $stranok3.".S";
    $stranok1 = explode(".", $stranok2);

     if($stranok1[1] != "S"){
       $stranok = $stranok1[0] + 1;
     }
     else{
      $stranok = $stranok1[0];
     }

     $i = 0;
     echo '<div class="stranok">';
     while($i < $stranok):
      $i++;
      echo '<a href="index.php?p=';
      echo $i;
      echo '">';
      echo $i;
      echo '</a> ';
     
      endwhile;
    echo '</div>';
    
    }

?>
Malo to byť takto ale aj tak to nič nespraví, dokonca ani príspevok nevypíše
mimochodec
Profil
JurkQo1:
Tvůj styl programování je nad mé chápání. Jestli počet komentářů k článku chceš získat tak, že z databáze vytáhneš všechny komentáře a pak v cyklu ověřuješ, jestli komentář patří k danému článku, v tomto případě inkrementuješ proměnnou, tak věz, že to děláš dost blbě.

Zkus to takhle:

$pocet = mysql_result(mysql_query("SELECT COUNT(*) FROM komentare WHERE IDP=".$idclanku),0);
JurkQo1
Profil
:D aj tak to furt nefunguje vypíše iba 0 komentářu
Script:
<?php

   
   if(isset($_GET['p'])){
   $Page = $_GET['p'];
   }
   else {
   $Page = 1;
   }

    
    //Vyber prispevkov
    $sql = mysql_query("SELECT * FROM prispevky ORDER BY ID DESC limit 48");
    $sql5 = mysql_query("SELECT * FROM komentare");
      $c = 0;

       if($Page == 1){
       $LastP = 6;
       }
       else {
               $LastP = $Page * 6;
       }

      $c9 = 0; 
       $Page2 = $LastP - 5;
     while($data = MySQL_Fetch_Array($sql)):

     $c++;
     
     if ($c >= $Page2 and $c <= $LastP) {
     echo '<article class="prispevok20"><header class="hlavickaprispevku">';
     echo $data['Nadpis'];
     echo '</header>';
     echo '<footer class="prispevokdatum">';
     echo '<aside class="komentare">';
        
     $pocet = mysql_result(mysql_query("SELECT COUNT(*) FROM komentare WHERE IDP=".$data['ID']),0);
        
        if($c9 == 0){
        echo ' 0 Komentářů';
        }
        else {
         if($c9 == 1){
         echo ' 1 Komentář';
         }
          else {
           if($c9 == 2){
           echo ' 2 Komentáře';
           }
            else {
            if($c9 > 2){
            echo ' ';
            echo  $c9;
            echo  ' Komentáře';
            
            }
            
            }
          }
        }
     
     
              

     
     echo '</aside>';
     echo '<aside class="datumcas">Publikováno';
     echo $data['DatumCas'];
     echo '</aside></footer>';
     echo '<aside class="prispevok24">';
     echo $data['Prispevok'];
     echo '</aside></article><br>';
     
    

}
     else
     {          
      
     }
         
   endwhile;
    if($c > 6){
    $stranok3 = $c/6;
    
    $stranok2 = $stranok3.".S";
    $stranok1 = explode(".", $stranok2);

     if($stranok1[1] != "S"){
       $stranok = $stranok1[0] + 1;
     }
     else{
      $stranok = $stranok1[0];
     }

     $i = 0;
     echo '<div class="stranok">';
     while($i < $stranok):
      $i++;
      echo '<a href="index.php?p=';
      echo $i;
      echo '">';
      echo $i;
      echo '</a> ';
     
      endwhile;
    echo '</div>';
    
    }

?>
SeparateSK
Profil
A nie je chyba v tom, že tam nikde nie je mysql_connect?
LaMMa
Profil
jasne, ze to napise 0 komentarov, ked v $c9 mas priradenu 0. Porovnavaj to predsa s $pocet (riadok 39 a dalej v [#5])

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: