powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Помогите составить правильный запрос к бд.
25 сообщений из 53, страница 1 из 3
Помогите составить правильный запрос к бд.
    #37852057
Atlina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите составить запрос на поиск к базе данных, там нужно искать в столбике id соответствие переменной, я делал так:

Код: php
1.
2.
3.
4.
5.
6.
$a = $_GET['id'];

$q = mysql_query("SELECT * FROM sid WHERE UPPER(id) LIKE '%".strtoupper($_GET['id'])."%' ")
if (!$q) {
    die('Неверный запрос: ' . mysql_error());
}



Все выходит без ошибок, но как принять и удачно обработать результат выполнения? Пожалуйста помогите, целый день просиделa.
...
Рейтинг: 0 / 0
Помогите составить правильный запрос к бд.
    #37852060
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://php.net/manual/ru/function.mysql-fetch-array.php

PS^ Такой запрос обречен на работу без индексов.
...
Рейтинг: 0 / 0
Помогите составить правильный запрос к бд.
    #37852065
Atlina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можете поподробней сказать зачем индексы, ну или как они влияют на поиск и т.п. ? Если воспользоватся mysql_fetch_array() то я получу аррай, а мне бы хотелось получать от базы что то вроде true и 1, мне просто проверить нужно на наличие, а не создавать масивы.
...
Рейтинг: 0 / 0
Помогите составить правильный запрос к бд.
    #37852068
Atlina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: php
1.
2.
3.
4.
5.
6.
7.
$a = $_GET['id'];

$q = mysql_query("SELECT * FROM sid WHERE UPPER(id) LIKE '%".strtoupper($_GET['id'])."%' ")
//if (!$q) {
  //  die('Неверный запрос: ' . mysql_error());
//}
while ( $v = mysql_fetch_array($q, MYSQL_NUM)) { prinf( $v[0], $v[1], $v[2] ); }



Сделала как Вы сказали, но выдается вот такая ошибка:

Parse error: syntax error, unexpected T_WHILE in Z:\home\test1.ru\www\test.php on line 58

А вот сама строка 58:

Код: php
1.
while ( $v = mysql_fetch_array($q, MYSQL_NUM)) { prinf( $v[0], $v[1], $v[2] ); }



Скажите что не так.
...
Рейтинг: 0 / 0
Помогите составить правильный запрос к бд.
    #37852074
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: php
1.
while ( $v = mysql_fetch_array($q, MYSQL_NUM)) { prinf( $v[0], $v[1], $v[2] ); }


Я вам такого не говорил

Хотя бы так
Код: php
1.
2.
3.
while ( $v = mysql_fetch_assoc($q)) { 
    print_r($v); 
}



Про индексы почитайте)
...
Рейтинг: 0 / 0
Помогите составить правильный запрос к бд.
    #37852078
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Помогите составить правильный запрос к бд.
    #37852079
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и сдается мне LIKE да еще с шаблоном %% вам не нужен.
...
Рейтинг: 0 / 0
Помогите составить правильный запрос к бд.
    #37852093
Atlina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решила сделать чуть иначе, то есть я получаю в ответ от базы массив с ид'ами ( 4567854, 534433434 ) и мне нужно проверить каждый ид на соответствие моей переменной, я не так хорошо знаю php но вот что получилось:


Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
$query = "SELECT * FROM sid WHERE id";

$result=mysql_query($query);

while($r=mysql_fetch_array($result) ){

echo "$r[id]<br/>";

}
if ( $r[id] == $_GET['id'] ){echo "OK!";
}else{ echo "ERROR!"; }



Помогите пожалуйста.
...
Рейтинг: 0 / 0
Помогите составить правильный запрос к бд.
    #37852094
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АД!
...
Рейтинг: 0 / 0
Помогите составить правильный запрос к бд.
    #37852095
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: php
1.
2.
3.
4.
5.
$id = mysql_real_escape_string($_GET['id']);
$query = "SELECT id FROM sid WHERE id = '$id'";
$result=mysql_query($query);

