08. november 2003 - 11:42Der er
47 kommentarer og 2 løsninger
Åbne ny side og sende værdier med
Hej
Lidt PHP hjælp til en newbiee:
Jeg har en side med 40-50 links - disse linker til nye sider (ens sider) med et billede. Da det kun er billedet og teksten som skifter kunne det være smart om jeg kunne sende navnet på billedet samt teksten til den nye side - så spare jeg i hvertfald en masse HTML filer - men hvordan gør jeg det med PHP
det må være i min <a href: > jeg skal have variablerne ind ?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
I tilfældet med en database, kunne din tabel se sådan ud:
CREATE TABLE pics ( id smallint(6) NOT NULL auto_increment, sti varchar(255) NOT NULL default '', tekst mediumtext NOT NULL, tid timestamp NOT NULL, PRIMARY KEY (id) ) TYPE=MyISAM
Jo, da. Denne query skal blot kopieres til phpMyAdmin's SQL vindue. Så får du oprettet tabellen:
CREATE TABLE pics ( id smallint(6) NOT NULL auto_increment, sti varchar(255) NOT NULL default '', tekst mediumtext NOT NULL, tid timestamp NOT NULL, PRIMARY KEY (id) ) TYPE=MyISAM
Denne stump opretter forbindelse til din database. Den kan du med fordel ligge i sin egen fil (fx: 'db.php'), som du så kan include(), der hvor du har brug for den:
$s = mysql_connect("localhost", "bruger", "pass")// dit brugernavn og password or die("Could not connect: " . mysql_error()); $db = mysql_select_db('database')// din databases navn or die("Ingen database " . mysql_error());
Den næste stump henter id og tekst fra din tabel og udskriver link's på siden. Nu ved jeg ikke hvor lang din tekst er, men du kunne vælge at lave et felt med navn osse. Og så bruge det istedet for tekst her:
require 'db.php';// forbindelse til databasen $res = mysql_query("SELECT id, tekst FROM pics");// henter alle id's og tekst while ($row = mysql_fetch_assoc($res)) {//fetcher de enkelte rækker fra din resultressource echo "<a href='vis.php?id=".$row['id']."'>".$row['tekst']."</a><br />";// skriver link's }
Den sidste del ('vis.php') viser et billede med tilhørende tekst udfra det valgte id:
if (isset($_GET['id'])) {// tjekker om id er sat i adresselinien require 'db.php';// forbindelse til databasen
$res = mysql_query("SELECT sti, tekst FROM pics WHERE id=".$_GET['id']); //henter data fra rækken med det aktuelle id $row = mysql_fetch_assoc($res);// fetcher de enkelte data fra $res echo "<img src='".$row['sti']."' /><br />".$row['tekst']."<br />"; // viser billede med tekst under } else { echo "Intet id!";// vises hvis siden bliver kaldt uden id }
Er det her rigtig når jeg skal kalde databasen (altså kaldet til funktionene)??: Funktionen: <?php Function con_pic() { $s = mysql_connect("localhost", "bruger", "pass")// dit brugernavn og password or die("Could not connect: " . mysql_error()); $db = mysql_select_db('database')// din databases navn or die("Ingen database " . mysql_error()); } ?>
KALDET FRA FILEN: <?php include($_SERVER["DOCUMENT_ROOT"] . "/function/funcPic.php");
Åhh ja og så en lille ting mere - jeg skal ikke hente links fra databasen - dem laver jeg selv - prøver lige om jeg selv kan finde ud af det da det inkluderer et java script: <a href="/Dan_version/Chico/chico2.php" onclick="NewWindow(this.href,'Chico2','450','450','no','center');return false" onfocus="this.blur()">
kan du omskrive ovenstående så det samtidigt med at det åbner et pop-up vindue også indsætter tekst og billede via sti fra Database...?
Hæver lige points for denne opgave og så skal du huske et svar!!!!
Nu siger du at du ikke vil hente links fra databasen. Så er hele fidusen sådan set røget i vasken, da det jo ikke skal være direkte link. Det er jo blot link til en anden side, der så skal vise de forskellige billeder, med id i adresselinien.
Nej - for fidusen er at jeg ikke skal have 300 Vis.html sider - en for hvert billede men i stedet via linket kan bruge samme Vis.php side og så bare skifte billede og tekst....
Det er en stamtavle for hunde så det er ikke bare link "klasket" på en side men nydeligt sat op i en tabel - så jeg kan ikke lige se hvordan jeg skulle få det indsat med while løkke....?
$res = mysql_query("SELECT id, tekst FROM pics"); while ($row = mysql_fetch_assoc($res)) {
kan jeg ikke nøjes med: $res = mysql_query("SELECT id, tekst FROM pics"); while ($row = mysql_fetch_assoc($res)) { echo "<a href='vis.php?id=1'onClick=\"window.open(this.href,'nytVindue','width=450,height=450'); return false;\">link</a><br />";
Når man har oprettet sin database i MySql på Serveren - virker det så ikke bare??? man skal vel ikke udgive - hmmmm.. det er vel måske noget med min connection?
tak.. hhaahah - det skal SELVFØLELIG ikke skrives som php - for så er det jo fortolket inden klikket hmmmmmmmm....... måske lidt mere kaffe og en masse smøger ville hjælpe hahahah
Hvis jeg nu ønskede at Id'en skulle være både bogstaver og tal i tabellen - behøver jeg så kun at ændre typen i databasen eller har det betydning for koden vi har konstrueret (det lyder meget godt med VI - der burde stå som DU hahahahha)
Nej, tabellen som 'vi' har lavet har jo autonummereret id, så det kan ikke ændres. Men der er ikke noget i vejen for at tilføje et felt (fx typen VARCHAR) og så bruge det istedet.
Men jeg vil anbefale at bruge id hvis du kan, for så undgår du dubletter. Alternativt kan du lave det nye felt unikt, det vil jo være temmelig uheldigt med to ens ;)
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.