[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: работа с БД
qaz333
По прозьбе одного из форумчанинов создал отдельный топик
продолжим

_____________________________________________________________________
quickxyan
я просто показал синтаксис ) кстати твой вариант не самый лучший, т.к. в некоторых случаях может возникнуть ошибка из-за неправильной интерпретации названия БД. Лучше всего так:
$dbname = "db_mai1_ru";
// остальной код
mysql_query("CREATE DATABASE IF NOT EXISTS `" . $dbname . "`")
or die ("Не могу создать базу данных.");

_____________________________________________________________________

<?
$dbhost = "localhost";
$dbname = "db_mai1_ru";
$dbuser = "db_mai1_ru";
$dbpass = "sf253e1b";
$link = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname,$link);
$dbname = "db_mai1_ru";

mysql_query ("CREATE DATABASE IF NOT EXISTS ' $dbname '" )
or die ("Не могу создать базу данных gb.");
mysql_select_db(db_mai1_ru)
or die("Нет содениения с требуемой базой данных!");
mysql_query ("CREATE TABLE IF NOT EXISTS gb
(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
username VARCHAR (100),
dt DATETIME,
msg TEXT)"
)
or die ("Не могу создать таблицу gb.");
?>


всё сделал, серовно не создаёёт, как быть?



Спустя 4 минуты, 49 секунд (26.12.2010 - 22:32) wplounge написал(а):
Вставь ф-цию mysql_error() и посмотри, что она выдаст:

mysql_query("CREATE DATABASE IF NOT EXISTS `" . $dbname . "`")
or die ("Не могу создать базу данных:" . mysql_error());

Спустя 1 минута, 45 секунд (26.12.2010 - 22:34) qaz333 написал(а):
Цитата (wplounge @ 26.12.2010 - 19:32)
Вставь ф-цию mysql_error() и посмотри, что она выдаст:

mysql_query("CREATE DATABASE IF NOT EXISTS `" . $dbname . "`")
or die ("Не могу создать базу данных:" . mysql_error());

выдало такое

Не могу создать базу данных:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' db_mai1_ru '' at line 1

Спустя 2 минуты, 28 секунд (26.12.2010 - 22:36) quickxyan написал(а):
уже 2 раз навожу пример рабочего кода - только поменяй логин и пароль для мускуля на свои



<?
$dbhost = "localhost";
$dbname = "db_mai1_ru";
$dbuser = "root";
$dbpass = "";
$link = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname,$link);

mysql_query ("CREATE DATABASE IF NOT EXISTS $dbname")
or die ("Не могу создать базу данных gb.");
mysql_select_db($dbname)
or die("Нет содениения с требуемой базой данных!");
mysql_query ("CREATE TABLE IF NOT EXISTS gb
(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
username VARCHAR (100),
dt DATETIME,
msg TEXT)"
)
or die ("Не могу создать таблицу gb.");
?>

Спустя 4 минуты, 29 секунд (26.12.2010 - 22:41) qaz333 написал(а):
о, пашет, спс.
Тему не закрывайте, наверняка будут ещо вопросы по БД

Спустя 18 секунд (26.12.2010 - 22:41) wplounge написал(а):
 mysql_query ("CREATE DATABASE IF NOT EXISTS  ' $dbname  '" ) 


кавычки поменяй

 mysql_query ("CREATE DATABASE IF NOT EXISTS  `{$dbname}`" ) 


или вообще убери

Спустя 4 минуты, 29 секунд (26.12.2010 - 22:46) quickxyan написал(а):
qaz333

может я и настырный, но можешь за помощь и плюсик поставить smile.gif

Спустя 1 минута, 44 секунды (26.12.2010 - 22:47) qaz333 написал(а):
Цитата (quickxyan @ 26.12.2010 - 19:46)
qaz333

может я и настырный, но можешь за помощь и плюсик поставить smile.gif

как будет десять постов обязательно всем поставлю

Спустя 34 секунды (26.12.2010 - 22:48) Invis1ble написал(а):
quickxyan
ыыыыы )

Спустя 30 минут, 38 секунд (26.12.2010 - 23:18) qaz333 написал(а):
ещо вопрос



