Jump to content
  • 0

php выборка по имени из таблицы mysql


dima1981
 Share

Question

Такая ситуация, долго просматриваю различные форумы, статьи в интернете, но ниразу не встречал чего то такого, что окажется решением данной темы, может тут кто, что подскажет.

В общем есть таблица которая содержит список предметов и характеристики, требуется сделать выборку из неё из таблицы, по двум значениям, например телевизор - чёрнобелый, запрос осуществляется из форм их две, данные заносятся из фори их пять, но с занесением данных разобрался, но вот с выборкой не могу и всё тут

Link to comment
Share on other sites

23 answers to this question

Recommended Posts

  • 0

Код таблицы думаю это то о чем вы спрашивали

INSERT INTO $dtable (co, do, mo, go, di) VALUES ('$co', '$do', '$mo','$go','$di')";

Код для выборки

[

<?php

$db = mysql_connect("localhost","root","123");

mysql_select_db("oo" ,$db);

mysql_query("SET NAMES 'utf8'");

mysql_query("SET CHARACTER SET 'utf8'");

$sql = mysql_query("SELECT * FROM oo" ,$db);

echo ("<table border ='1'>");

echo ("<tr><td colspan='2'>Таблица</td></tr>");

while ($abc = mysql_fetch_row($sql))

{

echo("<tr><td align='center'>$abc[1]</td><td align=\"center\">$abc[2]</td></tr>");

echo("<tr><td>$abc[3]</td><td>$abc[4]</td></tr>");

echo("<tr><td colspan='2'>$abc[0]</td></tr>");

}

echo "</table>";

mysql_close($db);

?>

]

требуется по полям co и cd

понимаю так, сюда передаются данные из html файла к примеру $co, $cd, т.е. там получмтся за from oo(where co=$co and cd=$cd)

потом явно этот скрипт не принимает эти данные, потому, что принимаются они как то так if=$co или post но если честно совсем в этом ничего не понимаю, но мне бы хоть какой, хоть самый сырой код, там я доработать думаю смогу

Edited by dima1981
Link to comment
Share on other sites

  • 0

1) заключайте код в тег [code ]

2) вы хоть бы пояснили какая колонка за что отвечает - названы они бессмысленно.

3) вечером скину или завтра схему, которая думаю лучше подойдет

Link to comment
Share on other sites

  • 0

да не понимаю я какая там колонка про что, там все они varchar, в одной кпримеру телевизоры, во второй марка, в третей страна производитель, четвертая плазменный и вот в эту таблицу приходят данные из html из форм, но с этим разобрался кое как, теперь есть второй html в котором две формы type="text" одна марка, вторая lsd или жк или обычный (но они не списком т.е. прописывается в ручную), по этим хар=кам и требуется совершать выборку. Вот прописывает в них посетитель: Горизонт в первой, во второй форме плазменный и получает список всех телевизоров из базы удовлетворяющих этому запросу )

Link to comment
Share on other sites

  • 0

SELECT * FROM `table` WHERE(`type`='plazma') ORDER BY `id` - вот запрос, вместо `table` ваша таблица вместо plazma - переменная(с выбраным типом) вместо type - название колонки, вместо id - столбец по которому сортировать)

Link to comment
Share on other sites

  • 0
SELECT * FROM `table` WHERE(`type`='plazma') ORDER BY `id` - вот запрос, вместо `table` ваша таблица вместо plazma - переменная(с выбраным типом) вместо type - название колонки, вместо id - столбец по которому сортировать)

тут одно поле, потребность в выборке по двум полям и если сюда и прописать дополнительно

SELECT * FROM `table` WHERE(`type`='plazma') ORDER BY `id`
and co='$co' например то не получится желаемого результата т.е. выборки не произойдет но покажет какой нибудь online пшипк
Link to comment
Share on other sites

  • 0

да и там по одному имени выборка $sql="select * from db_guest where (name='$user')";

прописываю так, т.к. по двум [ $sql = mysql_query("SELECT * FROM oo" co='$co' and cd='$cd',$db);]

пишет Parse error: syntax error, unexpected T_STRING in C:\apache\localhost\www\23.php on line 15

Link to comment
Share on other sites

  • 0

Запятую заместо and ставлю

$sql = mysql_query("SELECT * FROM oo where co='$co', cd='$cd',$db");

, пишет Parse error: syntax error, unexpected T_STRING in C:\apache\localhost\www\g.php on line 16

но вы скорее всего не серьёзно это т.к. написанно эксперт

Edited by dima1981
Link to comment
Share on other sites

  • 0

ЛОЛ, это было серьезно, я спросил пробовал или нет, тем более попытка не пытка и через and не всегда проходит.

Можно на ТЫ))

$sql = mysql_query("SELECT * FROM oo where co='".$co."', cd='".$cd."', db='".$db."'"); - на сколько я понял это имелось ввиду)

Да оказалось все таки and:

$sql = mysql_query("SELECT * FROM `oo` where(co='".$co."'and cd='".$cd."' and db='".$db."')");

Edited by Vindex10
Link to comment
Share on other sites

  • 0

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\apache\localhost\www\g.php on line 19

выглядит так:

<?php

$db = mysql_connect("localhost","root","123");

mysql_select_db("oo" ,$db);

mysql_query("SET NAMES 'utf8'");

mysql_query("SET CHARACTER SET 'utf8'");

$sql = mysql_query("SELECT * FROM `oo` where(co='".$co."'and cd='".$cd."' and db='".$db."')"); <—

echo ("<table border ='1'>");

echo ("<tr><td colspan='2'>Таблица</td></tr>");

while ($abc = mysql_fetch_row($sql))

{

echo("<tr><td align='center'>$abc[1]</td><td align=\"center\">$abc[2]</td></tr>");

echo("<tr><td>$abc[3]</td><td>$abc[4]</td></tr>");

echo("<tr><td colspan='2'>$abc[0]</td></tr>");

}

echo "</table>";

mysql_close($db);

?>

мне кажется Vindex10, что до этой строки, которую ты написал, данные из форм не доходят, формы расположены в другом html файле, который передаёт postom их в этот файл php, но этот их не принимает наверно, потому, что смотрю на форму, которая заполняет базу там сначала идут $co = $_POST["co"]; такие строки, потом только mysql инструкции, но ты правильно говоришь никакого понимания у меня по этому вопросу нет, поэтому и предполагаю и излагаю сразу всё о чем думаю

Edited by dima1981
Link to comment
Share on other sites

  • 0

<?
$db = mysql_connect("localhost","root","");
mysql_select_db("mysql" ,$db);
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
$co=34;
$cd=10;
$sql = mysql_query("SELECT * FROM `help_category` where(parent_category_id='".$co."'and help_category_id='".$cd."')");
echo ("<table border ='1'>");
echo ("<tr><td colspan='2'>Таблица</td></tr>");
while ($abc = mysql_fetch_assoc($sql))
{
echo("<tr><td align='center'>".$abc['help_category_id']."</td><td align=\"center\">".$abc['parent_category_id']."</td></tr>");
echo("<tr><td>".$abc['parent_category_id']."</td><td>".$abc['help_category_id']."</td></tr>");
echo("<tr><td colspan='2'>".$abc['name']."</td></tr>");
}
echo "</table>";
mysql_close($db);
?>

Рабочий пример, только переменные и базы поменяй)

Link to comment
Share on other sites

  • 0

Спасибо Vindex10

не хочет он, что то срабатывать либо mysql_fetch_row(): supplied argument is not a valid MySQL result resource in либо mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in при вставке этого слова он лине 11

тут по интернету смотрел с такими вещами кто, и сравнивал с тем, что у меня в php.ini норма и глобал он и дллы нормально, В общем понял одно, что когда он это пишет, то может быть, что угодно и, что на самом деле попробуй пойми называется, но скорее всего в этом плане седьмой myaql превзойдет шестого )

буду В общем дальше думать... и смотреть......

но почему то всю таблицу выводит всё таки

Edited by dima1981
Link to comment
Share on other sites

  • 0

<?

$db = mysql_connect("localhost","root","123");

mysql_select_db("mysql" ,$db);

mysql_query("SET NAMES 'utf8'");

mysql_query("SET CHARACTER SET 'utf8'");

$sql = mysql_query("SELECT * FROM `oo` where(co='".$co."'and cd='".$cd."' and db='".$db."')");

