Okay, so lets assume you have a table with the current structure something like:
payments
> id int(11) PRIMARY KEY AUTO_INCREMENT
> user_id int(11)
> payment1 int(11)
> paymentType1 int(11)
And what you want to do is create additional columns so that you have 53 pairs of the last two columns...
> payment2 int(11)
> paymentType2 int(11)
> payment3 int(11)
> paymentType3 int(11)
...
> payment53 int(11)
> paymentType53 int(11)
Then you just need to use an ALTER TABLE
query to add the columns.
You can generate the query like:
$tableName = "payments";
$startingNumber = 2;
$endingNumber = 53;
echo "ALTER TABLE {$tableName}\n";
for ($i = $startingNumber; $i < $endingNumber+1; $i++) {
echo " ADD COLUMN payment{$i} int(11),\n";
echo " ADD COLUMN paymentType{$i} int(11)" . ($endingNumber === $i ? ";": ",\n");
}
You can change echo
to a variable and then concatenate and run it in PHP after the for loop or copy/paste the resulting query into PHPMyAdmin.
Run in PPH
$tableName = "payments";
$startingNumber = 2;
$endingNumber = 53;
$sql = "ALTER TABLE {$tableName}\n";
for ($i = $startingNumber; $i < $endingNumber+1; $i++) {
$sql .= " ADD COLUMN payment{$i} int(11),\n";
$sql .= " ADD COLUMN paymentType{$i} int(11)" . ($endingNumber === $i ? ";": ",\n");
}
// Assuming that you have an active connection to the db
// and $mysqli is the mysqli object
$mysqli->query($sql);
However, I would suggest that you think about your DB design. It seems to me that you could simply have a table like:
payment
> id
> user_id
> number -- If you want to number them specifically
> amount
> type
Having 50+ columns seems like a lot of overhead...