Avatar billede elborg Novice
24. juni 2002 - 19:49 Der er 34 kommentarer og
1 løsning

Fra ASP til PHP

Denne SQL virker i ASP, men jeg vil gerne have lavet koden til PHP med MySQL-database.

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("DinDatabase.mdb")
SQL = "SELECT * FROM tabel WHERE ID=" & Request("ID")
Set RS = Conn.Execute(SQL)

Do While Not RS.EOF %>

<table><tr>
<td><a href="link.asp?ID=<%RS("ID")%>"><%=RS("felt1")%></a></td>
..........


Det skal virke således at man klikker på én bestem ID, som så vises på den side som man linker til.
Avatar billede mjl Nybegynder
24. juni 2002 - 19:53 #1
Sorry men øhhh - ASP ser da lidt indviklet ud, gør det ikk'?
Avatar billede jakoba Nybegynder
24. juni 2002 - 20:05 #2
i php er det noget i retning af:

<?php
$server    = "localhost";    // domæne
$brugernavn = "ditnavn";      // brugernavn
$password  = "ditpass";      // password

mysql_connect($server, $brugernavn, $password)
  or die( "Unable to connect\n". mysql_error() );    // opret connection

$db_navn    = "dindb";        // navm på databasen

mysql_select_db("$db_navn")
  or die("Unable to select db ".mysql_error()."\n");  // vælg korrekt database

$dbt_navn  = "katalog";      // navn på tabel i databasen

$result  = mysql_query("SELECT keyword, side FROM ".$dbt_navn)  // hent dine data
  or die( "Unable to select. Reason: ".mysql_error());
                       
while  ($row = mysql_fetch_array($result))  {    // løkke der skriver data til siden
  echo ($row['keyword'] ." " .$row['side'] . "<BR>");
}

echo $result."Færdig<BR>";
                       
mysql_close();
?>

mvh JakobA
Avatar billede jelzin101 Praktikant
24. juni 2002 - 20:05 #3
if (isset($_GET['id'])){
$result = mysql_query("SELECT id,felt1 FROM tabel WHERE ID= $id")
while($r=mysql_fetch_array($result)){
echo "<table><tr>"
echo "<td><a href=\"link.asp?ID=$r[0]\"><$r[1])></a></td>";
}}

det er ikke testet men det burde virke.
Avatar billede trayzor Nybegynder
24. juni 2002 - 20:06 #4
Here goes... der er ikke taget hensyn til fejl i login proceduren...


mysql_connect("host", "user", "password");
mysql_select_db("databasenavn");
$query = mysql_query("SELECT * FROM tabelnavn");

while($row=mysql_fetch_array($query)){

echo "<a href=\"show.php?id=".$row['id']."\">Vis indhold til id nr.: ".$row['id']."</a><br>";

}
Avatar billede trayzor Nybegynder
24. juni 2002 - 20:09 #5
og show.php ser sådan ud:

mysql_connect("host", "user", "password");
mysql_select_db("databasenavn");
$query = mysql_query("SELECT * FROM tabelnavn WHERE id='$id'");

while($row=mysql_fetch_array($query)){

echo "Id: ".$row['id']."<br>";
echo "Andet felt: ".$row['andenkolonne']."<br>";
//osv
}
Avatar billede jakoba Nybegynder
24. juni 2002 - 20:15 #6
PS: kan det passe at du gentager din <table> kommando ligesåmange gange som løkken kører rundt?
Avatar billede trayzor Nybegynder
24. juni 2002 - 20:18 #7
det ser sådan ud...
Avatar billede elborg Novice
24. juni 2002 - 20:52 #8
til trayzor:
når jeg klikker på en ID kommer der ingen resultater ??