echo ("<table border ='1'>");

echo ("<tr><td colspan='2'>Таблица</td></tr>");

while ($abc = mysql_fetch_assoc($sql))

{

echo("<tr><td align='center'>".$abc[1]."</td><td align=\"center\">".$abc[ 2]."</td></tr>");

echo("<tr><td>".$abc[3]."</td><td>".$abc[4]."</td></tr>");

echo("<tr><td colspan='2'>".$abc[0]."</td></tr>");

}

echo "</table>";

mysql_close($db);

?>

Вот код, должен работть, главное, посмотри, чтобы совпадали имена столбцов и цифры, и переменные были обьявлены.

У тебя в $abc массив где название столбца есть ключом массива.

Link to comment
Share on other sites

  • 0

У тебя в $abc массив где название столбца есть ключом массива, что это обозначает?

на while указывает онлине, не идет В общем

но прописываю while так while ($abc = @mysql_fetch_assoc($sql)) , онлине не показывает, но и данных тоже, зато появляется одна ячейка с надписью Таблица и все, это, что прогресс Vindex10 ? )))

Edited by dima1981
Link to comment
Share on other sites

  • 0

Попробуй сделать так, вместо мускул кери выведи запрос, полностью строку, и посмотри правильно ли она составлена, то есть вместо

кода(что выше напиши такое:

<?
$db = mysql_connect("localhost","root","123");
mysql_select_db("mysql" ,$db);
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
echo("SELECT * FROM `oo` where(co='".$co."'and cd='".$cd."' and db='".$db."')");
/*$sql = mysql_query("SELECT * FROM `oo` where(co='".$co."'and cd='".$cd."' and db='".$db."')");
echo ("<table border ='1'>");
echo ("<tr><td colspan='2'>Таблица</td></tr>");
while ($abc = mysql_fetch_assoc($sql))
{
echo("<tr><td align='center'>".$abc[1]."</td><td align=\"center\">".$abc[ 2]."</td></tr>");
echo("<tr><td>".$abc[3]."</td><td>".$abc[4]."</td></tr>");
echo("<tr><td colspan='2'>".$abc[0]."</td></tr>");
}
echo "</table>";
mysql_close($db);
*/
?>

Посмотри на запрос правильно ли составлен

Link to comment
Share on other sites

  • 0
Guest Гость_dima1981_*

SELECT * FROM `oo` where(co='0'and cd='1' and db='Resource id #2')Таблица

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\apache\localhost\www\zg.php on line 10

вот что пишет Vindex10, имя базы в коде соответствует имени в mysql, не знаю, тут думаю из за массивов каких то нет результата.

сори за долгий ответ, в форуме нет записи, что ты написал ответ, вот и не отписываюсь, но щас зашел смотрю вчера размещено, прописываю у себя пишет сам видишь что...

ну и вабще понимаю, что это такое теперь php, хорошо ещё, что у себя решил без регистраций всяких создавать сайт

Link to comment
Share on other sites

  • 0

перед and можно попробовать без пробела, кстати названия полей лучше через черточку_ делать) возможно изза этого)) Я тебе говорю чесно, код работает у меня при подставлении своих баз и всего, через ПОСТ может не так получаешь, выложи просот код побольше..)) может чего и нароем)

Link to comment
Share on other sites

  • 0

Да там в таблице есть поле id, но это поле выводить не к чему, так там получается пять полей, вывесть требуется четыре поиск осуществляется из html форм по двум значениям, которые распологаются каждое в отдельном поле, например поле в поле co надо выбрать все значения со словом четыре, в поле cd выбрать все поля со словом пять, но только те поля из таблице в которых присутствует в одном и четыре, и пять.

написал убрав пробелы пишет SELECT * FROM `oo` where(co=''and cd=''and db='Resource id #2')Таблица

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\apache\localhost\www\zg.php on line 10

как происходит так, что у тебя отображается, у меня нет, из за чего это может быть, может потому, что у меня виста? )

Link to comment
Share on other sites

  • 0

Спасибо Vindex10, рад был оьщению, успехов, что то я в этой теме не могу разобраться, тык мык и все такое, где все таки есть готовый код, за ним и отправлюсь, благодарю за участие, успехов!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy