Проблем с една заявка

maxaffey

Registered
Здравейте, имам следната заявка:

Код:
$sql = mysql_query("SELECT * FROM rabbit WHERE zaek LIKE '1%'");

$row = mysql_fetch_array($sql);

	while ($row = mysql_fetch_assoc($sql)) {
    echo $row['zaek']."<br>";

}

като идеята е да ми изкара всички заявки започващи с "1"

заявката действа ама не ми вади всичко, реално в таблицата имам:

Код:
1101
100004
100003
100005

а ми вади само:
Код:
100004
100003
100005

и така ми изпуска първия ред?

Някой да знае защо може да се получи така?

А и как може да ми изкара като отделна променлива, най-голямото число от тези които взима с това услови, примерно да стане $nai_goliam = 100005
 
Защото с кода $row = mysql_fetch_array($sql); преди цикъла дърпаш първия ред, но никога не го четеш, влизайки в цикъла, вече си на втория ред.

Просто махни въпросният код $row=... преди цикъла. С други думи:

PHP:
$sql = mysql_query("SELECT * FROM rabbit WHERE zaek LIKE '1%'");

while ($row = mysql_fetch_assoc($sql)) {
    echo $row['zaek']."<br>";
}

Успех.
 
Пробвам със следния скрипт:

Код:
$highest_id = mysql_result(mysql_query("SELECT MAX(zaek) FROM rabbit"), 0);
echo $highest_id;

Обаче от таблица:
Код:
1101 
100004 
100003 
100005

ми изважда
Код:
$highest_id = 1101

а 1101 не е по-голямо от 100005 ?!? :shock:
 
1. Числата ги записвай в базата като INT, FLOAT, DECIMAL, няма значение, нещо числово в зависимост от типа на данните, не като стрингове.

2. Ако те мързи да променяш дизайна на таблицата , използвай CAST за конвертиране:

Ако колоната има рационални числа(3.14, 5.2):

[sql]
SELECT MAX(CAST(r.zaek AS DECIMAL(10,2))) FROM rabbit AS r
[/sql]

Ако колоната има цели числа (-1, 3, 19):
[sql]
SELECT MAX(CAST(r.zaek AS SIGNED)) FROM rabbit AS r
[/sql]

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

[sql]
SELECT r.zaek FROM rabbit AS r ORDER BY CAST(r.zaek AS DECIMAL(10,2)) DESC
SELECT r.zaek FROM rabbit AS r ORDER BY CAST(r.zaek AS SIGNED) DESC
[/sql]

Всичко това ще ти сортира и даде 100005 като първо 'число'.

Успех. :)
 
МЕРСИ МНОГО, смених базата данни в INT там където са числата и стана идеално и работи вече.

Предполагам че и другите бачкат но не съм ги пробвал.

:?:
 

Горе