Wątek zablokowany 2014-10-17 09:00 przez dzek69.

Sprawdzanie innego rekordu w bazie i na jego podstawie określenie czegoś

0

Mam taki problem mam w bazie pole connection i pole priority i teraz chodzi o to, żeby wyświetlić wszystkie rekordy, które wskazują na rekordy gdzie priority jest równe 0 np. mamy taki rekord

connnection | priority
10 1

To ten wskazuje na rekord o id 10 i jak w tym rekodzie o id równym 10 pole priority będzie równe 0 to ma to wyświetlić

oczywiście może być taka sytuacja, że w polu connection będzie kilka odwołań np. 20,3,4 oddzielone przecinkami to ja w którym z nich będzie chociaż jedno o prority 0 to ma to wyświetlić. Do tej pory na razie napisałem kod, który tylko oczyszcza rekordy gdzie w connection jest 1 wartość i to nie do końca działa.

<!DOCTYPE html>
<head>
<meta charset="UTF-8">
</head>
<?php

polacz_z_baza();

mysql_query("SET NAMES utf8");
require("./crypt.php");




    $i = 0;
    $projekt = mysql_query("select name,description,url,priority,connection,id from projects ");
    print ("<table width=850 aling=center border=1 style=\"border-collapse:collapse\"><tr><td>Id projektu</td><td>Nazwa</td><td>description</td><td>url</td><td>priority</td><td>connection</td></tr>");
    while ($projekt2 = mysql_fetch_array($projekt) ) {
      //if ($projekt2[3] != 0) {
	  $prio = mysql_query("select name,description,url,priority,connection from projects where id = '$projekt2[5]' ");
	  $prio = mysql_fetch_array($prio);
	  if ($prio[3] != 0) continue;
     // }
      $pro[0][$i] = $projekt2[5];
      $pro[1][$i] = $projekt2[0];
      $pro[2][$i] = $projekt2[1];
      $pro[3][$i] = $projekt2[2];
      $pro[4][$i] = $projekt2[3];
      $pro[5][$i] = $projekt2[4];
      $i++;
      //print ("<tr><td>$projekt2[5]</td><td>$projekt2[0]</td><td>$projekt2[1]</td><td>$projekt2[2]</td><td>$projekt2[3]</td><td>$projekt2[4]</td></tr>");
      
    }
    
    //musiałęm jeszcze drugie oczyszczenie zrobić bo pierwsze dokładnie tego nie robiło
    while ($i >= 0) {
    $id = $pro[0][$i];
    $name = $pro[1][$i];
    $desc = $pro[2][$i];
    $url = $pro[3][$i];
    $priority = $pro[4][$i];
    $conn = $pro[5][$i];
     //     if ($pro[4][$i] != 0) {
	    $prio = mysql_query("select name,description,url,priority,connection from projects where id = '$id' ");
	    $prio = mysql_fetch_array($prio);
	    if ($prio[3] != 0) {
	    print "<font color=red>$id</font>";
	    continue;
	  }

	  print ("<tr><td>$id</td><td>$name</td><td>$desc</td><td>$url</td><td>$priority</td><td>$conn</td></tr>");
	  $i--;
    
    
    }

      
   //i teraz też dokładnie nie oczyszcza.   
 

?> 

Może mi pomożecie dokończyć to zadanie.

0

oczywiście może być taka sytuacja, że w polu connection będzie kilka odwołań np. 20,3,4 oddzielone przecinkami

źle zaprojektowana baza danych, skoro chcesz tych wartości używać jako kluczy

1 użytkowników online, w tym zalogowanych: 0, gości: 1