Есть массивы
PHP |
$val['name'][]='Вася'; $val['name'][]='Петя'; $val['name'][]='Саша';
$val['text'][]='Вася крутой'; $val['text'][]='Петя тоже крутой'; $val['text'][]=Саша мега крутой; |
с этим всё понятно но потом идёт проверка в бд по имени включён или не включён
и получается следуюшее
PHP |
$sql['name'][]='Вася'; $sql['name'][]='Петя'; $sql['name'][]='Саша';
$sql['status'][]='on'; $sql['status'][]='off'; $sql['status'][]=on; |
Мне нужно привести к такому виду примерно
PHP |
$val['name'][]='Вася'; $val['name'][]='Петя'; $val['name'][]='Саша';
$val['text'][]='Вася крутой'; $val['text'][]='Петя тоже крутой'; $val['text'][]='Саша мега крутой';
$val['status'][]='on'; $val['status'][]='off'; $val['status'][]=on; |
могу сделать это такой конструкцией
но не хотелось бы
можно ли отсортировать без цикл в цикле
и вопрос 2
если запрос в бд выглядит примерно так
SELECT * FROM module WHERE name='Вася' and name='Петя' and name='Саша'
майскул отсортирует как ему будет удобно по id к примеру или так как я написал?
Вася
Петя
Саша
Если всё будет идти именно в таком порядке каком я задавал то круто и проблема решена
Спустя 5 минут, 15 секунд (23.10.2009 - 14:29) Michael написал(а):
Чтоб сортировать самому надо указывать в запросе ORDER BY `столбец(ы)`.
Сам MySQL так сам будет все подряд подходящие выдавать.
Про массивы что-то не понял - что надо то.
Спустя 12 минут, 44 секунды (23.10.2009 - 14:42) solib написал(а):
PHP |
$text = "[!Вася?var1=test&var2=test2!] любит [!пиво?var3=test3&var4=test4!] больше чем <b>Иван</b>";
function parser($tamplate){ preg_match_all ("#\[!(.*)!\]#iU", $tamplate, $fp); $sql=""; $fp_count=count($fp[1])-1; for($i=0; $i<=$fp_count;$i++){ $fpe=explode("?", $fp[1][$i]); $val['name'][]=strtolower($fpe[0]); $val['val'][]=$fpe[1]; if($i==0){$sql="name='".strtolower($fpe[0])."' "} else{$sql+="and name='".$fpe[0]."' "} }
$request = "SELECT * FROM module WHERE ".$sql." "; $result = mysql_query($request); if (!mysql_error()) { while ($row = mysql_fetch_array($result)) { $sql['name'][]=$row[1]; $sql['status'][]=$row[2]; } }
}
$val=parser($text); |
вот код
Спустя 11 минут, 17 секунд (23.10.2009 - 14:53) Michael написал(а):
Я бы так не разбрасывал данные. Сделал бы так:
PHP |
$i = 0; while () // ...выборка { $i++; $val[$i]["name"] = "Вася"; $val[$i]["text"] = "Вася крутой"; $val[$i]["status"] = "on"; } |
Получится массив записей - все об одном человеке - под одним индексом.
_____________