var_dump(mysql_num_rows($result));
...
Рейтинг: 0 / 0
Помогите составить правильный запрос к бд.
    #37852107
Atlina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да все работает, огромное спасибо! Очень мне помогли, не могли бы Вы мне еще подсказать, вот если я узнала что id есть в базе и все ок, то мне нужно вывести ту строчку, имею ввиду что у меня в таблице sid есть колонки id, asquar, bd . То есть я узнала что id существует и можно не выводить ошибку и спокойно работать дальше, то есть вывести все эти значения именно для этого id'a, тоже пыталась это сделать, тоже никак не выходит, если Вам не сложно, набросайте код, я закончу сама. Большое спасибо.
...
Рейтинг: 0 / 0
Помогите составить правильный запрос к бд.
    #37852116
Atlina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Делаю так:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
$id = mysql_real_escape_string($_GET['id']);
$query = "SELECT id FROM av WHERE id = '$id'";
$result=mysql_query($query);

$m = (mysql_num_rows($result));
// Результат 1 или 0.

if ( $m = 1 )
{
$l = "SELECT * FROM sid WHERE asqur, bd";
$j = mysql_query($l);
while($w=mysql_fetch_array($j) ){

echo "$r[bd], $r[asqur]<br/>";


}
}
if ( $m = 0){
echo "Ошибка, идентификатор не был найден в базе";}



Как мне узнавать и брать значение именно из того поля id , то есть значение bd и asqur должно соответствовать тому полю id которое мы ниже искали.
...
Рейтинг: 0 / 0
Помогите составить правильный запрос к бд.
    #37852119
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
$id = mysql_real_escape_string($_GET['id']);
$query = "SELECT * FROM av WHERE id = '$id'";
$result=mysql_query($query);


if($w=mysql_fetch_assoc($j)){
    echo "$r[bd], $r[asqur]<br/>";
} else 
    echo "Ошибка, идентификатор не был найден в базе";
...
Рейтинг: 0 / 0
Помогите составить правильный запрос к бд.
    #37852120
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скопировал у вас с ошибкой.
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
$id = mysql_real_escape_string($_GET['id']);
$query = "SELECT * FROM av WHERE id = '$id'";
$result=mysql_query($query);


if($r=mysql_fetch_assoc($j)){
    echo "$r[bd], $r[asqur]<br/>";
} else 
    echo "Ошибка, идентификатор не был найден в базе";
...
Рейтинг: 0 / 0
Помогите составить правильный запрос к бд.
    #37852121
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вы код пишите, не зная инструмента, может стоит почитать сначала?
...
Рейтинг: 0 / 0
Помогите составить правильный запрос к бд.
    #37852141
Atlina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hett, я уже все написала =) Вот осталось только все самое сложное как говорится.

Делаю так, но ошибка :

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
$id = mysql_real_escape_string($_GET['id']);
$query = "SELECT id FROM av WHERE id = '$id'";
$result=mysql_query($query);

$m = (mysql_num_rows($result));
// Результат 1 или 0.

$l = "SELECT * FROM sid WHERE asqur, bd";
$j = mysql_query($l);
if($r=mysql_fetch_assoc($j)){
    echo "$r[bd], $r[asqur]<br/>";
} else 
    echo "Ошибка, идентификатор не был найден в базе";


Ошибка: Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in Z:\home\test1.ru\www\test.php on line 53
Ошибка, идентификатор не был найден в базе

Вот строка с ошибкой:
Код: php
1.
if($r=mysql_fetch_assoc($j)){



Мне осталось только это доделать и можно закончить проект, очень прошу еще раз помочь мне, наверно я Вас уже и так достала =)
...
Рейтинг: 0 / 0
Помогите составить правильный запрос к бд.
    #37852142
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я же выше написал:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
$id = mysql_real_escape_string($_GET['id']);
$query = "SELECT * FROM av WHERE id = '$id'";
$result=mysql_query($query);


