Numar repetari in coloana tabel mysql

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
Cristina
Mesaje:9

Numar repetari in coloana tabel mysql

Va multumesc mult pt raspunsuri. Am rezolvat problema in sfarsit.
Mai am o singura problema la care m-am chinuit zile in sir si degeaba.
Pe prima pagina se afiseaza toate categoriile de masini.
O parte din cod:

Cod: Selectaţi tot

foreach ($cat_array as $row)
  {
    $url = 'car_category_list.php?catid='.($row['catid']);    //face trimitere la pagina cu masinile din categorie
    $title = $row['catid'];
    echo '<li>';
    url($url,$title);

    echo '</li>';
  }
cand dau click pe masina care ma intereseaza intru in alta pagina si imi afiseaza masiniile din categoria respectiva si numarul masiniilor din baza de date care fac parte din aceea categorie.

Cod: Selectaţi tot

 $num_cars = mysql_num_rows($result);
Eu as vrea sa mi se afiseze si pe prima pagina la fiecare masina in paranteze cate masini sunt in baza de date din aceea categorie.
Am incercat cu diversi operatori de comparatie pt clauze WHERE.

Aveti o idee ce trebuie sa fac?

MarPlo Mesaje:4343
Depinde cum e structurata baza de date.
De exemplu, daca ai coloana "categorie" in care pe fiecare rand sunt trecute cate un nume de categorie, care se poate repeta, urmatorul exemplu va afisa fiecare categorie cu numarul de repetari in coloana.

Cod: Selectaţi tot

$sql = "SELECT `categorie` FROM `nume_tabel`";
$result= mysql_query($sql) or trigger_error(E_USER_ERROR);

$ar_cat = array(); // Array ce va contine 'categorie' => nr_repetari

if (mysql_num_rows($result) == 0) { echo '0 rezultate'; }
else {
  while ($rand = mysql_fetch_assoc($result)) {
    // Daca exista deja categoria curenta in $ar_cat, incrementeaza valoarea cu 1
    // Altfel, o adauga in $ar_cat cu valoare 1 (prima repetare)
    if(isset($ar_cat[$rand['categorie']])) $ar_cat[$aray[$i]]++;
    else $ar_cat[$rand['categorie']] = 1;
  }
}

// Afiseaza categorile cu nr. de repetari obtinul la fiecare
foreach($ar_cat as $k=>$v) {
  echo "<br /> $k ($v)";
}
- E un exemplu prin care, daca intelegi ideea, poate fi aplicata la ce ai tu. Totusi, depinde cum sunt adaugate categoriile in baza de date.

Cristina Mesaje:9
Din pacate nu am reusit :?
Am 2 tabele : cars si categories
In cars se introduc masiniile si in categories este lista toata de masini (111 masini)

in cars am coloanele:isbn, marca , catid, data fabricatie, caroserie, etc

in categories am coloana: catid ; in care am introduse cele 111 masini

-isbn este cheie primara si se autoincrementeaza si imi arata cate masini sunt in total.
-in catid si marca sunt introduse numele masinilor si prin cele 2 coloane am facut legatura intre tabele

Eu am facut codul sa imi arate toate masinile cele 111 in pagina index.php. Eu acum vreau sa imi arate cate masini sunt introduse in coloana cars.
Deci dc cineva introduce o masina Volvo sa arate nr_vechi+1

Cristina Mesaje:9
Am sa pun si codul:

Cod: Selectaţi tot

<?php
require('cars_fns.php') ;
//functii care afiseaza categoriile de masini
function categories1()
{   // query database for a list of categories
   $conn = db_connect();
   $query = ' select catid
              from categories limit 11';
   $result = mysql_query($query);
   if (!$result)
     return false;
   $num_cats = mysql_num_rows($result);
   if ($num_cats ==0)
      return false;

   $result = db_result_to_array($result);
   return $result;
}
function categories2()
{  // query database for a list of categories
   $conn = db_connect();
   $query = ' select catid
              from categories limit 11,11';
   $result = mysql_query($query);
   if (!$result)
     return false;
   $num_cats = mysql_num_rows($result);
   if ($num_cats ==0)
      return false;
     $result = db_result_to_array($result);
   return $result;
}
function categories3()
{  // query database for a list of categories
   $conn = db_connect();
   $query = ' select catid
              from categories limit 22,11';
   $result = mysql_query($query);
   if (!$result)
     return false;
   $num_cats = mysql_num_rows($result);
   if ($num_cats ==0)
      return false;
     $result = db_result_to_array($result);
   return $result;
}
function categories4()
{  // query database for a list of categories
   $conn = db_connect();
   $query = ' select catid
              from categories limit 33,11';
   $result = mysql_query($query);
   if (!$result)
     return false;
   $num_cats = mysql_num_rows($result);
   if ($num_cats ==0)
      return false;
     $result = db_result_to_array($result);
   return $result;
}
function categories5()
{
   // query database for a list of categories
   $conn = db_connect();
   $query = ' select catid
              from categories limit 44,11';
   $result = mysql_query($query);
   if (!$result)
     return false;
   $num_cats = mysql_num_rows($result);
   if ($num_cats ==0)
      return false;
     $result = db_result_to_array($result);
   return $result;
}
function categories6()
{
   // query database for a list of categories
   $conn = db_connect();
   $query = ' select catid
              from categories limit 55,11';
   $result = mysql_query($query);
   if (!$result)
     return false;
   $num_cats = mysql_num_rows($result);
   if ($num_cats ==0)
      return false;
     $result = db_result_to_array($result);
   return $result;
}
function categories7()
{
   // query database for a list of categories
   $conn = db_connect();
   $query = ' select catid
              from categories limit 66,11';
   $result = mysql_query($query);
   if (!$result)
     return false;
   $num_cats = mysql_num_rows($result);
   if ($num_cats ==0)
      return false;
     $result = db_result_to_array($result);
   return $result;
}
function categories8()
{  // query database for a list of categories
   $conn = db_connect();
   $query = ' select catid
              from categories limit 77,11';
   $result = mysql_query($query);
   if (!$result)
     return false;
   $num_cats = mysql_num_rows($result);
   if ($num_cats ==0)
      return false;
     $result = db_result_to_array($result);
   return $result;
}
function categories9()
{  // query database for a list of categories
   $conn = db_connect();
   $query = ' select catid
              from categories limit 88,11';
   $result = mysql_query($query);
   if (!$result)
     return false;
   $num_cats = mysql_num_rows($result);
   if ($num_cats ==0)
      return false;
     $result = db_result_to_array($result);
   return $result;
}
function categories10()
{   // query database for a list of categories
   $conn = db_connect();
   $query = ' select catid
              from categories limit 99,11';
   $result = mysql_query($query);
   if (!$result)
     return false;
   $num_cats = mysql_num_rows($result);
   if ($num_cats ==0)
      return false;
     $result = db_result_to_array($result);
   return $result;
}
function display_categories($cat_array)
{
  if (!is_array($cat_array))
  {
     echo 'No categories currently available<br />';
     return;
  }
  echo '<ul>';
  foreach ($cat_array as $row)
  {
    $url = 'car_category_list.php?catid='.($row['catid']);    //face trimitere la pagina cu masinile din categorie
    $title = $row['catid'];
    echo '<li>';
    url($url,$title);
    echo '</li>';
  }

}

?>

Am pus limit pt a afisa masiniile pe coloane in pagina index.php. Si am 10 coloane

Subiecte similare