<?
$dbhost="localhost";
$dbname="db_mai1_ru";
$dbuser="db_mai1_ru";
$dbpass="sf253e1b";
$link=mysql_connect($dbhost,
$dbuser,$dbpass) or die(" Не
могу подключиться к серверу
БД "
);
mysql_select_db($dbname,$link)
or die(" Не могу подключиться к
БД"
);
$query = "SELECT * FROM gb";
$result = mysql_query($query);

while ($row = mysql_fetch_array($result)) {
echo $row ;
}

?>


почему не вывоит данные из БД??? где может быть ошибка?



Спустя 4 минуты, 43 секунды (26.12.2010 - 23:23) quickxyan написал(а):

while ($row = mysql_fetch_array($result)) {
echo $row['username'] ;
echo $row['dt'] ;
echo $row['msg'] ;
}



Спустя 1 минута, 5 секунд (26.12.2010 - 23:24) wplounge написал(а):
mysql_fetch_array - возвращает массив с данными, который еще надо обработать с помощью, например, цикла foreach

Спустя 4 минуты, 45 секунд (26.12.2010 - 23:29) quickxyan написал(а):
там же while, зачем foreach?

Спустя 8 минут, 15 секунд (26.12.2010 - 23:37) wplounge написал(а):
Цитата
там же while, зачем foreach?


А если, например, данные из БД нужно сохранить для вывода в другой скрипт?
Тогда


while ($row = mysql_fetch_array($result)) {
$array[] = $row ;
}


и выводишь потом $array с помощью foreach
И кстати, если выводить данные так
  echo  $row['username'] ;
echo $row['dt'] ;
echo $row['msg'] ;

то лучше использовать mysql_fetch_assoc. Он хоть и не намного, но все же меньше памяти занимает.

Спустя 4 минуты, 5 секунд (26.12.2010 - 23:41) quickxyan написал(а):
ну так это если) а ему нужно именно, то что нужно - без вских если.

Спустя 1 минута, 5 секунд (26.12.2010 - 23:42) qaz333 написал(а):
Цитата (quickxyan @ 26.12.2010 - 20:23)

while ($row = mysql_fetch_array($result)) {
echo $row['username'] ;
echo $row['dt'] ;
echo $row['msg'] ;
}

пашет, спасибо smile.gif

Спустя 25 минут, 26 секунд (27.12.2010 - 00:08) Invis1ble написал(а):
quickxyan
mysql_fetch_array() дает лишнюю нагрузку. Лучше юзать mysql_fetch_assoc()

Спустя 4 минуты, 32 секунды (27.12.2010 - 00:12) quickxyan написал(а):
я уже это прочитал на ирбисе и на форуме часто слышу, но я только копировал его же код и показывал где подправить.

хотя сам то еще в своих скриптах по старому юзаю mysql_fetch_array() user posted image

Спустя 15 дней, 22 часа, 49 минут, 17 секунд (12.01.2011 - 23:02) qaz333 написал(а):
Такой вопрос, есть строка в БД

например
_______________
ид/логин/пароль/
---------------------
1/усер/ 12345
--------------------
2/усерак/ 1234577
--------------------

как например составить запрос штоб изменить только пароль там где ид(который указан)

Спустя 1 час, 23 минуты, 51 секунда (13.01.2011 - 00:26) quickxyan написал(а):
update table set col1 = value where id=value

table = таблица
col1 = имена колонок
value = значения

Спустя 22 часа, 21 минута, 37 секунд (13.01.2011 - 22:47) qaz333 написал(а):
чёт не меняет значения в БД



<?
if ($answer ==1)
{

include ("dbconnect.php");
$voplata=$_REQUEST['id'];

$sql= "UPDATE zakaz SET voplata = 'выплачено ' WHERE 'id' = '{$voplata}' ";
$r=mysql_query ($sql);


header("Location: site.php");


}
elseif ($answer ==2)
{

include ("dbconnect.php");
$voplata=$_REQUEST['id'];

$sql= "UPDATE zakaz SET 'voplata' = 'отказано в выплате ' WHERE 'id' = '{$voplata}' ";
$r=mysql_query ($sql);

header("Location: createzakaz.php");
}
?>


