X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Возможно ли обойтись без цикла?
asbury
asbury
Topic Starter сообщение 11.2.2011, 0:42; Ответить: asbury
Сообщение #1


[PHP]$resultat = mysql_query("select * from prod WHERE cat='$cat'",$db);
if (!$resultat) {
echo "<div>Ошибка запроса.<br> <strong>Код ошибки:</strong></div>"; exit(mysql_error()); }
if (mysql_num_rows($resultat) > 0) { $mainrow = mysql_fetch_array($resultat); }
else { echo "<div>В таблице нет записей.</div>"; exit(); }
[/PHP] - вот выбор с одним условием. А если мне нужно выбрать
WHERE cat='$cat1'"
WHERE cat='$cat2'"
WHERE cat='$cat'3"
WHERE cat='$cat4'"
WHERE cat='$cat5'"

Вроде кощунство в цикле то выбор делать?
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ottaviano
ottaviano
сообщение 11.2.2011, 0:47; Ответить: ottaviano
Сообщение #2


asbury,
SELECT ... WHERE cat IN ($cat1, $cat2, $cat3)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
asbury
asbury
Topic Starter сообщение 11.2.2011, 0:58; Ответить: asbury
Сообщение #3


Вай пасибо братишка
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
asbury
asbury
Topic Starter сообщение 11.2.2011, 1:05; Ответить: asbury
Сообщение #4


вот вопрос задал, а доконца не продумал решение вопроса, может подскажете?


[PHP]$basket = $_COOKIE['basket'];
$substrCount = substr_count($basket, '.');
$basket = preg_split( "/\./" ,$basket );

echo $basket[2];

$resultat = mysql_query("select * from prod WHERE id IN ($id1, $id2, $id3 ... $substrCount)",$db);
if (!$resultat) {
echo "<div>Ошибка запроса.<br> <strong>Код ошибки:</strong></div>"; exit(mysql_error()); }
if (mysql_num_rows($resultat) > 0) { $mainrow = mysql_fetch_array($resultat); }
else { echo "<div>В таблице нет записей.</div>"; exit(); }
[/PHP]

В частности это WHERE id IN ($id1, $id2, $id3 ... $substrCount)
Как реализовать? Я же не могу цикл сюда подключить вроде?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ottaviano
ottaviano
сообщение 11.2.2011, 1:11; Ответить: ottaviano
Сообщение #5


asbury, ид это номер, вам же нужна цепь из таких номеров...
цыкл вы в запрос вставить не можете, но можете его вставить за пределами
[PHP]
$var = '';
for($i=1;$i<100;$i++){
$var .= $i.", ";
}
[/PHP]
в $var будет "1, 2, 3, .... , 99"
и уже эту переменную кидать в запрос
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
asbury
asbury
Topic Starter сообщение 11.2.2011, 1:47; Ответить: asbury
Сообщение #6


[PHP]
$var = '';
for($i=1; $i <= $substrCount; $i++){
if ($i == $substrCount) { $var .= $basket[$i]; }
else { $var .= $basket[$i].", "; }
}




$resultat = mysql_query("select * from prod WHERE id IN $var",$db);
if (!$resultat) {
echo "<div>Ошибка запроса.<br> <strong>Код ошибки:</strong></div>"; exit(mysql_error()); }
if (mysql_num_rows($resultat) > 0) { $mainrow = mysql_fetch_array($resultat); }
else { echo "<div>В таблице нет записей.</div>"; exit(); }

do {
echo $mainrow['name']."<br>";
}
while ($mainrow = mysql_fetch_array($resultat));[/PHP]

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''2, 5, 10, 13, 2, 1, 2, '' at line 1


Что-то не так делаю(
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ottaviano
ottaviano
сообщение 11.2.2011, 1:49; Ответить: ottaviano
Сообщение #7


asbury, а скобки сами не поставятся! IN (...)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ottaviano
ottaviano
сообщение 11.2.2011, 1:51; Ответить: ottaviano
Сообщение #8


asbury, и зачем делать кучу тестов в цыкле?
[PHP]
$var = '';
for($i=1;$i<$substrCount;$i++){
$var .= $i.", ";
}
$var .= $substrCount;
[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Apay
Apay
сообщение 11.2.2011, 14:35; Ответить: Apay
Сообщение #9


а зачем там вообще for ?
[PHP]$resultat = mysql_query('select * from prod WHERE id IN ('.implode(',',array_slice($basket,1,$substrCount)).')',$db);
[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
asbury
asbury
Topic Starter сообщение 12.2.2011, 2:00; Ответить: asbury
Сообщение #10


Apay,
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1
- вот что выдает, я правда почитал php.su но не понял что не устраивает его.
ottaviano, твоим способом получилось, от души благодарю. Удобным оказался момент, что если id=10 встречается 5 раз, он сделает все равно один запрос. Но вот еще одна нужда появилась, есть массив $basket = preg_split( "/\./" ,$basket ); - и в нем 4 раза встречается id=10, 5 раз - id=7 и тд. Могу я эту статистику сосчитать? в массиве, сколько раз повторяется элемент.

И еще вопрос, вот предположим кука у меня:
1.2334.32.45.657.35.645.3.5.453.45.4.4.5.45.
И мне требуется удалить одну 4. предположим и 35. Как такое осуществить?)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) PROXY-STORE.COM — ipV4 прокси от 42р В МЕСЯЦ с ротацией и без! Лучшая цена на рынке. 200+ стран
21 proxystore 5290 Сегодня, 12:02
автор: proxystore
Открытая тема (нет новых ответов) Большие базы Semrush кейвордов по разным тематикам! Много кейвордов с трафиком и без конкуренции! Volume, KD, CPC
22 Krok 6740 12.4.2024, 5:17
автор: Krok
Открытая тема (нет новых ответов) Скрипты и программы на заказ любой сложности. Без предоплаты. Быстро, качественно и недорого!
5 c4p1t4l15t 2511 6.4.2024, 12:51
автор: c4p1t4l15t
Открытая тема (нет новых ответов) Обменяю Юмани на гривны без комиссии
3 freeax 1004 2.4.2024, 1:46
автор: Llirik
Открытая тема (нет новых ответов) Сайт не индексируется в Google без добавления ссылок в адурилку
4 Nekit 1083 20.3.2024, 21:44
автор: MorKer


 



RSS Текстовая версия Сейчас: 19.4.2024, 20:02
Дизайн