2012-03-22 6 views
3

Есть ли способ сравнить строки из двух разных таблиц в php? Например:Сравнение строк mysql, php

 Clothing Item  Price tag 
    Scarf    £5 
    Scarf    £6 
    Scarf    £4 
    Cloth    £10 
    Shoe    £15 

Я в основном хочу сгруппировать различные элементы по их именам. Для каждого другого элемента я хочу чередовать два цвета. Так что, если этот предмет является шарфом, я буду его окрашивать, может быть, синим, потому что следующий предмет также является шарфом, я также буду его окрашивать в синий цвет. После этого, поскольку у меня есть тряпка, она будет окрашена в желтый цвет, а потому, что следующая - это ботинок, она будет окрашена в синий цвет. Я придумал что-то, используя php:

$previous = ""; 
    while ($row = mysql_fetch_array($result)) 
    { 
    if ($row['firstName'] != $previous) { 
    echo "<tr bgcolor = 'blue'>"; 
    } 
    else { 
    echo "<tr bgcolor = 'yellow'>"; 
    } 
    blah blah 
    } 

Когда я это делаю, я не получаю то, что хочу. То, что я получаю от этого, - это первый шарф, желтый, а два других - синий. Тогда, потому что шарф! = Ткань, я получаю желтый, а также потому, что ткань! = Обувь, я становлюсь желтым, а не синим.

Я сразу вижу, в чем проблема, но я не знаю, как это исправить. Пожалуйста помоги. Благодаря

+1

вы не обновляет значение '$ previous' – hjpotter92

+0

Это ничего общего с mysql, действительно, кроме того, что вы получаете данные из базы данных. Это чисто «как я цвет чередующихся строк в таблице». –

+0

@MarcB спасибо, что было полезно для меня -_- – Ester

ответ

2

уследить за текущий цвет в качестве отдельной переменной запуска вне цикла, а затем изменить его, когда элемент в первые изменения имени:

$color = true; 
$previous = ''; 
while ($row = mysql_fetch_array($result)) 
{ 
if ($row['firstName'] != $previous) { 
    $color = !$color; 
    $previous = $row['firstName']; 
} 
echo "<tr bgcolor = '", ($color?'blue':'yellow'),"'>"; 


blah blah 
} 
+0

Большое вам спасибо. :) – Ester

Смежные вопросы