проблема с mysql_num_rows

if

Guest
со строками тоже так будете?
со строками этого и не требуется
строки они и есть строки

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

Don Arana

Новичок
:)
alpes
я хочу чтобы:

1. при запросе к скрипту, допустим, view.php открываются ВСЕ (допустим это будут) новости.
2. при запросе к скрипту через параметр ?id=2 или другое число, чтобы view.php?id=2 выдавал мне только строку с id=2, то есть одну новость с id=2.

Убрав цикл - у меня перестает работать вывод всех новостей так? так, поэтому я его оставляю.

Убрав второй запрос $query = mysql_query("SELECT * FROM column_text WHERE id='$id'"); у меня не работает вывод отдельных строк при запросе определенного id.

так что же не так? вроде у меня все работает. но вопрос тогда такой - может можно было обойтись без второго запроса?
не уверен, так как заккоментировав его, и сделав вот так:
PHP:
//$query = mysql_query("SELECT * FROM column_text WHERE id='$id'");
$id=(int)$_GET["id"];
while($result = mysql_fetch_array($query))
{
$id = $result['id'];
$title = $result['title'];
...
$text = nl2br($text);
echo "<br>Автор: <a href=mailto:$author_email>$author</a><BR>$date<br><b>$title</b><br>$text";
}
я не могу получить доступ к строке с id=2, и при запросе выводятся все строки. Убрав цикл, и даже введя $id=(int)$_GET["id"]; мне ВСЕГДА выдается только 1-ая строка, несмотря на запросы id=2,3 и т.п.
 

Don Arana

Новичок
Larson и что? извини, но не мог бы указать это к чему? и где вставить..или вместо чего? и что это даст..:)

так, по моему у меня голова кругом идет..

2ALL: я не очень в этом понимаю судя по всему, но теперь у меня перестал работать вывод всех сообщений в этом скрипте, хотя вывод отдельно запрашиваемой строки работает!
Вопрос: как мне теперь наладить чтобы этот же скрипт без парметров по дефолту выдавал все новости??


вот текст (который все новости не выдает при запросе к нему как к view.php, а выдает по одной если запросишь как view.php?id=...):
PHP:
if(!$query=mysql_query("SELECT * FROM column_text")) echo mysql_error(); 
$rows = mysql_num_rows($query);
echo "<BR>число рядов = $rows"; 

//если к-во строк в таблице ноль -> выйти 
if(!$rows) { echo "error!";exit; } 

//'закоментировла потому что не увидел вообще никакой разницы при запросах типа view.php?id=... и так все работает!
//$id=(int)$_GET["id"]; 

$query = mysql_query("SELECT * FROM column_text WHERE id='$id'");
while($result = mysql_fetch_array($query)) 
{ 
$id = $result['id']; 
$title = $result['title']; 
$date = $result['date']; 
$text = $result['text']; 
$author = $result['author']; 
$author_email = $result['author_email']; 
$text = nl2br($text); 
echo "<br>Автор: <a href=mailto:$author_email>$author</a><BR>$date<br><b>$title</b><br>$text"; 
}
?>
 

alpes

Весь мир на ладони
Don Arana, ну во первых речь шла о том что первый запрос он просто бессмысленный! Надеюсь обьяснять почему не нужно? ;)
А твой пример я бы сделал вот так:
PHP:
if(isset($_GET["id"])) $id=(int)$_GET["id"];//чтобы юзеры не писали что попало
if($id>0)//можно здеся добавить && $id<=максимальному числу из табл., если надо
 $where="WHERE id='$id' ";
else $where="";
if(!$sql_res = mysql_query("SELECT title, date, text, author, author_email FROM column_text$where")) echo mysql_error(); 
if(mysql_num_rows($sql_res)) 
 while(list($title, $date, $text, $author, $author_email) = mysql_fetch_row($sql_res)) 
 { 
 echo "Автор: <a href=mailto:$author_email>$author</a> [$date]<b>$title</b><br>$text<br><br>"; 
 }
else echo "По вашему запросу нет ни одной записи";
 

Don Arana

Новичок
alpes

!!!Спасибо, все работает замечательно, правда не всего понял, но буду копаться!!!! Спасибо!
 

tony2001

TeaM PHPClub
>со строками этого и не требуется
>строки они и есть строки

строка "3 AND 1>0"
Запрос "DELETE FROM table WHERE id=$id"
догадайся что сделает этот запрос.
и что он сделает вот в такой форме:
"DELETE FROM table WHERE id='$id'"
еще вопросы есть, воланд?
 
Сверху