Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Работа php с запросами. (https://javascript.ru/forum/server/24511-rabota-php-s-zaprosami.html)

Duda.Ml1986@gmail.com 03.01.2012 21:16

Работа php с запросами.
 
Добрый день.
Столкнулся с проблемой.
Вот запрос :
SELECT  SUBSTRING(`text`,1, 300 ) AS first_300 FROM `article`

в sql он работает отлично, выводит как и предполагалось первые 299 символов (за исключением первого)
а вот php выводит ничего! пусто!
Что за беда? Одно радует что сломано предубеждение.
Короче задача в вытягивании первых 299 символов лючого столба таблицы.
П.С. php код не привожу, он работает исправно и в нем нет ошибки.

devote 03.01.2012 21:29

Цитата:

Сообщение от Duda.Ml1986@gmail.com
П.С. php код не привожу, он работает исправно и в нем нет ошибки.

Нуну, если вы себе внушаете эту мысль, то долго будете думать в чем проблема.

Duda.Ml1986@gmail.com 03.01.2012 21:32

Цитата:

Сообщение от devote (Сообщение 147901)
Нуну, если вы себе внушаете эту мысль, то долго будете думать в чем проблема.

select * from `article` limit 12

Вот такой запрос обрабатывается и выводится! Так что проблема не в php

devote 03.01.2012 21:47

Цитата:

Сообщение от Duda.Ml1986@gmail.com
Вот такой запрос обрабатывается и выводится! Так что проблема не в php

Ну если вы считаете что проблема не в ПХП тогда вам нужно сапорт разработчиков мускуля обратиться, раз уж пхп не приделах, значит проблема в мускуле, если запрос написан нормально а мускуль не работает. Либо к разрабам ядра пхп, может в нем что дело.

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

Duda.Ml1986@gmail.com 03.01.2012 21:49

$user="root";
$passwd="";

$link = mysql_connect("localhost", $user, $passwd)
    or die("Could not connect : " . mysql_error());
mysql_select_db("ford") or die("Could not select database");
$query =("select * from `article` limit 12");// работает в php
//("SELECT  SUBSTRING(`text`,1, 300 ) AS first_300 FROM `article`");//не работает а php , но работает в sql
$result = mysql_query($query) or die("Query failed : " . mysql_error());

while ($line = mysql_fetch_array($result, MYSQL_ASSOC)){
	echo $line['text']."<br>";
}


МАНУАЛ

http://msdn.microsoft.com/en-us/library/ms187748.aspx

devote 03.01.2012 21:56

ну может стоит воспользоваться обычным mysql_fetch_assoc. Раз уж вы все равно указываете его.

И зачем скобки вокруг стокового параметра?
Цитата:

Сообщение от Duda.Ml1986@gmail.com
$query =("select * from `article` limit 12");

Впервые вижу такой стиль написания.

devote 03.01.2012 21:57

Цитата:

Сообщение от Duda.Ml1986@gmail.com

Мануал смотрите не на MsSQL а на MySQL http://dev.mysql.com/doc/refman/5.6/...tion_substring

Duda.Ml1986@gmail.com 03.01.2012 23:02

select SUBSTRING(`text` FROM -4 FOR 2) from `article` limit 12
Данная строка не принесла результата хотя sql на них отзывается и выдает результат как и комбинации (брутил)
FROM -4 FOR 2
FROM 0
и другие варианты,
а стиль написания диктует phpmyadmin

Serg_pnz 03.01.2012 23:10

AS first_300 - какой вы ждете $line['text'] от него?

Посмотрите $result так
echo '<pre>';
print_r($result);
echo '</pre>';

devote 03.01.2012 23:32

Цитата:

Сообщение от Serg_pnz
AS first_300 - какой вы ждете $line['text'] от него?

Кстати да, я тоже что-то не досматрел

devote 03.01.2012 23:35

Цитата:

Сообщение от Serg_pnz
echo '<pre>';print_r($result);echo '</pre>';

Это ему выдаст ResouceId #. Ему скорее надо так:
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)){
    echo "<pre>".print_r( $line, true )."</pre>";
}

Serg_pnz 04.01.2012 12:18

devote, это я уже поторопился, не пропустив $result через mysql_fetch_array или подобное.

PS: строго говоря для print_r цикл не нужен.

devote 04.01.2012 19:19

Цитата:

Сообщение от Serg_pnz
PS: строго говоря для print_r цикл не нужен.

а для mysql нужен

Serg_pnz 05.01.2012 00:38

Цитата:

Сообщение от devote (Сообщение 148050)
а для mysql нужен

Угу. Вот кстати хороший пример http://www.php.net/manual/ru/functio...ray.php#105221

<?php
//= Query ========================//
$sql=mysql_query("select * from table1");

//= Closed while ====================//
/*everytime it fetches the row, adds it to array...*/
while($r[]=mysql_fetch_array($sql));

echo "<pre>";
//= Prints $r as array =================//
print_r ($r);
//=============================//
echo "</pre>";
?>

Serg_pnz 05.01.2012 00:39

А вообще стал замечать, что с фреймворками тупеешь потихоньку: создал запрос, получил массив, а что там внутри...

devote 05.01.2012 01:33

Цитата:

Сообщение от Serg_pnz
А вообще стал замечать, что с фреймворками тупеешь потихоньку

Ну я про это уже писал в одном из топиков, тока там автор мне минус воткнул в карму, мол я не прав и все такое.

Duda.Ml1986@gmail.com 07.01.2012 16:04

Цитата:

Сообщение от devote (Сообщение 147931)
Кстати да, я тоже что-то не досматрел

select SUBSTRING(`text`from 1 for 100 )as tri from `article` limit 1

вот так работает. В помощь
var_dump

Всем спасибо.


Часовой пояс GMT +3, время: 12:01.