Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Добавление лишь в одно поле таблицы базы, как реализовать 
:(
    Опции темы
corpsehunter
Дата 1.3.2007, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 199
Регистрация: 24.2.2007

Репутация: нет
Всего: 3



Сделай лучше так:
Код

$sql = "SELECT count(*) FROM referat WHERE (id=$id) AND (name IS NULL)";    
if (mysql_result($query,0)) {

Достает количество записией с соответсвующей темой и пустой фамилией (т.е. либо 0, либо 1) и если 1, то фамилия пуста и можно добавлять.
--------------------
Тест на IQ показал отрицательный результат...
PM MAIL   Вверх
nurv_ad
Дата 1.3.2007, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 15.10.2006

Репутация: нет
Всего: нет



ругается на 
if (mysql_result($query,0))

не может быть такого что у меня уже до этого встречается 
if($_GET['action'] == "add"){
    $name = mysql_escape_string($_POST['name']);
    $sql = "SELECT count(*) FROM referat WHERE name=$name";
    if (!mysql_result($query,0)) {

Добавлено @ 21:55 
http://nurv-ad.net.ru/plexa/referat/123.php

Добавлено @ 21:58 
Warning: mysql_result(): supplied argument is not a valid MySQL result resource
PM MAIL   Вверх
mishaSL
Дата 1.3.2007, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 7
Всего: 54




M
mishaSL
Пользуйтесь тегами Код (code=php) для повышения читабельности текста/кода


Цитата(nurv_ad @  1.3.2007,  21:54 Найти цитируемый пост)
ругается на 
if (mysql_result($query,0))


Переменная $query должна содержать результат функции mysql_query().



--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
corpsehunter
Дата 1.3.2007, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 199
Регистрация: 24.2.2007

Репутация: нет
Всего: 3



Точно, мой косякsmile
В запросе написал одну переменную, а в ифе использовал другую, да еще и функцию забыл написать...

Код

$sql = mysql_query("SELECT count(*) FROM referat WHERE (id=$id) AND (name IS NULL)");    
if (mysql_result($sql,0)) {


Это сообщение отредактировал(а) corpsehunter - 1.3.2007, 22:14
--------------------
Тест на IQ показал отрицательный результат...
PM MAIL   Вверх
nurv_ad
Дата 1.3.2007, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 15.10.2006

Репутация: нет
Всего: нет



Я ща опупею, да сколько можно, волосы буду рвать. вроде все верно, но все равно выдает что запись уже есть. Посмотреть можно по ссылуке которую давал выше. 


Подключаемся к базе
далее следующее
Код

$res = mysql_query( "SELECT * FROM referat" );
while( $row = mysql_fetch_object( $res ) )
{ print "
<a href='?action=add&id=".$row->id."'><br>Фамилия:</a> " . $row->name .", №: " . $row->id . ", Тема: " . $row->title . "."; }
if($_GET['action'] == "add"){
 //------------------
$sql = mysql_query("SELECT count(*) FROM referat WHERE (id=$id) AND (name IS NULL)");
if (mysql_result($sql,0)) {
 //Все нормально, такого имени нету.
 echo "
 <form name='add' action='123.php' method='post'>
 Фамилия
 <input type='hidden' name='id' value=".$_POST['id'].">
 <input type='text' name='name'>
 <input type='submit' name='submit' value='Добавить'>
 </form>
 ";
 @$a=$_POST['name'];
 @$e=$_POST['id'];
 $sql="INSERT INTO referat (id, title, name) VALUES (NULL, '','$a')";
 echo ("Информация изменена. <a href='123.php'>Назад</a>n");

 }
 else
 {
 //Ошибка, уже есть.
 exit ("
 <B><span style='color: red';>Извините но фамилия уже существует</span></B> <a href='123.php'>Вернуться</a>");
 }
 }


Добавлено @ 22:22 
А может в самой таблице что.

Код

CREATE TABLE `referat` (
  `id` int(2) NOT NULL auto_increment,
  `title` varchar(255) default NULL,
  `name` varchar(50) default NULL,
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=41 ;

#
# Дамп данных таблицы `referat`
#

INSERT INTO `referat` VALUES (1, 'Общественное питание и его место на потребительском рынке', '');
INSERT INTO `referat` VALUES (2, 'Проблемы и тенденции развития общественного питания', '');


Добавлено @ 22:23 
Too 
corpsehunter

Огромное спасибо что откликнулся помочь.

Это сообщение отредактировал(а) nurv_ad - 1.3.2007, 22:20
PM MAIL   Вверх
corpsehunter
Дата 1.3.2007, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 199
Регистрация: 24.2.2007

Репутация: нет
Всего: 3



Косяк явно в этом условии, так что попробуй еще вот так, должно работать:
Код

$sql = mysql_query("SELECT count(*) AS 'count' FROM 'referat' WHERE (id=$id) AND (name IS NULL)");
if (mysql_result('count',0)) {

И еще, вместо этого:

Код

$sql="INSERT INTO referat (id, title, name) VALUES (NULL, '','$a')";


поставть это, чтобы не новая запись добавлялась, а в уже существующую записывалась фамилия:

Код

$sql="UPDATE ref SET name=$a WHERE (id = $e)";

--------------------
Тест на IQ показал отрицательный результат...
PM MAIL   Вверх
nurv_ad
Дата 1.3.2007, 22:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 15.10.2006

Репутация: нет
Всего: нет



ругается на эту запись.
if (mysql_result('count',0)) {
PM MAIL   Вверх
corpsehunter
Дата 1.3.2007, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 199
Регистрация: 24.2.2007

Репутация: нет
Всего: 3



возможно так нельзя. Тогда верни $sql и можешь убрать "AS count".
Попробуй, должно работать.
--------------------
Тест на IQ показал отрицательный результат...
PM MAIL   Вверх
nurv_ad
Дата 1.3.2007, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 15.10.2006

Репутация: нет
Всего: нет



Warning: mysql_result(): supplied argument is not a valid MySQL result resource in m:\www\www\www\plexa\referat\123.php on line 26

Line 26 
if (mysql_result($sql,0)) {

Добавлено @ 22:59 
Код

<?php
$host = "localhost";
$port = "3306";
$user = "root";
$pass = "0.00";
$dbnm = "plexa_ref";
$h = ( empty( $port ) ) ? $host : $host . ":" . $port;
$db = mysql_connect( $host , $user , $pass );
if( !$db )
{
print ("error !");
exit();
}
if( ! mysql_select_db( $dbnm ) )
{
print ("error !");
exit();
}
$res = mysql_query( "SELECT * FROM referat" );
while( $row = mysql_fetch_object( $res ) )
{ print "
<a href='?action=add&id=".$row->id."'><br>Фамилия:</a> " . $row->name .", №: " . $row->id . ", Тема: " . $row->title . "."; }
if($_GET['action'] == "add"){
 //------------------
$sql = mysql_query("SELECT count(*) FROM 'referat' WHERE (id=$id) AND (name IS NULL)");
if (mysql_result($sql,0)) {
 //Все нормально, такого имени нету.
 echo "
 <form name='add' action='123.php?action=add&id=".$row->id."' method='post'>
 Фамилия
 <input type='hidden' name='id' value=".$_POST['id'].">
 <input type='text' name='name'>
 <input type='submit' name='submit' value='Добавить'>
 </form>
 ";
 @$a=$_POST['name'];
 @$e=$_POST['id'];
 $sql="UPDATE referat SET name=$a WHERE (id = $e)";
 echo ("Информация изменена. <a href='123.php'>Назад</a>n");

 }
 else
 {
 //Ошибка, уже есть.
 echo ("
 <br><B><span style='color: red';>Извините но фамилия уже существует</span></B> <a href='123.php'>Вернуться</a>");
 }
 }
?>


PM MAIL   Вверх
corpsehunter
Дата 1.3.2007, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 199
Регистрация: 24.2.2007

Репутация: нет
Всего: 3



Последняя идея. Попробуй сделать такую проверку:
Код

$sql = mysql_query("SELECT name FROM 'referat' WHERE (id=$id)");
$arr = mysql_fetch_object( $res );
if ($arr->name ='') {

--------------------
Тест на IQ показал отрицательный результат...
PM MAIL   Вверх
nurv_ad
Дата 1.3.2007, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 15.10.2006

Репутация: нет
Всего: нет



блин я не знаю что делать. пишет что 
Извините но фамилия уже существует

Добавлено @ 23:27 
Выкладываю сам скрипт может кто посмотрит  и исправит буду надеятся на это, а то уже не знаю что и делать.


Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  123.rar 0,84 Kb
PM MAIL   Вверх
corpsehunter
Дата 2.3.2007, 03:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 199
Регистрация: 24.2.2007

Репутация: нет
Всего: 3



Use&Enjoy

Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  123.zip 0,82 Kb
--------------------
Тест на IQ показал отрицательный результат...
PM MAIL   Вверх
nurv_ad
Дата 2.3.2007, 06:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 15.10.2006

Репутация: нет
Всего: нет



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

Огромное еще раз спасибо.


PM MAIL   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0900 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.