Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 13:52 12.06.24 
Компютри и Интернет
   >> PHP
Всички теми Следваща тема *Кратък преглед

Страници по тази тема: 1 | 2 | >> (покажи всички)
Тема Mysql Checkboxнови  
Автор Бyrapин (Нелегален)
Публикувано11.05.07 20:51



Привет. Напълно начинаещ съм в областта и сега се уча.
Моля ви за малко помощ по следния елементарен проблем.
Значи базата данни е съставена от три колонки, като трябва да се търси само по едната колонка (колонка 1). Тази колонка може да има само три стойности (да ги наречем А, Б и C)
Формулярът е съставен съответно само от 3 checkboxa. Ако някой от тях е избран, програмата трябва да изпише съответните редове (и трите колонки в пълен вид) от базата данни, съдържащи тази сойност. Например избрани са checkbox А и Б и програмата изписва точно редовете от базата данни, за които колонка 1 приема стойности A и Б под формата на таблица.

Формулярът е съставен, базата данни също.

Може ли някой да ми помогне със php-скриптчето?

Ще съм много благодарен



Тема Re: Mysql Checkboxнови [re: Бyrapин]  
Автор Tpaвъл (бунтар)
Публикувано11.05.07 23:12




<?php
$where = '';
if ( $_POST['A'] ) { $where = "'A'"; }
if ( $_POST['B'] ) {
if ( $where ) {
$where .= " or `column_1`='B'";
} else {
$where = "'B'";
}
}
if ( $_POST['C'] ) {
if ( $where ) {
$where .= " or `column_1`='C'";
} else {
$where = "'C'";
}
}
mysql_connect("host", "user", "pass");
mysql_select_db("db_name");
$result = mysql_query("SELECT * FROM `table` WHERE `column_1`=$where;");
echo '<table>';
while ( $row = mysql_fetch_array( $result ) ) {
echo "<tr>
<td>
$row[column_1]
</td>
<td>
$row[column_2]
</td>
<td>
$row[column_3]
</td>
</tr>
";
}
echo '</table>';
mysql_close();
?>


Не съм го тествал, ама не виждам да има грешки, така че ще работи.

Редактирано от Tpaвъл на 12.05.07 01:13.



Тема Re: Mysql Checkboxнови [re: Tpaвъл]  
Автор Бyrapин (Нелегален)
Публикувано12.05.07 05:04



Благодари ти много, жив и здрав да си. Помощта ти е наистина безценна.

Показва ми следната грешка:


Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
Като прибавя към кода
echo mysql_error();
излиза:
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.

Версията е MySQL 4.0.18 .

Какъв ли е пък сега проблемът?
Още веднъж благодаря



Тема Re: Mysql Checkboxнови [re: Бyrapин]  
Автор Tpaвъл (бунтар)
Публикувано12.05.07 09:14



Грешката ти е, че не задаваш правилни параметри тук
mysql_select_db("db_name");
или тук
$result = mysql_query("SELECT * FROM `table` WHERE `column_1`=$where;");



Тема Re: Mysql Checkboxнови [re: Tpaвъл]  
Автор edembg (Ученик)
Публикувано12.05.07 13:33



А не би ли ти харесало повече това:

<?php
$where = array();
if ( $_POST['A'] ) $where[] = "`column_1`='A'";
if ( $_POST['B'] ) $where[] = "`column_1`='B'";
if ( $_POST['C'] ) $where[] = "`column_1`='C'";
if (sizeof($where) == 0) print "No records";
else {
$where = implode(' && ', $where);
mysql_connect("host", "user", "pass");
mysql_select_db("db_name");
$result = mysql_query("SELECT * FROM `table` WHERE `column_1`=$where;");
echo '<table>';
while ( $row = mysql_fetch_array( $result ) ) {
echo "<tr>
<td>
$row[column_1]
</td>
<td>
$row[column_2]
</td>
<td>
$row[column_3]
</td>
</tr>
";
}
echo '</table>';
mysql_close();
}
?>

И най-ярките личности си плащат тока.


Тема Re: Mysql Checkboxнови [re: edembg]  
Автор Tpaвъл (бунтар)
Публикувано12.05.07 16:20



По-добра идея, по-чист код, по-малко проверки. Супер.
$where = implode(' or ', $where);



Тема Re: Mysql Checkboxнови [re: edembg]  
Автор Бyrapин (Нелегален)
Публикувано12.05.07 16:50



Не знам защо, но като го изпълня и ми дава винаги No entry, въпреки че в базата данни има въведени редове.
Възможно ли е грешката да ми е във формуляра?
Ето го и него:

<HTML><HEAD><TITLE>Formular 1</TITLE></HEAD><BODY>
<CENTER><H1>Formular 1</H1></CENTER>
<FORM ACTION="index.php" METHOD="get">
<INPUT TYPE="checkbox" NAME="A" value="ON" >Section 1
<INPUT TYPE="checkbox" NAME="B" value="ON" >Section 2
<INPUT TYPE="checkbox" NAME="C" value="ON" >Section 3
<P><CENTER>
<INPUT TYPE="submit" VALUE="Send">
</CENTER>
</FORM>
</BODY></HTML>

Благодаря ви и на двамата и извинете за тъпите въпроси.



Тема Re: Mysql Checkboxнови [re: Бyrapин]  
Автор edembg (Ученик)
Публикувано13.05.07 12:08



Иззвинявай. Мисля, че грешката е тук.


$result = mysql_query("SELECT * FROM `table` WHERE `column_1`=$where;");

Трябва да бъде

$result = mysql_query("SELECT * FROM `table` WHERE `$where;");

И най-ярките личности си плащат тока.


Тема Re: Mysql Checkboxнови [re: Бyrapин]  
Автор edembg (Ученик)
Публикувано13.05.07 12:11



Пак извинявай и още един пропуск

<FORM ACTION="index.php" METHOD="get">
трябва да бъде

<FORM ACTION="index.php" METHOD="post">

С тези промени трябва да върви

И най-ярките личности си плащат тока.


Тема Супер синови [re: edembg]  
Автор Бyrapин (Нелегален)
Публикувано13.05.07 14:31



Сега излиза. Но има още един малък проблем.

Когато всяко е избрано поединично, не показва нищо.
Когато са избрани А и B, показва само B.
Когато са избрани B и C, показва само C.
Когато са избрани и трите, показва само B и C.




Страници по тази тема: 1 | 2 | >> (покажи всички)
Всички темиСледваща тема*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.