где я ошибся?

Спустя 10 минут, 28 секунд (13.01.2011 - 22:58) inpost написал(а):
qaz333
Ко мне в подпись. Там написано про стили оформления запросов! Я имею ввиду последнюю подпись!

Спустя 14 часов, 38 минут, 7 секунд (14.01.2011 - 13:36) qaz333 написал(а):
Цитата (inpost @ 13.01.2011 - 19:58)
qaz333
Ко мне в подпись. Там написано про стили оформления запросов! Я имею ввиду последнюю подпись!

я почитал и вроде всё сделал как в примере, но серовно ничего не изменяет, што я ещо не исправил???


<?
if ($answer ==1)
{

include ("dbconnect.php");
$voplata=$_REQUEST['id'];

$sql= "UPDATE 'zakaz' SET 'voplata' = ' {выплачено} ' WHERE 'id' = ' ".$voplata." ' ";
$r=mysql_query ($sql);


header("Location: createzakaz.php");


}
elseif ($answer ==2)
{

include ("dbconnect.php");
$voplata=$_REQUEST['id'];

$sql= "UPDATE 'zakaz' SET 'voplata' = '{отказано в выплате} ' WHERE 'id' = ' ".$voplata." ' ";
$r=mysql_query ($sql);

header("Location: createzakaz.php");
}
?>

Спустя 3 минуты, 40 секунд (14.01.2011 - 13:39) linker написал(а):
Названия таблиц, полей в таблицах заключаются в апострофы `` а не в одинарные кавычки ''.

Спустя 23 минуты, 57 секунд (14.01.2011 - 14:03) qaz333 написал(а):
серовно ничего не работает


<?
if ($answer ==1)
{

include ("dbconnect.php");
$voplata=$_REQUEST['id'];

$sql= "UPDATE `zakaz` SET `voplata` = `выплачено` WHERE `id` = ` {$voplata} ` ";

$r=mysql_query ($sql);


header("Location: createzakaz.php");


}
elseif ($answer ==2)
{

include ("dbconnect.php");
$voplata=$_REQUEST['id'];

$sql= "UPDATE `zakaz` SET `voplata` = `отказано в выплате` WHERE `id` = ` {$voplata} ` ";
$r=mysql_query ($sql);

header("Location: createzakaz.php");
}
?>

Спустя 28 минут, 35 секунд (14.01.2011 - 14:32) linker написал(а):
Скажи в запросе
$sql= "UPDATE  `zakaz` SET `voplata` = `выплачено`  WHERE `id` = ` {$voplata} ` ";
`выплачено` есть название таблицы или название колонки в таблице? Нет вроде, так какими соображениями сие значение было заключено в апострофы? Перечитываем мой пост

Названия таблиц, полей в таблицах заключаются в апострофы `` а не в одинарные кавычки ''.

Спустя 33 минуты, 25 секунд (14.01.2011 - 15:05) quickxyan написал(а):
а что значит {$voplata} , просто интересно зачем писать скобочки, так как уже не первый раз вижу.

возможно это брать содержимое переменной?

Спустя 45 минут, 49 секунд (14.01.2011 - 15:51) qaz333 написал(а):
Цитата (quickxyan @ 14.01.2011 - 12:05)
а что значит {$voplata} , просто интересно зачем писать скобочки, так как уже не первый раз вижу.

возможно это брать содержимое переменной?

да ты прав,

на все остальные вопросы

user posted image

Спустя 3 минуты, 42 секунды (14.01.2011 - 15:55) inpost написал(а):
qaz333
Достаточно указать лишь таблицу, а не всю БД.

Спустя 30 секунд (14.01.2011 - 15:55) linker написал(а):
Уфф.
$sql= "UPDATE  `zakaz` SET `voplata` = 'выплачено'  WHERE `id` = '" . $voplata . "'";
в другом запросе аналогично

Спустя 3 часа, 24 минуты, 54 секунды (14.01.2011 - 19:20) qaz333 написал(а):
Цитата (linker @ 14.01.2011 - 12:55)
Уфф.
$sql= "UPDATE  `zakaz` SET `voplata` = 'выплачено'  WHERE `id` = '" . $voplata . "'";
в другом запросе аналогично

та пробовал я так, серовно не работает

Спустя 2 часа, 31 минута, 38 секунд (14.01.2011 - 21:52) quickxyan написал(а):

$sql = "UPDATE `zakaz` SET `voplata` = 'выплачено' WHERE `id` =$voplata";


Возможно будет выводиться предупреждение, но работать будет 100 %

Спустя 2 часа, 22 минуты, 2 секунды (15.01.2011 - 00:14) linker написал(а):
А что у тебя находится в переменной $voplata, сделай
echo $sql= "UPDATE  `zakaz` SET `voplata` = 'выплачено'  WHERE `id` = '" . $voplata . "'";
и посмотри какой у тебя результирующий запрос получается.

Спустя 15 часов, 34 минуты, 33 секунды (15.01.2011 - 15:48) qaz333 написал(а):
Цитата (quickxyan @ 14.01.2011 - 18:52)

$sql = "UPDATE `zakaz` SET `voplata` = 'выплачено' WHERE `id` =$voplata";


Возможно будет выводиться предупреждение, но работать будет 100 %

о, наконецто работает, никакого предупреждния нету,

Спустя 24 дня, 1 час, 37 минут, 11 секунд (11.02.2011 - 17:26) qaz333 написал(а):
подскажите, вот такое дело


<?
if(isset($_GET['id']))
{
include ("dbconnect.php");

$qpu = "SELECT `cat`
FROM `topkat`
where `cat` = '"
.$_GET['id']."' ";
$spu = mysql_query($qpu) or die(mysql_error());
while ($ropu = mysql_fetch_array($spu) )
{
$aaz = $ropu['cat'];
}

$qpz = "SELECT `name`,`ssilka`, `opis`
FROM `topsite`
where `kate` = '
$aaz' and `zn` = 'на проверке' ";

$spz = mysql_query($qpz) or die(mysql_error());
while ($ropz = mysql_fetch_array($spz) )
{
echo "<tr>";
echo "<td>";
echo $ropz['name'];
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td>";
echo $ropz['ssilka'];
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td>";
echo $ropz['opis'];
echo "</td>";
echo "</tr>";
}
}

else
{

и тд.


ошибка
Notice: Undefined variable: aaz in /usr/home/ma

почему? как исправить?

Спустя 18 часов, 47 минут, 1 секунда (12.02.2011 - 12:13) qaz333 написал(а):
хелп

Спустя 1 час, 5 минут, 4 секунды (12.02.2011 - 13:18) qaz333 написал(а):
о, всё я проблему решил, ошибки нету, только вот почему не выводит инфу?


<?
if(isset($_GET['id']))
{
include ("dbconnect.php");

$qpu = "SELECT `cat`
FROM `topkat`
where `id` = '"
.$_GET['id']."' ";
$spu = mysql_query($qpu) or die(mysql_error());
while ($ropu = mysql_fetch_array($spu) )
{
$aaz = $ropu['cat'];
}

$qpz = "SELECT `name`,`ssilka`, `opis`
FROM `topsite`
where `kate` = '
$aaz' and `zn` = 'на проверке' ";

$spz = mysql_query($qpz) or die(mysql_error());
while ($ropz = mysql_fetch_array($spz) )
{
echo "<tr>";
echo "<td>";
echo $ropz['name'];
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td>";
echo $ropz['ssilka'];
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td>";
echo $ropz['opis'];
echo "</td>";
echo "</tr>";
}
}

else
{
и тд.

Спустя 23 часа, 1 минута, 16 секунд (13.02.2011 - 12:19) qaz333 написал(а):
хелп

Спустя 21 час, 31 минута, 24 секунды (14.02.2011 - 09:50) linker написал(а):
qaz333
А что должно выводиться?

Спустя 6 часов, 33 минуты, 37 секунд (14.02.2011 - 16:24) Redis написал(а):
Может в запросе надо:

$qpz = "SELECT `name`,`ssilka`, `opis`
FROM `topsite`
where `kate` ='"
.$aaz."' and `zn` = 'на проверке' ";
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.