til jakoba:
mangler der ikke WHERE id=id
Avatar billede trayzor Nybegynder
24. juni 2002 - 20:55 #9
elborg: jeg går ud fra du har rettet login oplysninger, tabelnavn og kolonnenavn...?!
Avatar billede elborg Novice
24. juni 2002 - 21:00 #10
yes
Avatar billede trayzor Nybegynder
24. juni 2002 - 21:03 #11
det burde virke såfremt at forbindelsen til db'en er blevet oprettet korrekt. Men det er der ikke taget hensyn til da det ikk var kernen...
Avatar billede elborg Novice
24. juni 2002 - 21:08 #12
forbindelsen er ok, men der er ligesom det går galt i SQL ved WHERE id='$id' ??
Avatar billede trayzor Nybegynder
24. juni 2002 - 21:11 #13
prøv: $_GET['id']
Avatar billede elborg Novice
24. juni 2002 - 21:17 #14
kommer med følgende fejl:
Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING'
Avatar billede trayzor Nybegynder
24. juni 2002 - 21:21 #15
Dette er sådan query'en skal se ud i show.php... burde virke..

$query = mysql_query("SELECT * FROM tabelnavn WHERE id='$_GET["id"]'");
Avatar billede elborg Novice
24. juni 2002 - 21:27 #16
den kommer desværre med samme fejl igen
Avatar billede trayzor Nybegynder
24. juni 2002 - 21:32 #17
til hvilken linje retter fejlen sig?

prøv evt.:

mysql_connect("host", "user", "password");
mysql_select_db("databasenavn");

$id = $_GET['id'];
$query = mysql_query("SELECT * FROM tabelnavn WHERE id='$id'");

while($row=mysql_fetch_array($query)){

echo "Id: ".$row['id']."<br>";
echo "Andet felt: ".$row['andenkolonne']."<br>";
//osv
}
Avatar billede elborg Novice
24. juni 2002 - 21:39 #18
der kommer ingen resultater ved klik på ID, kun en blank side
Avatar billede trayzor Nybegynder
24. juni 2002 - 21:43 #19
er der indhold i databasen?

er fejlen forsvundet?
Avatar billede elborg Novice
24. juni 2002 - 21:49 #20
ja der er indhold
hvis jeg bruger WHERE id=id kommer der masser af resultater, den henter bare ikke den id som jeg har klikket på, men viser i stedet alle resultater
Avatar billede trayzor Nybegynder
24. juni 2002 - 21:52 #21
lav lige en *.phps af filerne eller show_source("filnavn.php");

Jeg vil gerne se koden...
Avatar billede elborg Novice
24. juni 2002 - 22:15 #22
her er show.php

<?php
$conn = mysql_connect("localhost", "root", "");
mysql_select_db("cykel");

$id = $_GET['ID'];
$query = mysql_query("SELECT * FROM Land WHERE ID='$ID'");

while($row=mysql_fetch_array($query)){

echo "Id: ".$row['ID']."<br>";
echo "Andet felt: ".$row['Land']."<br>";
//osv
}

mysql_close($conn);
?>
Avatar billede trayzor Nybegynder
24. juni 2002 - 22:22 #23
hvis alle kolonner osv er angivet rigtigt burde det altså virke...
SELECT * FROM Land WHERE ID='$ID' burde måske være ID='$id' men eftersom php ik er case sensitive burde det ik have nogen effekt...

<?php
$conn = mysql_connect("localhost", "root", "");

if(!$conn){
echo "db fejl";
exit;
}

if(!mysql_select_db("cykel")) {
echo "forkert db navn";
exit;
}

$id = $_GET['ID'];
$query = mysql_query("SELECT * FROM Land WHERE ID='$id'");

if(!$query) {
echo "SQL ikke udført korrekt";
exit;
}

while($row=mysql_fetch_array($query)){

echo "Id: ".$row['ID']."<br>";
echo "Andet felt: ".$row['Land']."<br>";
//osv
}

mysql_close($conn);
?>

