SQL SELECT проблем

10 отговора 313 прегледа
#1

SQL SELECT проблем

Здравейте отново. Имам следния проблем:

Опитвам се да извлека данни от MySQL DB със следния код:
$sql = 'SELECT * FROM mydb.table WHERE label LIKE \'index1\''; $result = mysql_query($sql); echo($result);

И това ми плюе следното: Resource id #4

Къде бъркам? Какво ли не опитвах да направя, все едно и също изкарва. Някакви идеи? Мерси предварително.


Dont hate the player, hate the game
Отговор
в отговор на Flashman #2

Re: SQL SELECT проблем

LIKE \'index1\'' - тук ти е проблема
Отваряш с апостроф стринга - 'SELECT
след това не затваряш апостофа на индекс
и накрая завършваш с "
е... то не е АИ, само интерператор е...
сложи " в началото и още един апостроф след индеск
бтв - и без \' пак си работи добре

Сайтът за нова българската литература [линк]
Вече ТРИ години.
Отговор
в отговор на Flashman #3

Re: SQL SELECT проблем

А и...
$result = mysql_query($sql); формата е mysql_query($sql, $link)

Сайтът за нова българската литература [линк]
Вече ТРИ години.
Отговор
в отговор на Flashman #4

Re: SQL SELECT проблем

трябва да обработиш резултата.

mysql_fetch_array($result)
mysql_fetch_row($result)

и т.н.

-----------------------
гърбавия - ковчег ще го изправи
Отговор
в отговор на Ивaнyшka #5

Re: SQL SELECT проблем

Може и без $link

Отговор
в отговор на Flashman #6

1. В PHP-то е проблема. 2. Иванушка .....


$sql = 'SELECT * FROM mydb.table WHERE label LIKE \'index1\'';
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
print_r($row);


РНР ти е върнал съвсем правилен резултат в твоя код - това е буфера в който седят данните. От тук нататък трябва да започнеш да работиш с тях.

и още една забележка:
LIKE синтаксиса е добре да се ползва с %-тите когато има нужда, или ползвай = (знак за сравнение)

За Иванушка - персонално.
Извинявай за сравнението, но в приказките най-често Иванушка е третия син, известен също и като ГЛУПАКА. Държа да отбележа, че се прояви съвсем по същия начин ! Цитирам :
Отваряш с апостроф стринга - 'SELECT след това не затваряш апостофа на индекс и накрая завършваш с "
Затварят се ДВАТА апострофа - Този вътре в заявката и този в РНР-то със заявката.
бтв - и без \' пак си работи добре
Ако имаш интервал, запетайка, кавичка или какъвто и да е служебен символ в търсения стринг ще заработи на кукуво лято.
$result = mysql_query($sql); формата е mysql_query($sql, $link)
Не ! НЕ е така. Формата е :
resource mysql_query ( string query [, resource link_identifier])
Втория параметър не е задължителен и ако не се подаде се използва последния отворен линк. Ако няма такъв, функцията сама се опитва да я създаде, все едно е извикан mysql_connect() без параметри.

root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
Отговор
в отговор на ro6avia #7

Re: 1. В PHP-то е проблема. 2. Иванушка .....

Благодаря за коментара, друг път няма да се изказвам неподготвен.
Честно казано, не бих написал така заявката, но всеки си има стил.

П.С Бе глупак, глупак, ама все той се женел за царицата

Редактирано от Ивaнyшka на

Отговор
в отговор на Flashman #8

Re: SQL SELECT проблем

Мерси на всички и най-вече на Рошавия.


Dont hate the player, hate the game
Отговор
в отговор на ro6avia #9

Re: 1. В PHP-то е проблема. 2. Иванушка .....

Направих го както го каза, но сега ми изкарва:

Array ( [0] => index1 [label] => index1 [1] => proba bla bla [data] => proba bla bla )

Къде пак съм омазал положението? Ползвам полета със имена "label" и "data" в базата данни. Възможно ли е нещо да се бият с нещо друго? Мерси.


Dont hate the player, hate the game
Отговор
в отговор на Flashman #10

Re: 1. В PHP-то е проблема. 2. Иванушка .....

така подадено, mysql_fetch_array($result) връща данните като асоциативен и обикновен масив, т.е. данните х2, така че за целта ползвай или mysql_fetch_assoc($result), mysql_fetch_array($result, MYSQL_ASSOC) - тогава ще имаш масив с 2 елемента -> label и data...

Just a genius

Отговор
в отговор на Blake #11

Re: 1. В PHP-то е проблема. 2. Иванушка .....

Мерси, намерих си грешката.


Dont hate the player, hate the game
Отговор