24. januar 2010 - 15:10Der er
11 kommentarer og 2 løsninger
Udskriv et tilfældig felt fra tilfældig colonne & tilfældig række
Hej (:
- Ja overskriften siger lidt sig selv Jeg har en side hvor jeg har en møbelliste listen henter møblerns information ud fra møbellistens egen database og ud for kategoriet har de ders egen tabel.
Jeg kunne godt tænke mig at denne kode selv valgte en tilfældig tabel og en tilfældig række og skrev den du. når man så opdater sin browser finder den en ny
(Hvad skal der stå ved "Hjælp" for at den selv vælger database? :D)
<?php /* include "mobel_connect.php"; $sql = "select * from HJÆLP order by rand() limit 1;"; $result = mysql_query($sql) or die(mysql_error());
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Et array kan sammenlignes med en liste. Hvis vi tager det eksempel jeg skrev: $tables = array(); $tables[] = "første_tabel"; $tables[] = "anden_tabel"; $tables[] = "tredje_table";
Første linje over arrayet i variablen $tables. Næste linjer indsætter nye indhold på næste position af arrayet (position 0): $tables[] = "første_tabel";
Den kan så kaldes frem igen, ved at kalde: print $tables[0]; // udskriver 'første_tabel'
De efterfølgende værdi kan udskrives ved: print $tables[1]; // udskriver 'anden_tabel' print $tables[2]; // udskriver 'tredje_tabel'
Osv. Så du samlet alle værdierne i samme variabel, hvilket er et array.
Den næste linje: $muligheder = count($tables);
Den tæller hvor mange værdier arrayet indholder, så: print $muligheder; // vil i dette tilfælde udskrive 3.
Næste linje: $tabel_id = rand(0, $muligheder-1);
Den finder et tilføldigt tal mellem 0 og 2. Jeg trækker en fra muligheder, fordi arrayet starter med at tælle fra 0 og ikke fra 1. Så hvis du udskriver: print $tabel_id; // udskriver enten 0, 1 eller 2.
Da arrayet indholdet tabel navnet på 0, 1 eller 2. Kan du så bruge det tal til at hente en værdi ud igen fra arrayet: echo $tables[$tabel_id]; // udskriver enten første_-, anden_- eller tredjetabel (som er tabelnavnet).
$colsql = "SHOW COLUMNS FROM ".$brugtabel; $cols = mysql_query($colsql) or die ("Kan ikke hente kolloner i tabellen: ".mysql_error()); $cols_antal = mysql_num_rows($cols);
if($cols_antal < 1) { echo"Ingen kolonner fundet i ".$_GET["tb"]; exit; }
$finalsql = "SELECT ".$colvalg." FROM ".$brugtabel." ORDER BY RAND() LIMIT 1"; $row = mysql_query($finalsql) or die ("Kan ikke vælge tilfældig resultat: ".mysql_error());
Jeg har besluttet mig for at lave det på en nemmere måde da jeg har snakket med en anden og har fortalt mig at det bliver sværer for mig selv senere hvis jeg ikke laver det om
Jer som har hjulper og har lyst til point kan evt smide et svar (:
øhh, hvad bliver sværere ? Så længe det er php og mysql kan mit ex. jo blot bruges som en includefil. Visning er uden brugerinput, så der er ikke noget farligt i det.
Men det kunne jo klart forenkles hvis du vælger en bestemt tabel, med kun en kolonne og så x antal rows med det du vil vise random.
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.