Slettet bruger
24. august 2005 - 20:20
Der er
29 kommentarer og 1 løsning
Ombyt navn fra en anden tabel
Hej.
Jeg har lige fået rigtig god hjælp her:
http://www.eksperten.dk/spm/642671 Tabellerne i det eksempel hedder BioCity1 og BioCity2 og så fremdeles.
I en anden tabel har jeg også det navn stående, men i et andet felt har jeg så en mere rigtig titel. Hvordan får jeg udskiftet tabelnavnet med et feltnavn fra en anden tabel ?
Det ville være rigtig smart, men det kræver vist lige man ved lidt mere end jeg gør.
Annonceindlæg fra Barco
Slettet bruger
24. august 2005 - 20:22
#1
Foruden feltnavnet vil jeg også gerne bruge et felt der står byen i, så man kan skrive navnet, By. Er det svært at klistre sammen.
24. august 2005 - 20:32
#2
Den med tabelnavnet kunne gøres på noget i stil med nedenstående (som er en rettelse til showsource's kode: <?php $database = "dindatabase"; //connect til DB $mytables = mysql_query("SHOW TABLES FROM " . $database); while ($row = mysql_fetch_row($mytables)) { $grimtTabelNavn = $row[0]; $sql = "SELECT paentTabelNavn FROM dinAndenTabel WHERE grimtTabelNavn='" . $grimtTabelNavn; $result = mysql_query($sql) or die(mysql_error()); $paentTabelNavn = $grimtTabelNavn; if (mysql_num_rows($result) != 0) { $row2 = mysql_fetch_assoc($result)) $paentTabelNavn = $row2["paentTabelNavn"]; } echo "<br /><b>" . $paentTabelNavn . "</b>; $get = mysql_query("SELECT * FROM ". $row[0] .""); while ($vis = mysql_fetch_array($get)) { echo "<br />" . $vis[0] . " - " . $vis[1]; } mysql_free_result($get); } mysql_free_result($mytables); ?>
24. august 2005 - 20:35
#3
... og hvis byen også skal med: <?php $database = "dindatabase"; //connect til DB $mytables = mysql_query("SHOW TABLES FROM " . $database); while ($row = mysql_fetch_row($mytables)) { $grimtTabelNavn = $row[0]; $sql = "SELECT paentTabelNavn, byFelt FROM dinAndenTabel WHERE grimtTabelNavn='" . $grimtTabelNavn; $result = mysql_query($sql) or die(mysql_error()); $paentTabelNavn = $grimtTabelNavn; $by = ""; if (mysql_num_rows($result) != 0) { $row2 = mysql_fetch_assoc($result)) $paentTabelNavn = $row2["paentTabelNavn"]; $by = $row2["byFelt"]; } echo "<br /><b>" . $paentTabelNavn; if ($by != "") echo ", " . $by; echo "</b>"; $get = mysql_query("SELECT * FROM ". $row[0] .""); while ($vis = mysql_fetch_array($get)) { echo "<br />" . $vis[0] . " - " . $vis[1]; } mysql_free_result($get); } mysql_free_result($mytables); ?>
24. august 2005 - 20:36
#4
Nu kender jeg jo ikke de navne du selv har valgt for dine felte, så derfor har jeg brugt nogle som jeg selv har fundet på. Du skal selvfølgelig erstatte dem med dine egne for at det dur.
Slettet bruger
24. august 2005 - 20:40
#5
Jeg må tilstå at jeg ikke lige kan gennem skue dette. Jeg har det til at virke med det første eksempel i det andet spørgsmål sammen med noget andet kode som jeg havde i forvejen. Kan du putte det ind i dette ? <?php $database = "Buster"; $i = 0; //connect til DB $mytables = mysql_query("SHOW TABLES FROM " . $database . ""); while($row = mysql_fetch_row($mytables)) { $i = $i + 1; if ($i <= 7) { echo "<br /><center>". $row[0] . "</center><br>"; $sal = $row[0]; mysql_select_db($database_Buster_nord, $Buster_nord); $query_rsListe = "SELECT * FROM $sal ORDER BY Dato ASC"; $rsListe = mysql_query($query_rsListe, $Buster_nord) or die(mysql_error()); $row_rsListe = mysql_fetch_assoc($rsListe); $totalRows_rsListe = mysql_num_rows($rsListe); ?> <center> <table width="70%" border="1"> <?php do { ?> <tr><td width="30%" align="left"><?php echo $row_rsListe['Film']; ?></td> <td align="left"><?php echo $row_rsListe['Dag']; ?></td> <td align="center"><?php echo $row_rsListe['Dato']; ?></td> <td align="right"><?php echo $row_rsListe['Tid']; ?></td> <td align="right"><?php echo $row_rsListe['Plads']; ?></td> </tr> <?php } while ($row_rsListe = mysql_fetch_assoc($rsListe)); ?> </table><br> </center> <?php } else { } } ?> Det virker helt efter hensigten. Du kan se det på buster-nord.dk og så klikke på spilletider.
Slettet bruger
24. august 2005 - 20:45
#6
Jeg er så fixeret af at trykke på opdatering. Så jeg skriver her og trykke på opdatering :-)))) Jeg vil have konverteret BioCity1 til BioCity sal 1 og jeg går ud fra at man ikke kan bruge navne med mellemrum som tabelnavne.
Slettet bruger
24. august 2005 - 20:46
#7
Den ekstra tabel hedder biografer :-) Man glemmer altid noget.
24. august 2005 - 20:47
#8
Rettelse må se nogenlunde sådan her ud: <?php $database = "Buster"; $i = 0; //connect til DB $mytables = mysql_query("SHOW TABLES FROM " . $database . ""); while ($row = mysql_fetch_row($mytables)) { $i = $i + 1; if ($i <= 7) { $grimtTabelNavn = $row[0]; $sql = "SELECT paentTabelNavn, byFelt FROM dinAndenTabel WHERE grimtTabelNavn='" . $grimtTabelNavn; $result = mysql_query($sql) or die(mysql_error()); $paentTabelNavn = $grimtTabelNavn; $by = ""; if (mysql_num_rows($result) != 0) { $row2 = mysql_fetch_assoc($result)) $paentTabelNavn = $row2["paentTabelNavn"]; $by = $row2["byFelt"]; } echo "<br /><center>" . $row[0]; if ($by != "") echo ", " . $by; echo "</center><br>"; $sal = $row[0]; mysql_select_db($database_Buster_nord, $Buster_nord); $query_rsListe = "SELECT * FROM $sal ORDER BY Dato ASC"; $rsListe = mysql_query($query_rsListe, $Buster_nord) or die(mysql_error()); $row_rsListe = mysql_fetch_assoc($rsListe); $totalRows_rsListe = mysql_num_rows($rsListe); ?> <center> <table width="70%" border="1"> <?php do { ?> <tr><td width="30%" align="left"><?php echo $row_rsListe['Film']; ?></td> <td align="left"><?php echo $row_rsListe['Dag']; ?></td> <td align="center"><?php echo $row_rsListe['Dato']; ?></td> <td align="right"><?php echo $row_rsListe['Tid']; ?></td> <td align="right"><?php echo $row_rsListe['Plads']; ?></td> </tr> <?php } while ($row_rsListe = mysql_fetch_assoc($rsListe)); ?> </table><br> </center> <?php } } ?>
Slettet bruger
24. august 2005 - 20:49
#9
Det gode felt hedder Biograf og det ikke så gode felt hedder Nanv og by-feltet hedder Titel
Slettet bruger
24. august 2005 - 20:51
#10
Nanv skal være Navn
24. august 2005 - 20:54
#11
Du skal bare selv ændre navnene i denne ene linje: $sql = "SELECT paentTabelNavn, byFelt FROM dinAndenTabel WHERE grimtTabelNavn='" . $grimtTabelNavn;
Slettet bruger
24. august 2005 - 20:55
#12
Jeg prøver, jeg prøver :-) Men der er lige en fejl jeg skal se om jeg kan hitte.
Slettet bruger
24. august 2005 - 20:59
#13
$sql = "SELECT Biograf, Navn FROM biografer WHERE grimtTabelNavn='" . $grimtTabelNavn; Men der er vel også andre steder ? Der står jo byFelt et endet sted f. eks.
24. august 2005 - 21:03
#14
Du skal vel også rette "grimtTabelNavn" .. for det hedder vel noget andet? Og så skal disse to rettes tilsvarende: $row2 = mysql_fetch_assoc($result)) $paentTabelNavn = $row2["paentTabelNavn"]; $by = $row2["byFelt"];
Slettet bruger
24. august 2005 - 21:06
#15
Ja men det hjælper ikke rigtig. Du kan se fejlen på siden, det bliver jeg ikke så klog af. Desuden var der først denne: $row2 = mysql_fetch_assoc($result)) der er en ) formeget. Enig ?
Slettet bruger
24. august 2005 - 21:07
#16
De sidste linier du skrev har jeg rettet sådan her: $row2 = mysql_fetch_assoc($result) $paentTabelNavn = $row2["Biograf"]; $by = $row2["Navn"];
24. august 2005 - 21:08
#17
Der skal også lige en ; bagefter - undskyld: $row2 = mysql_fetch_assoc($result);
Slettet bruger
24. august 2005 - 21:08
#18
Den skriver der er fejl i linie 32 og det er denne: $paentTabelNavn = $row2["Biograf"];
Slettet bruger
24. august 2005 - 21:09
#19
Ok, det giver så en SQL fejl near line 1 og så er jeg på'en :-)
24. august 2005 - 21:10
#20
Prøv lige at poste hele din nuværende kode.
Slettet bruger
24. august 2005 - 21:18
#21
OK, den er her: <?php $database = "Buster"; $i = 0; //connect til DB $mytables = mysql_query("SHOW TABLES FROM " . $database . ""); while ($row = mysql_fetch_row($mytables)) { $i = $i + 1; if ($i <= 7) { $grimtTabelNavn = $row[0]; $sql = "SELECT Biograf, Navn FROM biografer WHERE Navn='" . $grimtTabelNavn; $result = mysql_query($sql) or die(mysql_error()); $paentTabelNavn = $grimtTabelNavn; $by = ""; if (mysql_num_rows($result) != 0) { $row2 = mysql_fetch_assoc($result); $paentTabelNavn = $row2["Biograf"]; $by = $row2["Titel"]; } echo "<br /><center>" . $row[0]; if ($by != "") echo ", " . $by; echo "</center><br>"; $sal = $row[0]; mysql_select_db($database_Buster_nord, $Buster_nord); $query_rsListe = "SELECT * FROM $sal ORDER BY Dato ASC"; $rsListe = mysql_query($query_rsListe, $Buster_nord) or die(mysql_error()); $row_rsListe = mysql_fetch_assoc($rsListe); $totalRows_rsListe = mysql_num_rows($rsListe); ?> <center> <table width="70%" border="1"> <?php do { ?> <tr><td width="30%" align="left"><?php echo $row_rsListe['Film']; ?></td> <td align="left"><?php echo $row_rsListe['Dag']; ?></td> <td align="center"><?php echo $row_rsListe['Dato']; ?></td> <td align="right"><?php echo $row_rsListe['Tid']; ?></td> <td align="right"><?php echo $row_rsListe['Plads']; ?></td> </tr> <?php } while ($row_rsListe = mysql_fetch_assoc($rsListe)); ?> </table><br> </center> <?php } } ?>
24. august 2005 - 21:21
#22
Sådan her: $sql = "SELECT Biograf, Titel FROM biografer WHERE Navn='" . $grimtTabelNavn . ".";
Slettet bruger
24. august 2005 - 21:22
#23
I denne linie: $sql = "SELECT Biograf, Navn FROM biografer WHERE Navn='" . $grimtTabelNavn; Er det ikke et extra tegn lige efter = tegnet ? Den giver en anden fejl ved at fjerne det. Fejlen er så: Unknown column 'BioCity1' in 'where clause'
24. august 2005 - 21:22
#24
Forkert tast! $sql = "SELECT Biograf, Titel FROM biografer WHERE Navn='" . $grimtTabelNavn . "'";
24. august 2005 - 21:23
#25
Nej, tegnet skal ikke fjernes - til gengæld manglede det sin partner i den anden ende. Min skyld igen, jeg undskylder.
Slettet bruger
24. august 2005 - 21:25
#26
Pyha :_) Det hjalp. Men den skriver stadig BioCity1 og ikke det rigtige felt som er Biograf
Slettet bruger
24. august 2005 - 21:31
#27
Her var fejlen: echo "<br /><center>" . $paentTabelNavn; Der stod: echo "<br /><center>" .$row[0]; Så den er hjemme. Rigtig mange tak. Smid en svar.
24. august 2005 - 21:40
#28
Svar :^)
Slettet bruger
24. august 2005 - 21:44
#29
TAK for hjælpen. Jeg hævede points lidt for en rigtig god indsats. Det er jeg virkelig glad for. Alternativet var en masse sider til at vise det :-)
24. august 2005 - 21:48
#30
Selv tak. :^)
Vi tilbyder markedets bedste kurser inden for webudvikling