if($r=mysql_fetch_assoc($j)){
    echo "$r[bd], $r[asqur]<br/>";
} else 
    echo "Ошибка, идентификатор не был найден в базе";
...
Рейтинг: 0 / 0
Помогите составить правильный запрос к бд.
    #37852144
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
SELECT * FROM sid WHERE asqur, bd


АД!
...
Рейтинг: 0 / 0
Помогите составить правильный запрос к бд.
    #37852163
Atlina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hett, что не так? =) Блин мои знания бд очень малы, возможно запрос неверен, но это только одна часть скрипта которая работает вот так.
...
Рейтинг: 0 / 0
Помогите составить правильный запрос к бд.
    #37852170
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atlina,

Все же, почитайте документацию по используемым инструментам. В частности, по MySQL. Не обязательно сразу от корки до корки, но хотя бы синтаксис основных запросов изучите. Времени это много не займет, думаю, не более часа. Однако, сэкономит времени гораздо больше, ибо на написание запросов методом тыка, как Вы делаете, уходит времени гораздо больше. Да и работоспособность их весьма и весьма сомнительна.
...
Рейтинг: 0 / 0
Помогите составить правильный запрос к бд.
    #37852190
Atlina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Посмотрела я документацию и попробовала так:


Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
// Проверка на существования id в базе.
$id = mysql_real_escape_string($_GET['id']);
$query = "SELECT id FROM sid WHERE id = '$id'";
$result=mysql_query($query);

$m = (mysql_num_rows($result));
// Результат 1 или 0.

if ($m > 0 ){
$h = "SELECT bd FROM av WHERE id = '$id'";
$l=mysql_query($query);
while($p = mysql_fetch_array($l) ){

echo "$p[id], $p[bd]<br/>";}}
if ($m = 0 ){
echo "Идентификатора нет в базе. Дальнейшая работа не возможная";}



Вроде оно должно извлекать данные с колонки bd в той же строчке что и id только почему то этого не происходит, ну запрос точно правильный составила. Помогите пожалуйста,скажите что на этот раз не так.
...
Рейтинг: 0 / 0
Помогите составить правильный запрос к бд.
    #37852192
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишите везде так:
Код: php
1.
$l=mysql_query($query) or die(mysql_error());
...
Рейтинг: 0 / 0
Помогите составить правильный запрос к бд.
    #37852198
Atlina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
// Проверка на существования id в базе.
$id = mysql_real_escape_string($_GET['id']);
$query = "SELECT id FROM sid WHERE id = '$id'";
$result=mysql_query($query);

$m = (mysql_num_rows($result));
// Результат 1 или 0.

if ($m > 0 ){
$h = "SELECT bd FROM av WHERE id = '$id'";
$l=mysql_query($query) or die(mysql_error());
while($p = mysql_fetch_array($l) ){

echo "$p[bd]<br/>";}}
if ($m = 0 ){
echo "Идентификатора нет в базе. Дальнейшая работа не возможная";}



Ошибки нет, белый экран.

Вот так выглядит структура БД:

http://data1.floomby.com/files/previews/24_6_2012/0VxS3frg0C6DQhQqRnDaQ.jpg
...
Рейтинг: 0 / 0
Помогите составить правильный запрос к бд.
    #37852200
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну значит в таблице av нету записей с таким ID
...
Рейтинг: 0 / 0
Помогите составить правильный запрос к бд.
    #37852203
Atlina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hett, как нет если есть, вот сделала скрин:

http://data4.floomby.com/files/share/24_6_2012/ZlTWI9fYuEeYlDguUmpatQ.png
...
Рейтинг: 0 / 0
25 сообщений из 53, страница 1 из 3
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Помогите составить правильный запрос к бд.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]