20. august 2004 - 13:56
Der er
6 kommentarer og 1 løsning
Helt nyeste indlæg fra tilfældig tabeller
Jeg har en masse forskellige tabeller, og jeg ønsker at lave en oversigt der tilfældigt skal vise den nyeste fra en af tabellerne... Hvordan kan jeg lave dette?
Annonceindlæg fra Cognizant
AI er ikke problemet. Eksekvering er.
Der bliver investeret massivt i AI. Teknologien er mere tilgængelig end nogensinde, og ambitionerne er høje. Alligevel oplever mange virksomheder, at resultaterne udebliver.
20. august 2004 - 14:03
#1
Nej den skal egentlig bare lave en distinct i 1 tabel, og så vælge et af de fundne tilfældigt...
20. august 2004 - 14:15
#2
Er ikke sikker på at jeg forstår dig.. skal du bare have een tilfældig række ud fra tabel ? SELECT DISTINCT * FROM tabel ORDER BY RAND() LIMIT 1 Hvis du skal have de nyeste 10 rækker fra tabel1 og 3 tilfældige fra tabel2 SELECT * FROM tabel1 ORDER BY dato DESC LIMIT 10 og SELECT * FROM tabel2 ORDER BY rand() LIMIT 3
20. august 2004 - 14:16
#3
prøv at gentage spørgsmålet lidt mere udførligt. Lige nu aner vi ikke hvad du ønsker.
20. august 2004 - 15:05
#4
Prøv: <?php $database = "databasenavn"; $host = "localhost"; $user = "root"; $pass = "password"; $db = mysql_connect($host, $user, $pass) or die (mysql_error()); mysql_select_db($database, $db) or die (mysql_error()); $dbs = mysql_query("SHOW TABLES FROM `". $database ."`") or die (mysql_error()); $tables = array(); while($v = mysql_fetch_row($dbs)) { $tables[] = $v[0]; } mysql_free_result($dbs); $getdb = rand(0, count($tables) -1); echo"<p> Tablevalg: <b>". $tables[$getdb] ."</b></p>"; $felter = array(); $fields = mysql_list_fields($database, $tables[$getdb], $db); for($i = 0; $i < mysql_num_fields($fields); $i++) { $felter[] = mysql_field_name($fields, $i); } $getfelt = rand(0, count($felter) -1); echo"<p> Kolonnevalg: <b>". $felter[$getfelt] ."</b></p>"; $last = mysql_query("SELECT `". $felter[$getfelt] ."` FROM `". $tables[$getdb] ."` LIMIT 0,1") or die (mysql_error()); echo"<p>Slutresultat: ". mysql_result($last, 0); mysql_free_result($last); ?> Ved ikke om det kunne laves lidt smartere?
20. august 2004 - 15:08
#5
hmm, nyeste? Hvis du har en kolonne som er primary og autoincrement, $last = mysql_query("SELECT `". $felter[$getfelt] ."` FROM `". $tables[$getdb] ."` LIMIT 0,1" ORDER BY `id` DESC) or die (mysql_error());
20. august 2004 - 15:25
#6
Nåh, skal vi lige prøve igen! Hvis du har en kolonne, "id", som er autoincrement og primary i ALLE dine tabeller: <?php $database = "databasenavn"; $host = "localhost"; $user = "root"; $pass = "password"; $db = mysql_connect($host, $user, $pass) or die (mysql_error()); mysql_select_db($database, $db) or die (mysql_error()); $dbs = mysql_query("SHOW TABLES FROM `". $database ."`") or die (mysql_error()); $tables = array(); while($v = mysql_fetch_row($dbs)) { $tables[] = $v[0]; } mysql_free_result($dbs); $getdb = rand(0, count($tables) -1); echo"<p> Tablevalg: <b>". $tables[$getdb] ."</b></p>"; $felter = array(); $fields = mysql_list_fields($database, $tables[$getdb], $db); for($i = 0; $i < mysql_num_fields($fields); $i++) { if(mysql_field_name($fields, $i) == "id") { continue; } $felter[] = mysql_field_name($fields, $i); } $getfelt = rand(0, count($felter) -1); echo"<p> Kolonnevalg: <b>". $felter[$getfelt] ."</b></p>"; $last = mysql_query("SELECT `". $felter[$getfelt] ."` FROM `". $tables[$getdb] ."` ORDER BY `id` DESC LIMIT 0,1") or die (mysql_error()); echo"<p>Slutresultat: ". mysql_result($last, 0); mysql_free_result($last); ?>
14. september 2004 - 14:40
#7
Lukker...
Vi tilbyder markedets bedste kurser inden for webudvikling