Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Узнать существование ID

Сообщения:  [1-10]    [11-20]   [21-30]  [31-36] 

 
 автор: mr Bin   (08.06.2007 в 01:30)   письмо автору
 
   для: Trianon   (08.06.2007 в 01:17)
 

Я отказываюсь от авторства!
Да, действительно, не заметил каунта.. Если б сам с нуля писал - не ошибся бы..

   
 
 автор: Trianon   (08.06.2007 в 01:17)   письмо автору
 
   для: mr Bin   (08.06.2007 в 01:10)
 

>>mysql_num_rows всегда вернет 1 независимо от количества строк в таблице
>Странно, меня никогда это ещё не подводило. Если такого нет в таблице, то значит нет.

Вы не заметили, что запрос - SELECT COUNT(id) - Такой запрос всегда вернет одно значение независимо от числа строк в таблице.

Я заметил, что большинство огрехов - автора.
Но Вы же назвали код своим... Получите, что называется, и распишитесь :)

   
 
 автор: mr Bin   (08.06.2007 в 01:10)   письмо автору
 
   для: Trianon   (08.06.2007 в 00:57)
 

>mysql_num_rows всегда вернет 1 независимо от количества строк в таблице
Странно, меня никогда это ещё не подводило. Если такого нет в таблице, то значит нет.

>непонятен источник возникновения переменной $id
Ну я тоже не знаю, а втору виднее.. я только подстроился под него..

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

>целочисленное (вроде как) поле id сравнивается со строковым литералом,
>отсутствует явное перечисление имен полей в операторе INSERT.
Опять же.. какой запрос автор опубликовал, такой я и вставил для примера, чтобы ему было понятнее, что откуда берется..

p.s. Называется напросился :(

   
 
 автор: Trianon   (08.06.2007 в 00:57)   письмо автору
 
   для: mr Bin   (07.06.2007 в 23:09)
 

у меня? Претензий - нет.
Замечания... как обычно:
Логические ошибки: функция mysql_num_rows всегда вернет 1 независимо от количества строк в таблице,
непонятен источник возникновения переменной $id,
отсутствует восстановление данных после искажения механизмом магических кавычек,
отсутствует экранирование при образовании литеральных констант MySQL-кода.
стилистические ошибки:
целочисленное (вроде как) поле id сравнивается со строковым литералом,
отсутствует явное перечисление имен полей в операторе INSERT.

   
 
 автор: mr Bin   (07.06.2007 в 23:09)   письмо автору
 
   для: Trianon   (07.06.2007 в 22:21)
 

Я видел, что Вы ответили ему. Но часто так бывает, что независимо от ника отвечают...
И я подумал, что Вы каким-то образом адресовали первую строчку мне... Понял.

И всё же, я правильный код составил? :) Или и ко мне есть претензии?

   
 
 автор: Trianon   (07.06.2007 в 22:21)   письмо автору
 
   для: mr Bin   (07.06.2007 в 22:06)
 

Включите линейный режим форума. В нем написано, кто кому отвечает.

   
 
 автор: mr Bin   (07.06.2007 в 22:06)   письмо автору
 
   для: Trianon   (07.06.2007 в 21:04)
 

Эм, я не правильно написал?

   
 
 автор: Trianon   (07.06.2007 в 21:04)   письмо автору
 
   для: Specter   (07.06.2007 в 20:34)
 

Это не одно и то же.

Неправильно.
В $num будет записано число строк в таблице, поле id в которых равно искомому.

   
 
 автор: mr Bin   (07.06.2007 в 20:45)   письмо автору
 
   для: Specter   (07.06.2007 в 18:41)
 

Я бы переписал так:
<?php
$SQL 
mysql_query("SELECT COUNT(id) FROM votes WHERE id='".$id."'");
if(
mysql_num_rows($SQL) == 0) { mysql_query("INSERT INTO `votes` VALUES(0, '".$id."', '".$_POST['q']."')"); } else { mysql_query("UPDATE `votes` SET `text` = '".$_POST['q']."' WHERE `id` = '".$id."'"); }
?>

   
 
 автор: Specter   (07.06.2007 в 20:34)   письмо автору
 
   для: Trianon   (07.06.2007 в 20:07)
 

Я просто код с скрипта скопировал с скобкой. А так ведь я правильно понял, что если id существует, то $num будет равен true?

   

Сообщения:  [1-10]    [11-20]   [21-30]  [31-36] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования