Hejsa.. Har lige en lille opgave til jer garvede scriptere.
Jeg er i gang med at lave en random udtrækning fra 10000 til 20000 Dette fungere fint.. det jeg så ikke rigtig kan få til at virke er at den skal udtrække et random mellem 10000 - 20000 derefter skal den smide det ind i en db (intet problem) , det der så er det svære er at de tal som er udtrækket ikke må udtrækkes igen, det vil sige at hvert random udtrækning skal være unik :)
Det gør virkelig en forskel at bruge professionel hardware, hvad enten det er til videoproduktion, AI-udvikling eller High Performance Computing.
20. december 2024
Slettet bruger
02. april 2004 - 15:22#1
Du kan vel ikke undgå en chance på 1:10000 på, at det samme tal til sidst vil blive udtrukket to gange.
Men hvis du mener at der ikke må være to ens tabeller i databasen, så skal du bare gøre tabellens kolonne unik. Derved vil der istedet komme en dabase-fejl, hvis et tal der allerede eksisterer, forsøges at blive indsat.
Denne fejl kan du jo så bygge videre på, scriptmæssigt - så hvis den støder på denne fejl, skal den udtrække et random tal igen, indtil den trækker et tal der ikke allerede eksisterer.
1. Gør kolonnen unik. 2. Lav et tilfældigt tal. 3. Prøv at sætte det ind i tabellen og undertryk evt.fejl med '@'. 4. Får du en MySQL-fejl med nummeret '1062' (Duplicate entry), laver du et nyt tal og prøver igen.
<? // Find et tal $sql = "INSERT INTO ....."; $res = @mysql_query($sql); if (mysql_errno==1062) { // Prøv igen } ?>
/mvh </bole>
Synes godt om
Slettet bruger
03. april 2004 - 17:03#4
<olebole> : Helt sikkert, jeg var ikke klar over om det vil virke. Hurra for intuition. :P
hmm, ja, men det med error kan jo bare gøres så den tjekker i databasen om nr. står der, ??? ik logisk med den error der :( men det jeg gerne vil er at den skal tjekke alle tabller inden den smider et nyt nr. ind ellers skal jeg jo lave 10000 if'er :)
Synes godt om
Slettet bruger
05. april 2004 - 21:07#7
Så skal du lave en SQL query i dit php script.
Den skal så være noget á la "SELECT kolonne FROM table WHERE random_nummer = 'rand(10000, 20000)'"
Hvis du så får en row returneret, skal du køre rand(); igen.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.