Using PHP 5.2.1 on a windows command (cli) environment I ran into a really weird bug about two days ago. Using xdebug to step through my code, the 'mysql link' resource becomes partially corrupted. What I mean is: it's still a resource, it still has the same id #, but the type shifts to 'Unknown'. I've run extensive searches through the code for all mention of the link resource variable but the only assignment is when it's set with mysql_connect(). This passed through pretty much every safety check (! null, is_resource, isset() ) and into mysql_ library functions. So I kept getting warnings saying to the effect '15 is not a valid mysql link resource' that then cascaded into errors about 1000 ticks afterwards.
So my question, has anyone heard of this happening, I've rummaged through php.net bugzilla and also googled, but have come up empty.
Pre-answers: the entire environment is dedicated to this script php.ini: all mysql limits are set to -1. The script is a daily cronscript. At ramp up, the script balloons to 192MB-240MB and 99.9% cpu utilization for the entire duration of the script which is fine because this all will be running on a dedicated machine that will be running idle when this thing executes.
The solution I came up with, is that when mysql_real_escape_string returns false, unset the resource, then reassign it from mysql_connect() then try 1 more time before throwing an exception.
Я не супер-гуру в программировании или дизайне. Я обычный человек знающий немножко PHP, немножко Java, немножко CSS, немножко дизайн. Пытаюсь по-чуть разобраться с разными CMS. К чему я это пишу? Всё просто, этими знаниями я зарабатываю до $2500 в месяц работая только дома по несколько часов в день. Ну хорошо, я вру. Этого Вы ждали?:) Я работаю не по 2 часа, а по 3-5 часов в день. Но это всё равно не 8-12 часов, как я работал раньше на дядю. И получал я за это тогда около 500 долларов.
Как добиться большей зарплаты? Наверняка большая половина здесь присутствующих работает на дядю за зарплату. И из этих людей найдется всего несколько человек которых размер этой зарплаты устраивает. Да и эти несколько человек не отказались бы получать больше. Впрочем, любой человек хочет комфортнее обустроить свой быт, лучше обеспечить семью, купить себе наконец мощный ноутбук, хорошо покушать. сделать евроремонт в квартире, или купить наконец эту самую квартиру, отдохнуть на хороших курортах и т.д. Любой человек стремиться заработать больше. Именно в этом я и хочу Вам помочь. Знаю Ваш вопрос: Зачем это лично мне? Опять же - всё просто. Там где зарабатываю я работы хватит на всех и надолго. Мне нет смысла скрывать эту тему. Сам я всё равно не справлюсь со всеми заказами. Так как заказчиков и проектов для работы очень много. Грубо говоря - хватит на всех :)
Ну и что с этим делать? Есть такой сайт - scriptlance. Точне сайтов такого свойства есть много. Но у этого есть несколько важных плюсов. Перечислю их:
этот сайт работает с гражданами бывшего СССР (с русскими, с украинцами, с бесорусами, с молдаванами, с таджиками и т.д.)
этот сайт не обманывает - т.е. когда пришло время снять оттуда заработанные деньги Вы их просто снимаете и точка. Без заморочек! На собственном опыте и опыте многих ребят из России, Украины и т.д.
этот сайт может вывести Вам деньги на e-gold а дальше в вэбмани, может вывести на Ваш банковский счет (этот вариант наиболее удобен)
этот сайт предоставляет Вам очень большое, огромное колличество проектов ежедневно. Т.е. ежедневно там появляется много новых проектов и Вам есть из чего выбирать.
Ну вот, это основные свойства, которых нет у других сайтов этого рода.
Как начать работать? Ничего сложного. Даже наоборот - всё предельно просто. Идёте по этой ссылке - регистрируетесь. Дальше:
Жмите на кнопку "Programmers" Programmers в заголовке главной странице, затем, в появившемся меню прямо под кнопкой, нажмите кнопку Sign In "Sign up"
После ввода е-майл адреса, вам приходит письмо со ссылкой, которую надо посетить для подтверждения регистрации.
После этого заполните анкету.
После этого они зачислят Вам на счет бонус - $1. Понимаю, что мало, но всё равно приятно. Иэ то только начало денег.
Что сколько стоит? Расскажу немного про цены. Рассмотрим на конкретных примерах из моей практики там (в скобках указано время потраченное на каждый проект):
Уставнавливал вордпресс на хостинг заказчика (20 минут) - $50 (у него самого не было времени на это)
Делал несложный дизайн для 10-страничного сайта (3 часа) - $175
Перевел с русского на английский небольших три статьи (20 минут) - $40
Ставил модули для Joomla на сайт заказчика (30 минут) - $90
Писал небольшой скрипт на PHP для учета продаж с сайта (1 час 40 мин) - $250
Сделал логотип (15 мин) - $30
Делали средний сайт с напарником (один день) - $1750
Писал три несложных модуля под вордпресс (5 часов) - $720
Итого каждый месяц набегает $2000-2500. Я считаю, что это хорошие деньги за такую работу. Я работаю там всего 5 месяцев. В дальнейшем буду собирать свою комманду для этого дела и брать на себя только общение с заказчиками, а саму работу будет делать комманда. Хотя можно этого не делать и просто не напрягаясь иметь $2000 в месяц. На чем зарабатывать? Большее количество заказов приходится на веб программирование (PHP, Perl, CGI, Flash и т.д.) и веб дизайн (логотипы, веб темплейты, Flash заставки и рекламные ролики).
Вот полный перечень чем можно заняться: Ajax, ASP, C/C++, CMS, Cold Fusion, Delphi, .NET, Flash, Java, Javascript, JSP, Joomla, Perl/CGI, PHP, Python, Visual Basic, Wordpress, XHTML, XML, LDAP, MySQL, MS Access, MS SQL, mSQL, Oracle, PostgreSQL, SQL, CSS, Data Entry, Graphic Design, Handheld, Links, Marketing, Multimedia, Script Installation, SEO, Security, System Admin, Translation, Website Design, Writing.
Как получить заказ? Вы называетесь "Programmer" (даже если вы дизайнер), заказчик же именуется "Webmaster". Итак, Webmaster выставляет желаемый проект с описанием на аукцион. Также, в описании проекта вы можете увидеть бюджет проекта и период действия аукциона на данный проект. Пока проект открыт, вы (Programmer) можете делать ставки - за сколько и в какой срок вы сделаете проект.
Вот несколько простых, но эффективных советов как выиграть аукцион:
Внимательно прочитайте описание проекта (задание), оцените сложность. Если вы не можете оценить проект достаточно точно, задайте уточняющие вопросы заказчику через Post Message Board (PMB)
Посмотрите портфолио заказчика - предыдущие проекты и отзывы о нём. Также, иногда очень полезно просмотреть профайлы и портфолио своих конкурентов.
Старайтесь писать по-английски как можно грамотнее.
Наличие фотографии в вашем профайле также существенно увеличивает ваши шансы заработать. Психологически, заказчику легче работать с реальным человеком.
Если у вас уже есть какие-нибудь завершённые проекты, рекомендую открыть хостинг, или даже бесплатный хостинг для демонстрации своего портфолио клиенту.
Как получить деньги?
Во-первых, деньги нужно получить от заказчика. Если вы не уверены в честности заказчика, вы можете попросить его положить деньги на escrow account для вас до начала проекта. Дело в том, что заказчик не может забрать эти деньги обратно, но при этом они ещё не у вас. Когда проект закончен, заказчик переводит деньги с escrow на ваш счёт. Сайт рекомендует этот способ как более надёжный.
Также, не запрещается договариваться о переводе денег любым другим способом удобным обоим сторонам, но, как правило, заказчикам удобнее внутренняя система. Снять деньги оттуда можно на E-Gold, чеком, банковским переводом или по системе PayPal.
Я не супер-гуру в программировании или дизайне. Я обычный человек знающий немножко PHP, немножко Java, немножко CSS, немножко дизайн. Пытаюсь по-чуть разобраться с разными CMS. К чему я это пишу? Всё просто, этими знаниями я зарабатываю до $2500 в месяц работая только дома по несколько часов в день. Ну хорошо, я вру. Этого Вы ждали?:) Я работаю не по 2 часа, а по 3-5 часов в день. Но это всё равно не 8-12 часов, как я работал раньше на дядю. И получал я за это тогда около 500 долларов.
Как добиться большей зарплаты? Наверняка большая половина здесь присутствующих работает на дядю за зарплату. И из этих людей найдется всего несколько человек которых размер этой зарплаты устраивает. Да и эти несколько человек не отказались бы получать больше. Впрочем, любой человек хочет комфортнее обустроить свой быт, лучше обеспечить семью, купить себе наконец мощный ноутбук, хорошо покушать. сделать евроремонт в квартире, или купить наконец эту самую квартиру, отдохнуть на хороших курортах и т.д. Любой человек стремиться заработать больше. Именно в этом я и хочу Вам помочь. Знаю Ваш вопрос: Зачем это лично мне? Опять же - всё просто. Там где зарабатываю я работы хватит на всех и надолго. Мне нет смысла скрывать эту тему. Сам я всё равно не справлюсь со всеми заказами. Так как заказчиков и проектов для работы очень много. Грубо говоря - хватит на всех :)
Ну и что с этим делать? Есть такой сайт - scriptlance. Точне сайтов такого свойства есть много. Но у этого есть несколько важных плюсов. Перечислю их:
этот сайт работает с гражданами бывшего СССР (с русскими, с украинцами, с бесорусами, с молдаванами, с таджиками и т.д.)
этот сайт не обманывает - т.е. когда пришло время снять оттуда заработанные деньги Вы их просто снимаете и точка. Без заморочек! На собственном опыте и опыте многих ребят из России, Украины и т.д.
этот сайт может вывести Вам деньги на e-gold а дальше в вэбмани, может вывести на Ваш банковский счет (этот вариант наиболее удобен)
этот сайт предоставляет Вам очень большое, огромное колличество проектов ежедневно. Т.е. ежедневно там появляется много новых проектов и Вам есть из чего выбирать.
Ну вот, это основные свойства, которых нет у других сайтов этого рода.
Как начать работать? Ничего сложного. Даже наоборот - всё предельно просто. Идёте по этой ссылке - регистрируетесь. Дальше:
Жмите на кнопку "Programmers" Programmers в заголовке главной странице, затем, в появившемся меню прямо под кнопкой, нажмите кнопку Sign In "Sign up"
После ввода е-майл адреса, вам приходит письмо со ссылкой, которую надо посетить для подтверждения регистрации.
После этого заполните анкету.
После этого они зачислят Вам на счет бонус - $1. Понимаю, что мало, но всё равно приятно. Иэ то только начало денег.
Что сколько стоит? Расскажу немного про цены. Рассмотрим на конкретных примерах из моей практики там (в скобках указано время потраченное на каждый проект):
Уставнавливал вордпресс на хостинг заказчика (20 минут) - $50 (у него самого не было времени на это)
Делал несложный дизайн для 10-страничного сайта (3 часа) - $175
Перевел с русского на английский небольших три статьи (20 минут) - $40
Ставил модули для Joomla на сайт заказчика (30 минут) - $90
Писал небольшой скрипт на PHP для учета продаж с сайта (1 час 40 мин) - $250
Сделал логотип (15 мин) - $30
Делали средний сайт с напарником (один день) - $1750
Писал три несложных модуля под вордпресс (5 часов) - $720
Итого каждый месяц набегает $2000-2500. Я считаю, что это хорошие деньги за такую работу. Я работаю там всего 5 месяцев. В дальнейшем буду собирать свою комманду для этого дела и брать на себя только общение с заказчиками, а саму работу будет делать комманда. Хотя можно этого не делать и просто не напрягаясь иметь $2000 в месяц. На чем зарабатывать? Большее количество заказов приходится на веб программирование (PHP, Perl, CGI, Flash и т.д.) и веб дизайн (логотипы, веб темплейты, Flash заставки и рекламные ролики).
Вот полный перечень чем можно заняться: Ajax, ASP, C/C++, CMS, Cold Fusion, Delphi, .NET, Flash, Java, Javascript, JSP, Joomla, Perl/CGI, PHP, Python, Visual Basic, Wordpress, XHTML, XML, LDAP, MySQL, MS Access, MS SQL, mSQL, Oracle, PostgreSQL, SQL, CSS, Data Entry, Graphic Design, Handheld, Links, Marketing, Multimedia, Script Installation, SEO, Security, System Admin, Translation, Website Design, Writing.
Как получить заказ? Вы называетесь "Programmer" (даже если вы дизайнер), заказчик же именуется "Webmaster". Итак, Webmaster выставляет желаемый проект с описанием на аукцион. Также, в описании проекта вы можете увидеть бюджет проекта и период действия аукциона на данный проект. Пока проект открыт, вы (Programmer) можете делать ставки - за сколько и в какой срок вы сделаете проект.
Вот несколько простых, но эффективных советов как выиграть аукцион:
Внимательно прочитайте описание проекта (задание), оцените сложность. Если вы не можете оценить проект достаточно точно, задайте уточняющие вопросы заказчику через Post Message Board (PMB)
Посмотрите портфолио заказчика - предыдущие проекты и отзывы о нём. Также, иногда очень полезно просмотреть профайлы и портфолио своих конкурентов.
Старайтесь писать по-английски как можно грамотнее.
Наличие фотографии в вашем профайле также существенно увеличивает ваши шансы заработать. Психологически, заказчику легче работать с реальным человеком.
Если у вас уже есть какие-нибудь завершённые проекты, рекомендую открыть хостинг, или даже бесплатный хостинг для демонстрации своего портфолио клиенту.
Как получить деньги?
Во-первых, деньги нужно получить от заказчика. Если вы не уверены в честности заказчика, вы можете попросить его положить деньги на escrow account для вас до начала проекта. Дело в том, что заказчик не может забрать эти деньги обратно, но при этом они ещё не у вас. Когда проект закончен, заказчик переводит деньги с escrow на ваш счёт. Сайт рекомендует этот способ как более надёжный.
Также, не запрещается договариваться о переводе денег любым другим способом удобным обоим сторонам, но, как правило, заказчикам удобнее внутренняя система. Снять деньги оттуда можно на E-Gold, чеком, банковским переводом или по системе PayPal.
Hi, folks. I've been pulling my hair out over this one. I have a class that's supposed to serve as a base class for a variety of others; it's a sort of PHP version of Rails' ActiveRecord. Object properties map to columns in an associated database table. One of the columns is hide, a column that holds either 0 or 1. If a given row has a 1 in its hide column, the framework I'm building should omit the item from display.
So, I have an is_hidden() function that returns the object's status (as a Boolean), and the method that's giving me fits is toggle_hidden(), which takes an optional argument: basically, you can "toggle the hidden-state on", toggle it off, or "just toggle it", meaning flip it from whichever state it's in to the other one.
So that method looks like this:
function toggle_hidden($state = 'toggle') { global $DBH; if (is_string($state)) { $state = strtolower($state); } # Add some syntactic sugar to make life sweet... if ($state == 'off' || $state == 'false' || $state == 'no' || $state == false) { $state = 0; } elseif ($state != 'toggle') { $state = 1; } else { $state = (int) $this->is_hidden(); $state = 1 - $state; } $sql = "UPDATE $this->_db_table SET hide = '$state' WHERE id = '$this->id'"; $dbq = mysql_query($sql); if (! $dbq) { $this->_errormsg = "Unable to set 'hide' state of $this->_objname #this->id to $state; SQL error: " . mysql_error(); return false; } return true; }
($DBH is a global database handle that's already been set up; the object properties $id, $_db_table, $_objname and $_errormsg all do exactly what it seems like they should. They're not the problem.)
If I call toggle_hidden(1) or toggle_hidden(0), I can force an object's state to hidden or visible, no problem. But if I call the method with no argument, it claims it's doing the right thing... but nothing changes.
Even worse, I wrote up this version with loads of print statements for debugging:
function toggle_hidden($state = 'toggle') { global $DBH; print "INITIAL CALL: toggle_hidden($state) \n"; if (is_string($state)) { $state = strtolower($state); } if ($state == 'off' || $state == 'false' || $state == 'no' || $state == false) { $state = 0; print "I'm forcing \$hide to $state \n"; } elseif ($state != 'toggle') { $state = 1; print "forcing \$hide to $state \n"; } else { $state = (int) $this->is_hidden(); print "state was originally $state; "; $state = 1 - $state; print "converting to $state \n"; } $sql = "UPDATE $this->_db_table SET hide = '$state' WHERE id = '$this->id'"; print "SQL Query: $sql \n"; $dbq = mysql_query($sql); if (! $dbq) { $this->_errormsg = "Unable to set 'hide' state of $this->_objname #this->id to $state; SQL error: " . mysql_error(); return false; } print "affected " . mysql_affected_rows() . " rows \n"; $sql = "SELECT id, hide FROM $this->_db_table"; # Tell me what *really* happened... print " \n$sql: \n"; $dbq = mysql_query($sql); while (list($id, $hide) = mysql_fetch_row($dbq)) { print " $id [hide] = $hide \n"; } print " \nreturning true \n"; return true; }
When I run it, it not only claims it's doing what it should; it then runs the "tell me what *really* happened" section and claims that the database now has the new values.
Except that it doesn't. So that final "SELECT id, hide FROM $this->_db_table" call is effectively returning invalid data?
Here's sample output from a run of this method.
Loaded object Practitioner id #2; hide is '1' INITIAL CALL: toggle_hidden(toggle) state was originally 1; converting to 0 SQL Query: UPDATE practitioners SET hide = '0' WHERE id = '2' affected 1 rows
Despite what the last few lines of output claim, the database has not changed; I can query the database with any other tool (including other pages from this very same framework!) and see that both rows still have 1 in their hide column.
Does anyone here have any clue what's going on, and how I can get my database queries to stop lying to me? (It seems almost like I need to commit the change, but I'm not using transactions...)
solved: Turns out there was a ini_set, mysql.trace buried in the job configuration file so that kicked off the pre-emptive explains on everything.
While debugging another issue, I had the general/slow query logs enabled and tailed. What caught me off guard and I assume this is part of the php mysql library, is that every single select query was being preceeded with EXPLAIN SELECT . I've looked through the mysql_ library docs and there is no mention of this. Direct mysql queries from the console don't have these preceeding EXPLAINS so it's got to be something unexpected inside the php code library.
I previously had mysql 3.23.49, and want to upgrade to use wordpress. I then checked my phpmyadmin page and it still shows as using mysql 3.23.49, and wordpress still won't install, saying that my mysql release is too old.
I've got a project I'm working on where results can be downloaded to a CSV file. I found the code here.
Here is my code:
$rsSearchResults = mysql_query($sql) or die(mysql_error());
$out = '';
$fields = mysql_list_fields('dataprod_a5data_com','canman');
$columns = mysql_num_fields($fields);
// Put the name of all fields
for ($i = 0; $i < $columns; $i++) {
$l=mysql_field_name($fields, $i);
$out .= '"'.$l.'",';
}
$out .="\n";
// Add all values in the table
while ($l = mysql_fetch_array($rsSearchResults)) {
for ($i = 0; $i < $columns; $i++) {
$out .='"'.$l["$i"].'",';
}
$out .="\n";
}
// Output to browser with appropriate mime type, you choose ;)
//header("Content-type: text/x-csv");
//header("Content-type: text/csv");
header("Content-type: application/csv");
header("Content-Disposition: attachment; filename=search_results.csv");
echo $out;
$currentdownloads++;
$q2 = mysql_query("UPDATE canman_users SET CurrentDownloads = '".$currentdownloads."' WHERE Username = '".$un."'");
exit;
What I am wanting to do is not have all of the columns in the downloaded file. I have tried only including the columns I want in the select statement but all the data ends up being moved over by however many columns are missing - for example, the BusinessName column data ends up under the ID column heading. Is there anyway that I can exclude the certain columns when it's pulling out the column names and adding them to $out?
I can't seem to figure out this problem for the life of me.
The error is this: Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /opt/lampp/htdocs/_projects/medievalbattles/current/v8_r3/httpdocs/access.php on line 139
LIne 139 is: $servername = $row["alt_name"];
Even if I comment out this entire portion of code, the error still exits (even after cleaning my entire browser cache and restarting my computer five times). I've tried cleaning my Smarty template cache, but that didn't help.
// was inevitable to requery this. maybe use memcached? $count = 1; $sql = "SELECT alt_name, databasename FROM ".$_MB->db_name.".servers"; $res = mysql_query($sql, $_MB->connection) or die(mysql_error()); while ($row = mysql_fetch_assoc($res)) { $server_name = $row["alt_name"]; $server_database = $row["databasename"];
if ($_POST["login"]) { $game = $_POST["game"]; $_MB->use_db = $_POST["db"]; $non_bar_clock = date("M d, y - h:ia"); $clock = $_MB->month." ".$_MB->time;
$sql = "SELECT id FROM ".$_MB->use_db.".users WHERE accountid = '".$_SESSION["account_id"]."'"; $res = mysql_query($sql, $_MB->connection) or die(mysql_error()); if (mysql_num_rows($res)) { $row = mysql_fetch_assoc($res); $userid = $row["id"];
$sql = "SELECT tpw FROM ".$_MB->db_name.".servers WHERE id = '".$game."'"; $res = mysql_query($sql, $_MB->connection) or die(mysql_error()); $row = mysql_fetch_assoc($res); $ticks_per_week = $row["tpw"];
$sql = "UPDATE ".$_MB->use_db.".user_aids SET timer = '".$ticks_per_week."' WHERE user_id = '".$userid."'"; mysql_query($sql, $_MB->connection) or die(mysql_error());
$sql = "UPDATE ".$_MB->use_db.".users SET online = 'y', lastlogin = '".$clock."' WHERE id = '".$userid."'"; mysql_query($sql, $_MB->connection) or die(mysql_error());
$sql = "INSERT INTO ".$_MB->use_db.".user_online (id, userid, time, ip) VALUES ('', '".$userid."', '".$clock."', '".$_SERVER["REMOTE_ADDR"]."')"; mysql_query($sql, $_MB->connection) or die(mysql_error());
$_SESSION["cdbname"] = $_MB->use_db; $_SESSION["cloggedin"] = "yes"; redirectuser("game/overview.php", ""); } else redirectuser("access.php", "You do not have an empire on that server."); }
if ($_POST["gameregistration"]) { // Empire creation $game = $_POST["game"]; $_MB->use_db = $_POST["db"]; $sql = "SELECT * FROM ".$_MB->db_name.".servers WHERE id = '".$game."'"; $res = mysql_query($sql, $_MB->connection) or die(mysql_error()); if (mysql_num_rows($res)) { $sql = "SELECT * FROM ".$_MB->use_db.".users WHERE accountid = '".$_SESSION["account_id"]."'"; $res = mysql_query($sql, $_MB->connection) or die(mysql_error()); if (!mysql_num_rows($res)) { $_SMARTY->assign("create_empire", TRUE); $_SMARTY->assign("db", $_MB->use_db); $_SMARTY->assign("game", $game);
$sql = "SELECT id, name FROM ".$_MB->db_name.".races ORDER BY name ASC"; $res =mysql_query($sql, $_MB->connection) or die(mysql_error()); $row = mysql_fetch_assoc($res); $_SMARTY->assign("races", $row);
$sql = "SELECT id, name FROM ".$_MB->db_name.".classes ORDER BY name ASC"; $res =mysql_query($sql, $_MB->connection) or die(mysql_error()); $row = mysql_fetch_assoc($res); $_SMARTY->assign("classes", $row); } else redirectuser("access.php", "You already have an empire on that server."); } } else { $sql = "SELECT id, alt_name, databasename, gametype FROM ".$_MB->db_name.".servers"; $res = mysql_query($sql, $_MB->connection) or die(mysql_error()); $row = mysql_fetch_assoc($res); $_SMARTY->assign("server_list", $row);
// was inevitable to requery this. maybe use memcached? $count = 1; $sql = "SELECT id, alt_name, databasename, gametype FROM ".$_MB->db_name.".servers"; $res = mysql_query($sql, $_MB->connection) or die(mysql_error()); while ($row = mysql_fetch_assoc($res)) { $server_alt_name = $row["alt_name"]; $_MB->use_db = $row["databasename"];
$sql2 = "SELECT serveractive FROM ".$_MB->use_db.".game_info"; $res2 =mysql_query($sql2, $_MB->connection) or die(mysql_error()); $row2 = mysql_fetch_assoc($res2); $server_data[$server_alt_name]["active"] = $row2["serveractive"];
$sql2 = "SELECT empirename FROM ".$_MB->use_db.".users WHERE accountid = '".$_SESSION["account_id"]."'"; $res2 =mysql_query($sql2, $_MB->connection) or die(mysql_error()); $row2 = mysql_fetch_assoc($res2); $server_data[$server_alt_name]["empire"] = $row2["empirename"];
$sql = "SELECT id, alt_name, databasename, gametype FROM ".$_MB->db_name.".servers"; $res = mysql_query($sql, $_MB->connection) or die(mysql_error()); $row = mysql_fetch_assoc($res); $_SMARTY->assign("server_list", $row);
It is supposed to return whatever rows are in the servers table, but for some reason it only returns the first. I've executed the SQL statement via MySQL directly and it acts as it should. Any ideas why it's acting wonky?
I've wanted to do this for awhile but I'm not sure where to start. I want to write a script that takes emails from my pop account and inserts them in to a mysql table. I found xeoport doing some Google searches but it seems the site is down.
this might be way too much info, but please bear with me! the end result is, i need to do a query that joins tables that exist in different databases on different servers. how do i do that?
anyway, i'm building a site for a real estate guy who's hosted through 1and1. they only allow you to have 100mb of data per database. he's given me ~500mb of property data and ~100mb of property tax data. i split up the property data and kind of spanned it across five db's, then put the tax data in a sixth. each database you create with 1and1 gets dropped on a random server. i'm able to search property data by checking db1, then db2, and so on... and appending the results. i connect to them all like so
//connect to property records 1 db $props1_link = mysql_connect('some_server1','name','pwd') or die ("failed to connect to server 1."); $props1_db = mysql_select_db('db_name1',$props1_link) or die("unable to select property records 1 database: ".mysql_error());
//connect to property records 2 db $props2_link = mysql_connect('some_server2','name','pwd') or die ("failed to connect to server 2."); $props2_db = mysql_select_db('db_name2',$props2_link) or die("unable to select property records 2 database: ".mysql_error());
//connect to taxes db $tax_link = mysql_connect('some_server','name','pwd') or die ("failed to connect to taxes server."); $tax_db = mysql_select_db('tax_db',$tax_link) or die("unable to select tax database: ".mysql_error());
i have one database containing one table on each of the six servers.
i perform a search by constructing the query and looping through the $props... connections, doing this for each
$res = mysql_query($sql,$props1_link) or die($sql.": ".mysql_error());
i dump the results to a csv file, then move on to the next db, append those results, move on, etc., until we have one big csv which i pass to the browser. that all works fine if i only need to query properties.
my problem is that some of his queries need to join the properties table/s with the tax records table. simplified, something like
SELECT p.`name` FROM `properties` AS `p`, `taxes` AS `t` WHERE p.`tax_id` = t.`id`
i've done things like this before with multiple db's on the same server; but here i need to use multiple $links to multiple servers in order perform the query. is that possible? (beyond doing multiple queries to the different db's than comparing results manually.)
regarding my previous problem, i called 1and1 and they said there's no way to get my databases on the same server. whatever process creates your databases through their control panel actually goes out of its way to distribute them on different servers. the only way around this - to exceed the 100mb limit or have multiple db's on the same server - is to rent your own server on a dedicated hosting plan for a minimum of $99/month. no thanks!
so i'm going to switch hosts. i need a host that doesn't limit database sizes beyond overall storage limits, and allows ssh access even with their cheap accounts. cron jobs would be nice but aren't necessary. php5 and mysql and a few gb's of storage.
i don't want to use dreamhost because i've heard too many bad things.
Hello! I've got a problem. I was sent to another part of my plant and there is no networking between some offices. So I had to make my database local and keep it in MS Access. But as I used to create applications in c# ( using SQL Server 2000) you can imagine what i feel... I faced the problem of multisearching ( search by different parameters up to 25 and we don't know exact quantity of them). I didn't have such problems yet ( cause i got stored procedures on my server) and i didn't care for the quantity of parameters (fields for search). But now... How to organize multisearching if my database is storing in Access?
In short, could you help me with any information..As I feel
aspnet_regsql cannot connect to the server (error 26). I have setup TCP and Pipes, also allowed server exe in windows firewall. I have SQL EXPRESS 2005, it works good with asp .net. Does anybody know?
I'm trying to call a DTS package from a stored procedure. I get the following error:
Error string: ActiveX Scripting was not able to initialize the script execution engine.
The package runs correctly when I run it straight from Enterprise Manager. I have reregistered the DLLs suggested in the solution at sqldts.com and get the same error. I've pulled out all the variables and distilled the command to:
(The package at present contains nothing but an activex script task whose only line of substance is a messagebox displaying the value of the passed variable.)
Anyone know of any alternative reasons why this error would appear? The Intarwebz are being somewhat unhelpful, as everything seems to point back to re-registering the DLLs. TIA.
I have MySQL running on a server with a password-protected root user. Is there any way to call the 'mysqladmin shutdown' command without having to provide the password parameter in clear-text?
I swore there was an open source package to do this, but I wanted to monitor in 30 minute increments, the state of a server dedicated to MySQL. Generally its completely dedicated to MySQL, but it also has a number of IDX aggregator scripts that run throughout the day, some of which take up a considerable amount of resources to transform/normalize it. Instead of just giving MySQL everything (resource wise), I wanted to incrementally move up the caches and allocations until its using only what it needs to be at its best.
If there isn't an open source package, I was thinking a cronscript on the machine would work out, but wanted to see if I could save myself the time.
I have two tables "Clients" and "ShippingAddresses" that I am trying to join to output two separate form dropdown boxes. Unfortunately I am only now beginning to use the Join command and so I'm running into issues, and could really use some assistance. Below the cut is my old code:
$grabClients = mysql_query("SELECT Client_ID, Client_Company FROM Clients ORDER BY Client_Company ASC") or die(mysql_error());
if (mysql_num_rows($grabClients) == 0) {
$clientList = "";
$shippingList = "";
} else {
$clientList = "";
$shippingList = "";
while ($loopClients = mysql_fetch_array($grabClients)) {
$grabShipping = mysql_query("SELECT Address_ID, Address_Company, Client_ID FROM ShippingAddresses WHERE Client_ID = '$loopClients[Client_ID]' ORDER BY Address_ID ASC") or die(mysql_error());
if (mysql_num_rows($grabShipping) == 0) {
$clientList .= "";
} else {
$clientList .= "";
$shippingList .= "";
}
}
}
This code, which probably makes many of you cry inside, outputs two variables full of form options. Variable 1 $clientList is just a simple list of clients. Variable 2 $shippingList is a bit more complex in that it shows an OPTGROUP with a label of the Client, and then a listing of all secondary shipping addresses associated with that client.
My attempts at joining were pretty much failures - in two particular areas.
1.) How do I prevent $clientList from outputting duplicate entries for Client names? I have 2 clients and 2 Addresses - both addresses belong to a single client. So on the $clientList it's outputting that client twice.
2.) How do I loop so that for each Address_ID it outputs a new option value? My attempts result in a very odd PHP error about memory limits being exceeded; so I'm sure my loop format is just... broken.