1. Weird PHP + MySQL resource error

    Date: 03/08/07 (PHP Community)    Keywords: php, mysql, sql, google

    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.

    Source: http://community.livejournal.com/php/549713.html

  2. Как я, умея немножко программировать и дизайнить, зарабатываю до $2500 в месяц работая только дома

    Date: 03/10/07 (See my site)    Keywords: cms, php, mysql, css, html, xml, asp, sql, java, jsp, postgresql, security, web, seo

    Приветствую Вас!

    Я не супер-гуру в программировании или дизайне. Я обычный человек знающий немножко PHP, немножко Java, немножко CSS, немножко дизайн. Пытаюсь по-чуть разобраться с разными CMS. К чему я это пишу?  Всё просто, этими знаниями я зарабатываю до $2500 в месяц работая только дома по несколько часов в день. Ну хорошо, я вру. Этого Вы ждали?:) Я работаю не по 2 часа, а по 3-5 часов в день. Но это всё равно не 8-12 часов, как я работал раньше на дядю. И получал я за это тогда около 500 долларов.

    Как добиться большей зарплаты?
    Наверняка большая половина здесь присутствующих работает на дядю за зарплату. И из этих людей найдется всего несколько человек которых размер этой зарплаты устраивает. Да и эти несколько человек не отказались бы получать больше. Впрочем, любой человек хочет комфортнее обустроить свой быт, лучше обеспечить семью, купить себе наконец мощный ноутбук, хорошо покушать. сделать евроремонт в квартире, или купить наконец эту самую квартиру, отдохнуть на хороших курортах и т.д. Любой человек стремиться заработать больше. Именно в этом я и хочу Вам помочь. Знаю Ваш вопрос: Зачем это лично мне? Опять же - всё просто.  Там где зарабатываю я работы хватит на всех и надолго. Мне нет смысла скрывать эту тему. Сам я всё равно не справлюсь со всеми заказами. Так как заказчиков и проектов для работы очень много. Грубо говоря - хватит на всех :)


    Ну и что с этим делать?
    Есть такой сайт - scriptlance. Точне сайтов такого свойства есть много. Но у этого есть несколько важных плюсов. Перечислю их:

    1. этот сайт работает с гражданами бывшего СССР (с русскими, с украинцами, с бесорусами, с молдаванами, с таджиками и т.д.)
    2. этот сайт не обманывает - т.е. когда пришло время снять оттуда заработанные деньги Вы их просто снимаете и точка. Без заморочек! На собственном опыте и опыте многих ребят из России, Украины и т.д.
    3. этот сайт может вывести Вам деньги на e-gold а дальше в вэбмани, может вывести на Ваш банковский счет (этот вариант наиболее удобен)
    4. этот сайт предоставляет Вам очень большое, огромное колличество проектов ежедневно. Т.е. ежедневно там появляется много новых проектов и Вам есть из чего выбирать.
    Ну вот, это основные свойства, которых нет у других сайтов этого рода.

    Как начать работать?
    Ничего сложного. Даже наоборот - всё предельно просто. Идёте по этой ссылке - регистрируетесь. Дальше:
    1. Жмите на кнопку "Programmers" Programmers в заголовке главной странице, затем, в появившемся меню прямо под кнопкой, нажмите кнопку Sign In "Sign up"
    2. После ввода е-майл адреса, вам приходит письмо со ссылкой, которую надо посетить для подтверждения регистрации.
    3. После этого заполните анкету.
    4. После этого они зачислят Вам на счет бонус - $1. Понимаю, что мало, но всё равно приятно. Иэ то только начало денег.

    Что сколько стоит?
    Расскажу немного про цены. Рассмотрим на конкретных примерах из моей практики там (в скобках указано время потраченное на каждый проект):
    1. Уставнавливал вордпресс на хостинг заказчика (20 минут) - $50 (у него самого не было времени на это)
    2. Делал несложный дизайн для 10-страничного сайта (3 часа) - $175
    3. Перевел с русского на английский небольших три статьи (20 минут) - $40
    4. Ставил модули для Joomla на сайт заказчика (30 минут) - $90
    5. Писал небольшой скрипт на PHP для учета продаж с сайта (1 час 40 мин) - $250
    6. Сделал логотип (15 мин) - $30
    7. Делали средний сайт с напарником (один день) - $1750
    8. Писал три несложных модуля под вордпресс (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) можете делать ставки - за сколько и в какой срок вы сделаете проект.

    Вот несколько простых, но эффективных советов как выиграть аукцион:
    1. Внимательно прочитайте описание проекта (задание), оцените сложность. Если вы не можете оценить проект достаточно точно, задайте уточняющие вопросы заказчику через Post Message Board (PMB)
    2. Посмотрите портфолио заказчика - предыдущие проекты и отзывы о нём. Также, иногда очень полезно просмотреть профайлы и портфолио своих конкурентов.
    3. Старайтесь писать по-английски как можно грамотнее.
    4. Наличие фотографии в вашем профайле также существенно увеличивает ваши шансы заработать. Психологически, заказчику легче работать с реальным человеком.
    5. Если у вас уже есть какие-нибудь завершённые проекты, рекомендую открыть хостинг, или даже бесплатный хостинг для демонстрации своего портфолио клиенту.

    Как получить деньги?

    Во-первых, деньги нужно получить от заказчика. Если вы не уверены в честности заказчика, вы можете попросить его положить деньги на escrow account для вас до начала проекта. Дело в том, что заказчик не может забрать эти деньги обратно, но при этом они ещё не у вас. Когда проект закончен, заказчик переводит деньги с escrow на ваш счёт. Сайт рекомендует этот способ как более надёжный.

    Также, не запрещается договариваться о переводе денег любым другим способом удобным обоим сторонам, но, как правило, заказчикам удобнее внутренняя система. Снять деньги оттуда можно на E-Gold, чеком, банковским переводом или по системе PayPal.

    Я рекомендую банковский перевод, но при маленьких суммах, выгоднее будет E-Gold. E-Gold можно легко перевести в Webmoney, а Webmoney уже можно перевести на обычный счёт. Если же сумма будет более $500, проще и дешевле будет сделать перевод денег на свой валютный счет в банке в USD.


    P.S. Кто будет регистрироваться по этим ссылкам может полностью рассчитывать на мою поддержку. В чем она будет выражаться:
    1. отвечу на все вопросы
    2. помогу зарегистрироваться, если есть проблемы
    3. буду подкидывать Вам постоянно новых заказчиков, так как у меня их уже много и я сам не справлясь со всеми поступающими заказами
    4. помогу определиться как лучше и куда обратить виртуальные деньги в наличность
    5. да и всячески буду Вам помогать


    Вот и всё.
    Регистрируемся, господа!

    Source: http://community.livejournal.com/see_my_site/103737.html

  3. Как я, умея немножко программировать и дизайнить, зарабатываю до $2500 в месяц работая только дома

    Date: 03/10/07 (MySQL Communtiy)    Keywords: cms, php, mysql, css, html, xml, asp, sql, java, jsp, postgresql, security, web, seo

    Приветствую Вас!

    Я не супер-гуру в программировании или дизайне. Я обычный человек знающий немножко PHP, немножко Java, немножко CSS, немножко дизайн. Пытаюсь по-чуть разобраться с разными CMS. К чему я это пишу?  Всё просто, этими знаниями я зарабатываю до $2500 в месяц работая только дома по несколько часов в день. Ну хорошо, я вру. Этого Вы ждали?:) Я работаю не по 2 часа, а по 3-5 часов в день. Но это всё равно не 8-12 часов, как я работал раньше на дядю. И получал я за это тогда около 500 долларов.

    Как добиться большей зарплаты?
    Наверняка большая половина здесь присутствующих работает на дядю за зарплату. И из этих людей найдется всего несколько человек которых размер этой зарплаты устраивает. Да и эти несколько человек не отказались бы получать больше. Впрочем, любой человек хочет комфортнее обустроить свой быт, лучше обеспечить семью, купить себе наконец мощный ноутбук, хорошо покушать. сделать евроремонт в квартире, или купить наконец эту самую квартиру, отдохнуть на хороших курортах и т.д. Любой человек стремиться заработать больше. Именно в этом я и хочу Вам помочь. Знаю Ваш вопрос: Зачем это лично мне? Опять же - всё просто.  Там где зарабатываю я работы хватит на всех и надолго. Мне нет смысла скрывать эту тему. Сам я всё равно не справлюсь со всеми заказами. Так как заказчиков и проектов для работы очень много. Грубо говоря - хватит на всех :)


    Ну и что с этим делать?
    Есть такой сайт - scriptlance. Точне сайтов такого свойства есть много. Но у этого есть несколько важных плюсов. Перечислю их:

    1. этот сайт работает с гражданами бывшего СССР (с русскими, с украинцами, с бесорусами, с молдаванами, с таджиками и т.д.)
    2. этот сайт не обманывает - т.е. когда пришло время снять оттуда заработанные деньги Вы их просто снимаете и точка. Без заморочек! На собственном опыте и опыте многих ребят из России, Украины и т.д.
    3. этот сайт может вывести Вам деньги на e-gold а дальше в вэбмани, может вывести на Ваш банковский счет (этот вариант наиболее удобен)
    4. этот сайт предоставляет Вам очень большое, огромное колличество проектов ежедневно. Т.е. ежедневно там появляется много новых проектов и Вам есть из чего выбирать.
    Ну вот, это основные свойства, которых нет у других сайтов этого рода.

    Как начать работать?
    Ничего сложного. Даже наоборот - всё предельно просто. Идёте по этой ссылке - регистрируетесь. Дальше:
    1. Жмите на кнопку "Programmers" Programmers в заголовке главной странице, затем, в появившемся меню прямо под кнопкой, нажмите кнопку Sign In "Sign up"
    2. После ввода е-майл адреса, вам приходит письмо со ссылкой, которую надо посетить для подтверждения регистрации.
    3. После этого заполните анкету.
    4. После этого они зачислят Вам на счет бонус - $1. Понимаю, что мало, но всё равно приятно. Иэ то только начало денег.

    Что сколько стоит?
    Расскажу немного про цены. Рассмотрим на конкретных примерах из моей практики там (в скобках указано время потраченное на каждый проект):
    1. Уставнавливал вордпресс на хостинг заказчика (20 минут) - $50 (у него самого не было времени на это)
    2. Делал несложный дизайн для 10-страничного сайта (3 часа) - $175
    3. Перевел с русского на английский небольших три статьи (20 минут) - $40
    4. Ставил модули для Joomla на сайт заказчика (30 минут) - $90
    5. Писал небольшой скрипт на PHP для учета продаж с сайта (1 час 40 мин) - $250
    6. Сделал логотип (15 мин) - $30
    7. Делали средний сайт с напарником (один день) - $1750
    8. Писал три несложных модуля под вордпресс (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) можете делать ставки - за сколько и в какой срок вы сделаете проект.

    Вот несколько простых, но эффективных советов как выиграть аукцион:
    1. Внимательно прочитайте описание проекта (задание), оцените сложность. Если вы не можете оценить проект достаточно точно, задайте уточняющие вопросы заказчику через Post Message Board (PMB)
    2. Посмотрите портфолио заказчика - предыдущие проекты и отзывы о нём. Также, иногда очень полезно просмотреть профайлы и портфолио своих конкурентов.
    3. Старайтесь писать по-английски как можно грамотнее.
    4. Наличие фотографии в вашем профайле также существенно увеличивает ваши шансы заработать. Психологически, заказчику легче работать с реальным человеком.
    5. Если у вас уже есть какие-нибудь завершённые проекты, рекомендую открыть хостинг, или даже бесплатный хостинг для демонстрации своего портфолио клиенту.

    Как получить деньги?

    Во-первых, деньги нужно получить от заказчика. Если вы не уверены в честности заказчика, вы можете попросить его положить деньги на escrow account для вас до начала проекта. Дело в том, что заказчик не может забрать эти деньги обратно, но при этом они ещё не у вас. Когда проект закончен, заказчик переводит деньги с escrow на ваш счёт. Сайт рекомендует этот способ как более надёжный.

    Также, не запрещается договариваться о переводе денег любым другим способом удобным обоим сторонам, но, как правило, заказчикам удобнее внутренняя система. Снять деньги оттуда можно на E-Gold, чеком, банковским переводом или по системе PayPal.

    Я рекомендую банковский перевод, но при маленьких суммах, выгоднее будет E-Gold. E-Gold можно легко перевести в Webmoney, а Webmoney уже можно перевести на обычный счёт. Если же сумма будет более $500, проще и дешевле будет сделать перевод денег на свой валютный счет в банке в USD.


    P.S. Кто будет регистрироваться по этим ссылкам может полностью рассчитывать на мою поддержку. В чем она будет выражаться:
    1. отвечу на все вопросы
    2. помогу зарегистрироваться, если есть проблемы
    3. буду подкидывать Вам постоянно новых заказчиков, так как у меня их уже много и я сам не справлясь со всеми поступающими заказами
    4. помогу определиться как лучше и куда обратить виртуальные деньги в наличность
    5. да и всячески буду Вам помогать


    Вот и всё.
    Регистрируемся, господа!

    Source: http://community.livejournal.com/mysql/110852.html

  4. MySQL Functions Flat-Out Lying to Me

    Date: 03/11/07 (PHP Community)    Keywords: php, mysql, database, sql

    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

    SELECT id, hide FROM practitioners:
         1 [hide] = 1
         2 [hide] = 0

    returning true


    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...)

    Source: http://community.livejournal.com/php/551083.html

  5. Unexpected EXPLAIN's with php & mysql

    Date: 03/14/07 (PHP Community)    Keywords: php, mysql, sql

    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.

    Source: http://community.livejournal.com/php/551962.html

  6. Stupid Error

    Date: 03/15/07 (PHP Community)    Keywords: php, mysql, sql, apache

    Can someone point out what I am not seeing here?

    I am using WAMP (Winblows-Apache-MySQL-PHP) on a server that I am forced to work on. I uncommented the mod_rewrite line in httpd.conf.

    From php_info():

    Loaded Modules  
    
    core mod_win32 mpm_winnt http_core mod_so mod_php5 mod_actions mod_alias mod_asis 
    mod_auth_basic mod_authn_default mod_authn_file mod_authz_default mod_authz_groupfile
    mod_authz_host mod_authz_user mod_autoindex mod_cgi mod_dir mod_env mod_imagemap
    mod_include mod_isapi mod_log_config mod_mime mod_negotiation mod_rewrite mod_setenvif mod_userdir


    AllowOverride is set to All by default, which means that the server will indeed look for .htaccess files.

    To test, I set up a dummy .htaccess file, which is in the root dir:

    Options +FollowSymlinks
    RewriteEngine on
    RewriteBase /
    RewriteRule ^page/([A-Za-z-]+)$ /index.php?test=$1 [QSA,L]
    


    And the end result is a 404 error. I've tried every possible combo of rewrite syntax, rules, conditions, etc.

    Does anyone have any ideas here?? I've never tried mod_rewrite on winblows, but the OS shouldn't matter as long as I'm running Apache and not IIS.

    Source: http://community.livejournal.com/php/552343.html

  7. Cardinality

    Date: 03/16/07 (MySQL Communtiy)    Keywords: mysql, sql

    Wiki tells me:

    In mathematics, the cardinality of a set is a measure of the "number of elements of the set".

    So -- I assigned an index to an indicator field when a table was created:

    Keyname      Type      Cardinality    Field
    infant       INDEX     1              infant
    
    Now...
    mysql> SELECT DISTINCT(infant) FROM table;
    +----------+
    |  infant  |
    +----------+
    | NULL     |
    | A        |
    | B        |
    | C        |
    | U        |
    +----------+
    5 rows in set (0.09 sec)

    Shouldn't the cardinality of "infant" be 5? 

    Source: http://community.livejournal.com/mysql/111487.html

  8. Upgrading on Debian

    Date: 03/16/07 (MySQL Communtiy)    Keywords: php, mysql, sql

    Howdy,

    I'm in need of some help. I thought I just updated mysql on my Debian server, but apparently I'm having some sort of problem. Here's what I did:

    edited etc/apt/sources.list to include the line deb http://http.us.debian.org/debian/stable main

    apt-get update
    apt-get upgrade mysql-dfsg-5.0

    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.

    Is there a step I'm missing?

    Thanks. :)

    Source: http://community.livejournal.com/mysql/111950.html

  9. Downloading data

    Date: 03/16/07 (MySQL Communtiy)    Keywords: mysql, rss, browser, sql

    [edit] - solved in comments

    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?

    Thanks!

    Source: http://community.livejournal.com/mysql/111700.html

  10. Anomaly.

    Date: 03/17/07 (PHP Community)    Keywords: php, mysql, browser, database, sql

    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"];

    $sql2 = "SELECT serverstart, tickstart, serverend, round FROM ".$server_database.".game_info";
    $res2 = mysql_query($sql2, $_MB->connection) or die(mysql_error());
    $row2 = mysql_fetch_assoc($res2);
    $time_data[$server_name]["serverstart"] = $row2["serverstart"];
    $time_data[$server_name]["tickstart"] = $row2["tickstart"];
    $time_data[$server_name]["serverend"] = $row2["serverend"];
    $time_data[$server_name]["round"] = $row2["round"];

    $count++;
    }


    Please help.

    $verifylogin = "yes";
    include("header.php");

    $sql = "SELECT name, prestige, rank, kills, verified FROM ".$_MB->db_name.".accounts WHERE id = '".$_SESSION["account_id"]."'";
    $res = mysql_query($sql, $_MB->connection) or die(mysql_error());
    $row = mysql_fetch_assoc($res);
    $_SMARTY->assign("account_data", $row);

    //if ($user_verified != "y")
    //    $_MB->redirectuser("user_validate.php", "");

    if ($_SESSION["successful_reg"] == "1")
    {
        unset($_SESSION["successful_reg"]);
        unset($_SESSION["msg"]);
        $_SESSION["cdbname"] = $cdbname;
        $_SESSION["cloggedin"] = "yes";
        $_SESSION["loggedin"] = 1;

        header("Refresh: 5; game/overview.php");
        exit();    
    }
    else
    {
        $_SMARTY->assign("msg", $_MB->resultmessage());
        unset($_SESSION["msg"]);

        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"];

    `            $count++;
            }

            $_SMARTY->assign("server_loop_max", $count);
            $_SMARTY->assign("server_data", $server_data);
        }

        $sql = "SELECT alt_name, databasename FROM ".$_MB->db_name.".servers";
        $res = mysql_query($sql, $_MB->connection) or die(mysql_error());
        $_SMARTY->assign("server_time", mysql_fetch_assoc($res));   

        // 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"];

            $sql2 = "SELECT serverstart, tickstart, serverend, round FROM ".$server_database.".game_info";
            $res2 = mysql_query($sql2, $_MB->connection) or die(mysql_error());
            $row2 = mysql_fetch_assoc($res2);
                $time_data[$server_name]["serverstart"] = $row2["serverstart"];
                $time_data[$server_name]["tickstart"] = $row2["tickstart"];
                $time_data[$server_name]["serverend"] = $row2["serverend"];
                $time_data[$server_name]["round"] = $row2["round"];

            $count++;
        }
           
        $_SMARTY->assign("time_loop_max", $count);
        $_SMARTY->assign("time_data", $time_data);
    }

    $_SMARTY->display("pages/access.tpl");

    include("footer.php");
    ?>

    Source: http://community.livejournal.com/php/552904.html

  11. MySQL Problems

    Date: 03/18/07 (PHP Community)    Keywords: mysql, database, sql

    I have the following piece of code:

    $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?

    Source: http://community.livejournal.com/php/553452.html

  12. pop to mysql

    Date: 03/18/07 (PHP Community)    Keywords: mysql, sql, google

    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.

    Have suggestions?

    Source: http://community.livejournal.com/php/553025.html

  13. join between two databases

    Date: 03/18/07 (PHP Community)    Keywords: mysql, browser, database, sql

    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.)

    Source: http://community.livejournal.com/php/553672.html

  14. another host post!

    Date: 03/19/07 (PHP Community)    Keywords: php, mysql, database, sql, hosting

    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.

    Source: http://community.livejournal.com/php/553852.html

  15. Help my regressing (ADO + MS Access)

    Date: 03/19/07 (C Sharp)    Keywords: database, sql



    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 Скромно так...

    Thanks beforehand

    Source: http://community.livejournal.com/csharp/82235.html

  16. SQL SERVER 2000 setup problem

    Date: 03/21/07 (SQL Server)    Keywords: asp, sql

    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?

    Source: http://community.livejournal.com/sqlserver/56916.html

  17. Not able to initialize the script engine.

    Date: 03/22/07 (SQL Server)    Keywords: sql, web

    SQL2K.

    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:

    EXEC master..xp_cmdshell 'DTSRun /S "EDISON" /U "sa" /P "--------" /N "VariablePassTest"

    ...and I still get the error.

    (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.

    Source: http://community.livejournal.com/sqlserver/57176.html

  18. Secure shutdown

    Date: 03/30/07 (MySQL Communtiy)    Keywords: mysql, sql

    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?

    Thanks.

    Source: http://community.livejournal.com/mysql/112372.html

  19. MySQL performance/state monitoring and recording tools

    Date: 04/01/07 (MySQL Communtiy)    Keywords: mysql, sql

    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.

    Source: http://community.livejournal.com/mysql/112479.html

  20. MySQL Join question

    Date: 04/03/07 (PHP Community)    Keywords: php, mysql, sql

    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 .= "";
            
          while ($loopShipping = mysql_fetch_array($grabShipping)) {
            $shippingList .= "";
          }
        
          $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.

    Source: http://community.livejournal.com/php/558380.html

Previous page  ||  Next page


antivirus | apache | asp | blogging | browser | bugtracking | cms | crm | css | database | ebay | ecommerce | google | hosting | html | java | jsp | linux | microsoft | mysql | offshore | offshoring | oscommerce | php | postgresql | programming | rss | security | seo | shopping | software | spam | spyware | sql | technology | templates | tracker | virus | web | xml | yahoo | home