Tyler,
It must be something weird with your NT version of MySQL, you might try asking on
the MySQL list, or checking the bug list on mysql.com. I have an even older version
here on 95, that doesn't display any of those problems.
Here's the code I used with it's output (no duplicates, I checked). Notice that I
did have to change the CREATE TABLE to meet 3.21.29a-gamma restrictions.
You might try changing the passcode to an int, and tacking the 'P' on the front in
your application. Not sure if that's possible...
John
<?php /* testdb.php */
/*
Win95 OSR2, Xitami v2.4d6
PHP Version 4.0.2, Zend Engine v1.0.2, Zend Optimizer v0.99
MySQL Version: MySQL 3.21.29a-gamma
MyISAM only - Max key length is 256 = 11 + 245
CREATE DATABASE testdb;
CREATE TABLE passcodes (
id int(11) NOT NULL auto_increment,
passcode varchar(255) NOT NULL default '',
PRIMARY KEY (id),
KEY idpass (id,passcode(245))
);
*/
error_reporting(E_ALL);
set_time_limit (0);
if (!$connection = mysql_connect('localhost','root','*********'))
die ("Can't connect to server: ". mysql_error());
if (!$db = mysql_select_db('testdb', $connection))
die ("Can't select database testdb: ". mysql_error());
if (!mysql_query("DELETE FROM passcodes"))
die ('Delete Failed: '. mysql_error());
$value1 = 1000000;
$value2 = 1223109;
for($i=$value1; $i<=$value2; $i++) {
if (!mysql_query("INSERT INTO passcodes (passcode) VALUES ('P$i')"))
die ("INSERT failed at $i: ".mysql_error());
}
echo 'INSERTs completed.<br><br>';
if (!$qid = mysql_query("SELECT id,passcode FROM passcodes ORDER BY passcode DESC
LIMIT 10"))
die ("SELECT failed: ". mysql_error());
while ($arr = mysql_fetch_array($qid))
echo "$arr[0]: $arr[1]<br>\n";
if (!mysql_close($connection))
die ("Can't close connection: ". mysql_error());
?>
And it's output:
INSERTs completed.
223110: P1223109
223109: P1223108
223108: P1223107
223107: P1223106
223106: P1223105
223105: P1223104
223104: P1223103
223103: P1223102
223102: P1223101
223101: P1223100
>Hi John,
>
>MySQL Version: MySQL 3.23.44-nt
>
>SQL:
>CREATE TABLE passcodes (
> id int(11) NOT NULL auto_increment,
> passcode varchar(255) NOT NULL default '',
> PRIMARY KEY (id),
> KEY id (id,passcode)
>) TYPE=MyISAM;
>
>I'm beginning to think it's a MySQL problem also because this PHP SHOULD
>work.
>
>Tyler
>
>----- Original Message -----
>From: "John Steele" <[EMAIL PROTECTED]>
>To: "PHP General List" <[EMAIL PROTECTED]>
>Sent: Monday, November 12, 2001 3:33 PM
>Subject: Re: [PHP] for loop problem?
>
>
>> Hi Tyler,
>>
>> This doesn't sound like a problem with PHP, but MySQL. Can you show
>your CREATE TABLE and MySQL version?
>>
>> John
>>
>> >Hi Martin,
>> >
>> >I just got done doing that, and i got the same thing! :-(
>> >
>> >Here's something interesting though. There's an id field that's set to
>> >AUTO_INCREMENT. I did a "SELECT * FROM passcodes WHERE
>passcode='P1000000'"
>> >This gave me this:
>> >
>> >id | passcode
>> >-----------------------
>> >1 | P1000000
>> >82145 | P1000000
>> >209398 | P1000000
>> >
>> >Shouldn't the ID's be further apart than that? Know what I'm saying?
>> >
>> >Tyler
>> >
>> >----- Original Message -----
>> >From: "Martin Towell" <[EMAIL PROTECTED]>
>> >To: "'Tyler Longren'" <[EMAIL PROTECTED]>; "Jack Dempsey"
>> ><[EMAIL PROTECTED]>
>> >Cc: "PHP-General" <[EMAIL PROTECTED]>
>> >Sent: Monday, November 12, 2001 10:45 PM
>> >Subject: RE: [PHP] for loop problem?
>> >
>> >
>> >> How about changing the logic lightly? try this:
>> >>
>> >> $value1 = 0;
>> >> $value2 = 223109;
>> >> for($i=$value1; $i<=$value2; $i++) {
>> >> $tmp = sprintf("1%06d\n", $i);
>> >> mysql_query("INSERT INTO passcodes (passcode) VALUES ('P$tmp')");
>> >>
>> >> basically taking away 1,000,000 from the numbers then adding it back on
>> >> later
>> >>
>> >> Martin T
>> >>
>> >> -----Original Message-----
>> >> From: Tyler Longren [mailto:[EMAIL PROTECTED]]
>> >> Sent: Tuesday, November 13, 2001 3:38 PM
>> >> To: Jack Dempsey
>> >> Cc: PHP-General
>> >> Subject: Re: [PHP] for loop problem?
>> >>
>> >>
>> >> I've ran it a few times without the MySQL code in there. Runs just
>fine
>> >> that way for me too. After it's run a few times for me (with the MySQL
>> >> code), I start getting duplicate entries of codes in there. For
>example,
>> >> I'll end up with a few 'P1000000' entries in the 'passcodes' field.
>> >>
>> >> Oh well, here I come perl!
>> >>
>> >> Thanks,
>> >> Tyler
>> >>
>> >> ----- Original Message -----
>> >> From: "Jack Dempsey" <[EMAIL PROTECTED]>
>> >> To: "Tyler Longren" <[EMAIL PROTECTED]>;
><[EMAIL PROTECTED]>
>> >> Sent: Monday, November 12, 2001 10:43 PM
>> >> Subject: RE: [PHP] for loop problem?
>> >>
>> >>
>> >> > ran it (without mysql queries) and worked fine....real strange.....
>> >> > have you tried the loop without the mysql queries?
>> >> >
>> >> > -----Original Message-----
>> >> > From: Tyler Longren [mailto:[EMAIL PROTECTED]]
>> >> > Sent: Monday, November 12, 2001 11:28 PM
>> >> > To: Jack Dempsey; [EMAIL PROTECTED]
>> >> > Subject: Re: [PHP] for loop problem?
>> >> >
>> >> >
>> >> > Exact code:
>> >> > <?
>> >> > $connection = mysql_connect("host_here","user_here","pass_here");
>> >> > $db = mysql_select_db("db_here", $connection);
>> >> > $value1 = 1000000;
>> >> > $value2 = 1223109;
>> >> > for($i=$value1; $i<=$value2; $i++) {
>> >> > mysql_query("INSERT INTO passcodes (passcode) VALUES ('P$i')");
>> >> > if (mysql_error() != "") {
>> >> > print "<font face=Arial size=2>".mysql_error()."</font>";
>> >> > exit;
>> >> > }
>> >> > }
>> >> > mysql_close($connection);
>> >> > ?>
>> >> >
>> >> > Tyler
>> >> >
>> >> > ----- Original Message -----
>> >> > From: "Jack Dempsey" <[EMAIL PROTECTED]>
>> >> > To: <[EMAIL PROTECTED]>
>> >> > Sent: Monday, November 12, 2001 10:34 PM
>> >> > Subject: RE: [PHP] for loop problem?
>> >> >
>> >> >
>> >> > > paste the complete code in and myself and others can run your exact
>> >copy
>> >> > >
>> >> > > -----Original Message-----
>> >> > > From: Tyler Longren [mailto:[EMAIL PROTECTED]]
>> >> > > Sent: Monday, November 12, 2001 11:22 PM
>> >> > > To: Martin Towell; [EMAIL PROTECTED]
>> >> > > Subject: Re: [PHP] for loop problem?
>> >> > >
>> >> > >
>> >> > > I removed all of the quotes that could be affecting it. Still, it
>> >loops
>> >> > > until I stop it. I let it go all the way up to 350,000 or so. Any
>> >> other
>> >> > > ideas anyone?
>> >> > >
>> >> > > Thank you!
>> >> > > Tyler
>> >> > >
>> >> > > ----- Original Message -----
>> >> > > From: "Martin Towell" <[EMAIL PROTECTED]>
>> >> > > To: <[EMAIL PROTECTED]>
>> >> > > Sent: Monday, November 12, 2001 10:06 PM
>> >> > > Subject: RE: [PHP] for loop problem?
>> >> > >
>> >> > >
>> >> > > > hmmm... I just tried :
>> >> > > >
>> >> > > > $value1 = 1000000;
>> >> > > > $value2 = 1223109;
>> >> > > > for($i = $value1; $i <= $value2; $i++)
>> >> > > > {
>> >> > > > echo "$i\n";
>> >> > > > }
>> >> > > >
>> >> > > > and it spat out all 223109 numbers (albiet after a VERY long
>time)
>> >> > > > can't see how adding mysql code would affect the loop...
>> >> > > >
>> >> > > > Martin T
>> >> > > >
>> >> > > > -----Original Message-----
>> >> > > > From: Tyler Longren [mailto:[EMAIL PROTECTED]]
>> >> > > > Sent: Tuesday, November 13, 2001 2:53 PM
>> >> > > > To: Evan Nemerson; [EMAIL PROTECTED]
>> >> > > > Subject: Re: [PHP] for loop problem?
>> >> > > >
>> >> > > >
>> >> > > > To everyone that said it had something to do with the quotes:
>> >> > > > that has nothing to do with it.
>> >> > > >
>> >> > > > When I first wrote this, It didn't have all the quotes. It did
>the
>> >> same
>> >> > > > thing. Then, I thought I may need some quotes somewhere, but
>that
>> >> > > obviously
>> >> > > > didn't help. Any other suggestions? If I HAVE to, I'll do this
>in
>> >> > PERL,
>> >> > > > but would much rather do it in PHP.
>> >> > > >
>> >> > > > Thanks everyone,
>> >> > > > Tyler
>> >> > > >
>> >> > > > ----- Original Message -----
>> >> > > > From: "Evan Nemerson" <[EMAIL PROTECTED]>
>> >> > > > To: "Tyler Longren" <[EMAIL PROTECTED]>;
>> >> <[EMAIL PROTECTED]>
>> >> > > > Sent: Monday, November 12, 2001 9:41 PM
>> >> > > > Subject: Re: [PHP] for loop problem?
>> >> > > >
>> >> > > >
>> >> > > > > My word why all the quotes?
>> >> > > > >
>> >> > > > > <?
>> >> > > > > $connection = mysql_connect("blah","blah","blah");
>> >> > > > > $db = mysql_select_db("db_to_use", $connection);
>> >> > > > > $value1 = 1000000;
>> >> > > > > $value2 = 1223109;
>> >> > > > > for($i=$value1; $i<=$value2; $i++) {
>> >> > > > > mysql_query("INSERT INTO passcodes (passcode) VALUES
>('P$i')");
>> >> > > > > if (mysql_error() != "") {
>> >> > > > > print "<font face=Arial size=2>".mysql_error()."</font>";
>> >> > > > > exit;
>> >> > > > > }
>> >> > > > > }
>> >> > > > > mysql_close($connection);
>> >> > > > > ?>
>> >> > > > >
>> >> > > > > That should give you some better results.
>> >> > > > >
>> >> > > > >
>> >> > > > > On Monday 12 November 2001 07:32 pm, you wrote:
>> >> > > > > > Hello everyone,
>> >> > > > > >
>> >> > > > > > I have a pretty big list of codes that need to be put into a
>> >mysql
>> >> > db.
>> >> > > > The
>> >> > > > > > numbers range from 1000000 to 1223109. Here's the PHP I
>wrote
>> >to
>> >> > put
>> >> > > > these
>> >> > > > > > codes into a database:
>> >> > > > > >
>> >> > > > > > <?
>> >> > > > > > $connection = mysql_connect("blah","blah","blah");
>> >> > > > > > $db = mysql_select_db("db_to_use", $connection);
>> >> > > > > > $value1 = "1000000";
>> >> > > > > > $value2 = "1223109";
>> >> > > > > > for($i="$value1"; $i<="$value2"; $i++) {
>> >> > > > > > mysql_query("INSERT INTO passcodes (passcode) VALUES
>('P$i')");
>> >> > > > > > if (mysql_error() != "") {
>> >> > > > > > print "<font face=Arial size=2>".mysql_error()."</font>";
>> >> > > > > > exit;
>> >> > > > > > }
>> >> > > > > > }
>> >> > > > > > mysql_close($connection);
>> >> > > > > > ?>
>> >> > > > > >
>> >> > > > > > Everytime I run this from a browser, it just keeps looping.
>It
>> >> > should
>> >> > > > put
>> >> > > > > > about 223109 entries into the "passcodes" table. However, it
>> >just
>> >> > > keeps
>> >> > > > > > looping. I'll end up with 400,000 or so entries before I
>stop
>> >it.
>> >> > I
>> >> > > > make
>> >> > > > > > sure I empty that table before I start running it again. Why
>is
>> >> > this
>> >> > > > > > happening?
>> >> > > > > >
>> >> > > > > > Thanks everyone,
>> >> > > > > > Tyler
--
/* SteeleSoft Consulting John Steele - Systems Analyst/Programmer
* We also walk dogs... Dynamic Web Design PHP/MySQL/Linux/Hosting
* www.steelesoftconsulting.com [EMAIL PROTECTED]
*/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]