Nu burde du få at vide hvor det går galt....
Avatar billede elborg Novice
24. juni 2002 - 22:29 #24
der kommer ingen fejlmeddelser, kun en blank side !
Avatar billede elborg Novice
24. juni 2002 - 22:31 #25
jeg ved ikke om det har nogen betydning, men jeg bruger php-version 4.1.2
Avatar billede trayzor Nybegynder
24. juni 2002 - 22:32 #26
har du prøvet at skrive sql sætningen direkte i et query vindue?

er scriptet online? jeg vil gerne se en "vis kilde"...
Avatar billede elborg Novice
24. juni 2002 - 22:38 #27
hvis jeg skriver WHERE ID=ID kommer der resultater.

scriptet er ikke online, men vis kilde ser sådan ud:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=windows-1252"></HEAD>
<BODY></BODY></HTML>
Avatar billede trayzor Nybegynder
24. juni 2002 - 22:44 #28
jeg ville gerne se det sted hvor du klikker på et id.

ved WHERE ID=ID sammanligner den kolonnen med sig selv... det virker ikke efter hensigten.
Avatar billede elborg Novice
25. juni 2002 - 08:55 #29
jeg klikker på id i denne linie:

"<a href=\"show.php?id=".$row['id']."\">Vis indhold til id nr.: ".$row['id']."</a><br>
Avatar billede trayzor Nybegynder
25. juni 2002 - 09:44 #30
ja.. men jeg vil gerne se det der bliver sendt til browseren. Altså en "vis kilde" af siden hvorpå der vælges et id.
Avatar billede elborg Novice
25. juni 2002 - 16:42 #31
her er vis kilde:

<a href="show.php?id=1">Vis indhold til id nr.: 1</a><br><a href="show.php?id=2">Vis indhold til id nr.: 2</a><br><a href="show.php?id=3">Vis indhold til id nr.: 3</a><br><a href="show.php?id=4">Vis indhold til id nr.: 4</a><br>
Avatar billede trayzor Nybegynder
25. juni 2002 - 19:07 #32
det forstår jeg ikke.... så burde det altså virke...

Lav lige en zip(php filer og mysql dump) og send den til mp@cubeit.dk hvis du vil have jeg skal kigge på den.
Avatar billede trayzor Nybegynder
27. juni 2002 - 10:05 #33
Jeg ved ikke hvad der lavede fejlen før, Men efter at have ændret tabel og kolonnenavn virker det.

dump af databasen:

CREATE TABLE Tcountry (
  countryId int(11) NOT NULL auto_increment,
  country varchar(50) NOT NULL default '',
  PRIMARY KEY  (countryId)
) TYPE=MyISAM;

filen display.php:
<?php
$conn = mysql_connect("mysql.cliche.dk", "user", "pass");
if(!$conn) {
echo "connection error";
}
if(!mysql_select_db("cubeit_dk")) {
echo "kunne ikke vælge db";
}

$query = mysql_query("SELECT * FROM Tcountry");
if(!$query) {
echo "sql error";
}
while($row=mysql_fetch_array($query)){

echo "<a href=\"show.php?id=".$row['countryId']."\">Vis indhold til id nr.: ".$row['countryId']."</a><br>";
}

mysql_close($conn);

?>

filen show.php:

<?php
$conn = mysql_connect("mysql.cliche.dk", "user", "pass");
if(!$conn) {
echo "connection error";
exit;
}
if(!mysql_select_db("cubeit_dk")) {
echo "kunne ikke vælge db";
exit;
}

$id = $_GET['id'];
$query = mysql_query("SELECT * FROM Tcountry WHERE countryId='$id'");

if(!$query) {
echo "SQL ikke udført korrekt";
exit;
}

while($row=mysql_fetch_array($query)){

echo "Id: ".$row['countryId']."<br>";
echo "Land: ".$row['country']."<br>";
//osv
}
mysql_close($conn);

?>
Avatar billede trayzor Nybegynder
27. juni 2002 - 10:07 #34
for en god ordens skyld er det aldrig smart at kalde tabellen det samme som et kolonnenavn... :o)
Avatar billede elborg Novice
27. juni 2002 - 11:35 #35
Flot arbejde Trayzor
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester