сравняване на стрингове

embaka

Registered
здравейте,

коя функция ще ми предложите за сравняване на данни
значи наблъскал съм в един масив стойности

Код:
$str = array (
 "GSM телефони",
 "GSM aксесоари",
  "Data кабели за GSM",
  "Handsfree", 
  "Аксесоари за автомобил");

Код:
$string = mysql_query("SELECT `hist2` FROM `test_get_new`", $db) or die ('ne moje da gi izvle4e');
 
 while ($row = mysql_fetch_array($string)) {
	$str2 = $row['hist2'];
	foreach ($str as $s){ $s; }
	
	if (strcasecmp($s, $str2) == 0) {

$sql = mysql_query("INSERT INTO `cats` (`description`, `meta_description`, `meta_keywords`, `url`, `meta_title`, `subdomain`, `name`, `menu_order`, `status`, `h1_name`, `mostwanted`, `parent`, `sid`, `totop`, `credit`, `discount`, `sort_order`, `left_menu` ) VALUES ('".$p."', '".$p."', '".$p."', '".$p."', '".$p."', '".$p."', '".$name."', '0', '1', '".$p."', '".$p."', '0', '".$p."', '".$p."', '".$p."', '0.00', '0', '".$p."')") or die ("sql");

}
}

искам да направя сравнение, ако съвпадат данните от заявката с тези от масива да ги запиша в базата
 
Код:
$str = array (
 "GSM телефони",
 "GSM aксесоари",
  "Data кабели за GSM",
  "Handsfree", 
  "Аксесоари за автомобил", 
  "Батерии за GSM", 
  "Други аксесоари");


 $string = mysql_query("SELECT `hist2` FROM `test_get_new`", $db) or die ('ne moje da gi izvle4e');
 
 while ($row = mysql_fetch_array($string)) 
 {
	$str2 = $row['hist2'];
	foreach ($str as $s)
	{ 
		if ($da = in_array($s, $str)) { echo $da."<br>"; }
 	}

 }

връща само 1-ци, това ако истина, трябва да взема името и да го запиша в база данни
 
Както си го завъртял, възможно е да ти връща единици.
Не ти трябват допълнителни масиви и тяхната манипулация
$str = array (
"GSM телефони",
"GSM aксесоари",
"Data кабели за GSM",
"Handsfree",
"Аксесоари за автомобил",
"Батерии за GSM",
"Други аксесоари");


$string = mysql_query("SELECT `hist2` FROM `test_get_new`", $db) or die ('ne moje da gi izvle4e');

while ($row = mysql_fetch_array($string))
{
if (in_array($row['hits2'],$str)) { echo "TRUE"; }
else { echo "FALSE"; }
}
 
значи по пътя на логиката, така трябва да работи и да записва данните за категорията


Код:
$p = "";
while ($row = mysql_fetch_array($string))
{
		if ($da = in_array($row['hits2'],$str)) 
		{ 
			if ($da==1) { $s = $row['hits2']; } 
			$sql = mysql_query("INSERT INTO `cats` (`description`, `meta_description`, `meta_keywords`, `url`, `meta_title`, `subdomain`, `name`, `menu_order`, `status`, `h1_name`, `mostwanted`, `parent`, `sid`, `totop`, `credit`, `discount`, `sort_order`, `left_menu` ) VALUES ('".$p."', '".$p."', '".$p."', '".$p."', '".$p."', '".$p."', '".$s."', '0', '1', '".$p."', '".$p."', '0', '".$p."', '".$p."', '".$p."', '0.00', '0', '".$p."')") or die ("sql");
		}
		else 
		{ 
			echo "FALSE";
		}
}
 
Да, би трябвало да работи.
Но пак сетваш променлива и после правиш проверка, като може да си го спестиш на един ред
$p = "";
while ($row = mysql_fetch_array($string))
{
if (in_array($row['hits2'],$str)) {
$s = $row['hits2']; }
$sql = mysql_query("INSERT INTO `cats` (`description`, `meta_description`, `meta_keywords`, `url`, `meta_title`, `subdomain`, `name`, `menu_order`, `status`, `h1_name`, `mostwanted`, `parent`, `sid`, `totop`, `credit`, `discount`, `sort_order`, `left_menu` ) VALUES ('".$p."', '".$p."', '".$p."', '".$p."', '".$p."', '".$p."', '".$s."', '0', '1', '".$p."', '".$p."', '0', '".$p."', '".$p."', '".$p."', '0.00', '0', '".$p."')") or die ("sql");
}
else
{
echo "FALSE";
}
}
 
така дава само FALSE

Код:
$string = mysql_query("SELECT `hist1_id`,`hist2` FROM `test_get_new` GROUP BY `hist2`", $db) or die ('ne moje da gi izvle4e');

$p = "";
while ($row = mysql_fetch_array($string))
{
	if (in_array($row['hits2'],$str))
	{
	$s = $row['hits2'];
	$parent = $row['hist1_id'];
	mysql_query("INSERT INTO `cats` (`description`, `meta_description`, `meta_keywords`, `url`, `meta_title`, `subdomain`, `name`, `menu_order`, `status`, `h1_name`, `mostwanted`, `parent`, `sid`, `totop`, `credit`, `discount`, `sort_order`, `left_menu` ) VALUES ('".$p."', '".$p."', '".$p."', '".$p."', '".$p."', '".$p."', '".$s."', '0', '1', '".$p."', '".$p."', '".$parent."', '".$p."', '".$p."', '".$p."', '0.00', '0', '".$p."')") or die ("sql");
	}
	else
	{
	echo "FALSE";
	}
}
 

Back
Горе