PHP automatisch laten kiezen

Status
Niet open voor verdere reacties.

Kligham

Gebruiker
Lid geworden
7 jan 2009
Berichten
389
Hallo,

Het zou de bedoeling moeten zijn dat mijn PHP script uit een aantal mogelijkheden, 1 bepaalt land kiest en die in mijn Mysql database gaan schrijven. Het gedeelte voor mijn Mysql is al gedaan, enkel de php-keuze gedeelte moet ik nog vinden. Het gaat als volgt:

PHP:
<?php
$con = mysql_connect("localhost","root","xxxxxxxxxx");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("test", $con);

for( $loop = 1; $loop<=10000; $loop++ ) { 

mysql_query("INSERT INTO patient(land) 
VALUES ('Peter$loop')");
}
mysql_close($con);
?>

Zoals je nu ziet, zal hij het volgende wegschrijven:

Peter1
Peter2
Peter3
Peter4
Peter5
Peter...

-> dit wordt veroorzaakt door de ('Peter$loop')

Ik wil nu het volgende:

Er zijn een aantal keuzemogelijkheden:

België
Nederland
Frankrijk
Duitsland
Engeland
Luxemburg
Spanje
Italië
Griekenland
Portugal

Hieruit kiest hij een van al de mogelijke landen en dit schrijft hij in mijn database. Het zou zo moeten zijn dat dit in een loop gebeurt, en dat hij telkens willekeurig een keus maakt (statisch gezien is dit het beste). Het uiteindelijke resultaat zou bijvoorbeeld zijn:

Engeland
Spanje
Belgie
Griekenland
Portugal
Nederland
Duitsland
Spanje
Spanje
Italië

-> is er iemand die mij kan op weg helpen om dit te verwezenlijken. Het kan ook door een link te posten of een tip geven hoe ik dit zou moeten gaan zoeken in google.

In ieder geval bedankt voor de hulp;)
 
Laatst bewerkt:
Dat doet niet terzake?

Eh, whatever, succes verder. Dat je het op onjuiste en onhandige wijze doet is dus voor jou niet van belang.
 
Dat doet niet terzake?

Eh, whatever, succes verder. Dat je het op onjuiste en onhandige wijze doet is dus voor jou niet van belang.

Dit is wel van belang, maar dat het over Enum gaat wordt toch maar enkel geplaatst in je database en heeft toch niets te maken met dit script. Of ben ik verkeerd?

Mijn land column is als volgt aangemaakt:

CREATE TABLE patient(
land Enum("België", "Nederland", "Frankrijk", "Duitsland", "Luxemburg", "Spanje"),
) TYPE=InnoBD;
 
Dat heeft wel te maken met dit script. ENUM is een hele rare manier van data opslaan.

Je moet voor zulke dingen een koppeltabel aanmaken.

CREATE TABLE landen (
id_land INT( 1 ) NOT NULL AUTO_INCREMENT ,
land VARCHAR( 128 ) NOT NULL ,
PRIMARY KEY ( id_land )
) ENGINE = InnoDB

Vervolgens maak je bij 'users' een kolom 'id_land', daarin zet je het id van het land zoals dat in de tabel 'landen' staat.

In je query doe je dan iets als dit:

INSERT INTO users (id_land) VALUES (SELECT RAND(id_land) FROM landen LIMIT 1)
 
Moet ik dan in zowel de id_land van 'users' als van 'landen' dezelfde getallen zetten?
 
Sterker nog, id_land in users is een foreign key. Oftewel, het getal in users.id_land verwijst naar landen.id_land. In je tabel landen zet je gewoon alle landen die je nodig hebt, en met de query die ik je net gaf krijg je dan een random (bestaand) id in je users.id_land.
 
Ik krijg een syntax :

Error Code : 1064
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 'SELECT RAND(id_land) FROM landen LIMIT 1)' at line 1
(0 ms taken)

Moeten die twee kolommen aan elkaar hangen?
Kheb in ieder geval een jpg upgeload
 

Bijlagen

  • test.JPG
    test.JPG
    82,6 KB · Weergaven: 32
Zo wel denk ik:

INSERT INTO users (id_land) SELECT RAND(id_land) FROM landen LIMIT 1
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan