У меня есть код ниже, который должен проверять базу данных на наличие записей с определенным именем пользователя, которое работает, но когда я пытаюсь добавить некоторый код, чтобы проверить, больше ли возвращаемых строк больше 10, а затем запустить некоторый код, чтобы ограничитьколичество строк до 10, а затем, если не выполняется, другой фрагмент кода, который будет отображать все строки.
Код:
mysql_select_db("blahblah", $con); //connect to database..
$username = basename(dirname(__FILE__));
$username = mysql_real_escape_string($username);
$checkres = mysql_query("SELECT COUNT link, notes, titles, color FROM links WHERE username='" . $username . "';");
if ($checkres>10)
{
$resultsmall = mysql_query("SELECT link, notes, titles, color FROM links WHERE username='" . $username . "' LIMIT 10;");
while ($rowsmall = mysql_fetch_array($resultsmall)) { //loop
extract($rowsmall);
$htmlsmall .= "
//code goes here to format results
";
echo $htmlsmall; //display results...
}
}
else {
$result = mysql_query("SELECT link, notes, titles, color FROM links WHERE username='" . $username . "';");
while ($row = mysql_fetch_array($result)) { //loop
extract($row);
$html .= "
//code goes here to format results
";
echo $html; //display results...
}
}
mysql_close($con); //close db..
Но он просто отображает в два раза количество строк вбазы данных вместо того, чтобы либо ограничивать ее, либо отображать их все.Как бы я это исправить?//code goes here for formatting
не важен, он просто форматирует код, чтобы он выглядел красиво и отображал его в окне ...
Спасибо!
РЕДАКТИРОВАТЬ:
Iтеперь есть этот код, но теперь он вообще ничего не отображает?Может ли кто-нибудь помочь:
Код:
mysql_select_db("blahblah", $con); //connect to database..
$username = basename(dirname(__FILE__));
$username = mysql_real_escape_string($username);
$sql = "SELECT SQL_CALC_FOUND_ROWS link, notes, titles, color FROM links WHERE username='" . $username . "' LIMIT 10";
$result = mysql_query($sql) or die("MySQL error: " . mysql_error());
$subsql = "SELECT found_rows() AS foundrows;";
$subresult = mysql_query($subsql) or die("MySQL error: " . mysql_error());
$found_rows = $subresult['foundrows'];
if($found_rows > 10)
{
while($row = mysql_fetch_array($result))
{
extract ($row);
$html .= "
//getting values from columns and then formatting them goes here
";
echo "Only 10 is allowed.";
}
}
else
{
while($row = mysql_fetch_array($result))
{
extract($row);
$html .= "
//getting values from columns and then formatting them goes here
";
}
}
mysql_close($con); //close db..
Спасибо!
РЕДАКТИРОВАТЬ 2 (12 апреля 14:03 2011 GMT):
У меня сейчас естьэтот код, который любезно помог полковник Шрапнель, но он ничего не показывает для меня, и я не знаю почему, пожалуйста, помогите.
Код:
mysql_select_db("blahblah", $con); //connect to database..
$username = basename(dirname(__FILE__));
$username = mysql_real_escape_string($username);
$sql = "SELECT link, notes, titles, color FROM links WHERE username='$username' LIMIT 10";
$res = mysql_query($sql);
if (mysql_num_rows() == 10) {
while ($row = mysql_fetch_array($res)) {
extract($row);
$htmlsmall .= "
= "; $ htmlfree. =" Разрешено только 10. "; echo $ htmlsmall; echo $ htmlfree;}} else {while ($ row = mysql_fetch_array ($ res)) {extract ($ rowmall); $ htmlsmall. ="
";
echo $htmlsmall;
}
}
Теперь, если я просматриваю исходный код страницы, я вижу следующие 2 ошибки:
<b>Warning</b>: Wrong parameter count for mysql_num_rows() in <b>//url was here</b> on line <b>109</b><br />
<b>Warning</b>: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in <b>//url to file goes here</b> on line <b>125</b><br />
Строка 109 такая: if (mysql_num_rows() == 10) {
Строка 125 такая: while ($row = mysql_fetch_array($res)) {
(Эти строки в коде выше)
Пожалуйста, кто-нибудь может мне помочь с этим?
Спасибо!