Как получить только строку из запроса mysql
i всегда в конечном итоге делает это
$q = "select whatIwant FROM table where id = 'myId'";
$r = mysql_query($q);
while($i = mysql_fetch_array($r){
/* iterate just one withem */
$j = $i['whatIwant'];
}
echo $j;
Как это обычно делается? (я просто хочу избежать ненужного цикла)
Ответы
Ответ 1
В дополнение к правильным ответам есть несколько способов справиться с этим:
-
Если вы добавите LIMIT 1
, результирующий набор будет содержать только одну строку, а цикл while
завершится после одной итерации:
$q = "select whatIwant FROM table where id = 'myId' LIMIT 1";
$r = mysql_query($q);
while($i = mysql_fetch_array($r)) {
$j = $i['whatIwant'];
}
echo $j;
-
Если вы вызываете mysql_fetch_array
без цикла, вы получите первую строку набора результатов:
$q = "select whatIwant FROM table where id = 'myId'";
$r = mysql_query($q);
$i = mysql_fetch_array($r);
$j = $i['whatIwant'];
echo $j;
-
Если вы добавите break
в тело цикла, цикл завершится после одной итерации.
$q = "select whatIwant FROM table where id = 'myId'";
$r = mysql_query($q);
while($i = mysql_fetch_array($r)) {
$j = $i['whatIwant'];
break;
}
echo $j;
Вы также можете комбинировать эти подходы (хотя использование break
в этом случае не очень элегантно).
Наилучший подход заключается в использовании LIMIT
и опускании цикла while
, поскольку @zaf показывает в своем ответе. Это делает код более понятным и позволяет избежать ненужных операций в базе данных.
Ответ 2
Вы можете указать количество строк в запросе sql, используя синтаксис "LIMIT".
Кроме того, вы можете просто удалить цикл while и вернуть первую строку - если это все, что вы хотите.
Например (без проверки возвращаемого значения):
$q = "select whatIwant FROM table where id = 'myId' LIMIT 1";
$r = mysql_query($q);
$i = mysql_fetch_array($r);
print_r($i);
Ответ 3
добавить LIMIT X, Y
, где X - стартовая строка, а Y - количество строк для возврата
//will always return 1 row. note your orders
$q = "SELECT whatIwant FROM table WHERE id = 'myId' limit 0, 1";
http://php.about.com/od/mysqlcommands/g/Limit_sql.htm
Ответ 4
select whatIwant FROM table where id = 'myId' limit 1
Ответ 5
Ну, тогда оставьте петлю:
$q = "select whatIwant FROM table where id = 'myId'";
$r = mysql_query($q);
$i = mysql_fetch_array($r);
$j = $i['whatIwant'];
echo $j;
Это приведет только к первой строке.
Ответ 6
mysql_fetch_assoc()
- это именно то, что вы ищете.
http://php.net/mysqli_fetch_assoc
Ответ 7
Я думаю, вы ищете это:
http://php.net/manual/en/function.mysql-fetch-row.php
Ответ 8
выберите whatIwant FROM table, где id = 'myId' LIMIT 1;
http://dev.mysql.com/doc/refman/5.5/en/select.html
Ответ 9
$sql224="select * from z_category order by id asc LIMIT 1";
$res224=mysql_query($sql224);
$rw224=mysql_fetch_array($res224);
$activeid2= $rw224['pkid'];