Avatar billede ai_rayzor Nybegynder
18. august 2005 - 09:24 Der er 41 kommentarer og
1 løsning

Find fejlen

Kan i ikke lige finde fejlen her:

<?
// Connect

{
$mysql_host = "localhost";
$mysql_user = "****";
$mysql_password = "******";
$mysql_db = "******";

mysql_connect("$mysql_host", "$mysql_user", "£mysql_password");
//or die('Kunne ikke forbinde til databasen:' .mysql_error();

mysql_select_db("$mysql_db");
//or die ('Kunne ikke vælge databasen. Eksisterer den?')
}

#########################

// MySQL forespørgsel
$sql = "SELECT * FROM news ORDER BY dato";
$result = mysql_query($sql); //or die ('MySQL forespørgsel fejlede:' . mysql_error());


// Echo resultater fra DB i en tabel
//echo "<table>\n";
while ($row = mysql_fetch_array($result))
(
    echo "test<br>";
//    echo "\<tr>\n";
//    foreach ($line as $col_value)
//    (
//        echo "\t\t<td>".$row["id"]."<td>\n";
//    )
//    echo "\t<\tr>\n";

)
//echo "<\table>\n";   


#########################

// Befri hukommelsen
mysql_free_result($result);

// Luk forbindelsen til MySQL
mysql_close(db_connect());
?>

for det gider nemlig ikke at virke hos mig, jeg er sikker på at alle databaser er rigtigt lavet og alle login info til mysql også er rigtige (har blot sløret dem her)
Avatar billede ai_rayzor Nybegynder
18. august 2005 - 09:26 #1
£mysql_password er rettet til:  "$mysql_password"
Avatar billede ai_rayzor Nybegynder
18. august 2005 - 09:27 #2
Se lige bort fra den her også:
// Luk forbindelsen til MySQL
mysql_close(db_connect());
Avatar billede nielle Nybegynder
18. august 2005 - 09:29 #3
Hvordan ser fejlmeddelelsen ud?
Avatar billede nielle Nybegynder
18. august 2005 - 09:30 #4
Sæt die på dine mysql-kald. Det giver nyttig information:

<?
// Connect
$mysql_host = "localhost";
$mysql_user = "****";
$mysql_password = "******";
$mysql_db = "******";

mysql_connect($mysql_host, $mysql_user, $mysql_password) or die(mysql_error());
mysql_select_db("$mysql_db") or die(mysql_error());

// #########################

// MySQL forespørgsel
$sql = "SELECT * FROM news ORDER BY dato";
$result = mysql_query($sql) or die(mysql_error());

// Echo resultater fra DB i en tabel
// echo "<table>\n";
while ($row = mysql_fetch_array($result))
(
    echo "test<br>";
//    echo "\<tr>\n";
//    foreach ($line as $col_value)
//    (
//        echo "\t\t<td>".$row["id"]."<td>\n";
//    )
//    echo "\t<\tr>\n";
)
//echo "<\table>\n";   


#########################

// Befri hukommelsen
mysql_free_result($result) or die(mysql_error());

// Luk forbindelsen til MySQL
mysql_close(db_connect()) or die(mysql_error());
?>
Avatar billede ai_rayzor Nybegynder
18. august 2005 - 09:33 #5
har kopieret din kode over i mit dokument, men intet hjælper, ingen fejl bliver meldt.

hvad gør jeg så ?
Avatar billede nielle Nybegynder
18. august 2005 - 09:34 #6
Hvor mange rækker data har du i din news-tabel?
Avatar billede ai_rayzor Nybegynder
18. august 2005 - 09:35 #7
2 rækker (altså... 2 id's)
jeg er godt nok på herrens mark her
Avatar billede ai_rayzor Nybegynder
18. august 2005 - 09:36 #8
altså:
id skribent tekst dato
id skribent tekst dato

hvis det hjælper :)
Avatar billede nielle Nybegynder
18. august 2005 - 09:37 #9
Prøv lige at sætte denne her rettelse ind:

// Luk forbindelsen til MySQL
mysql_close(db_connect()) or die(mysql_error());
echo "vi kom da her til...";
?>
Avatar billede ai_rayzor Nybegynder
18. august 2005 - 09:38 #10
læg mærke til at jeg ikke længere har en funktion der hedder db_connect, den fjernede jeg da jeg indsatte forbindelsen til mysql direkte.
men jeg prøver da lige :)
Avatar billede ai_rayzor Nybegynder
18. august 2005 - 09:40 #11
nu ser det sådan ud:
<?
// Connect
$mysql_host = "localhost";
$mysql_user = "****";
$mysql_password = "******";
$mysql_db = "*******";

$link = mysql_connect($mysql_host, $mysql_user, $mysql_password) or die(mysql_error());
mysql_select_db("$mysql_db") or die(mysql_error());

// #########################

// MySQL forespørgsel
$sql = "SELECT * FROM news ORDER BY dato";
$result = mysql_query($sql) or die(mysql_error());

// Echo resultater fra DB i en tabel
// echo "<table>\n";
while ($row = mysql_fetch_array($result))
(
    echo "test<br>";
//    echo "\<tr>\n";
//    foreach ($line as $col_value)
//    (
//        echo "\t\t<td>".$row["id"]."<td>\n";
//    )
//    echo "\t<\tr>\n";
)
//echo "<\table>\n"; 


#########################

// Befri hukommelsen
mysql_free_result($result) or die(mysql_error());

// Luk forbindelsen til MySQL
mysql_close($link) or die(mysql_error());
echo "vi kom da her til...";
?>
Avatar billede ai_rayzor Nybegynder
18. august 2005 - 09:41 #12
..men der sker stadig ingenting :(
Jeg har ingen anelse om hvad der sker, men vil tro at det er en fejl i databasekaldet, da jeg jo ikke får nogen info frem?
Avatar billede nielle Nybegynder
18. august 2005 - 09:42 #13
Har du noget kode ovenover det du viser?
Avatar billede nielle Nybegynder
18. august 2005 - 09:43 #14
Hvis det vare en fejl i databasekaldet så skulle die(mysql_error()) jo nettop fortælle hvad - eller i dem mindste - hvor at der er fejl.
Avatar billede ai_rayzor Nybegynder
18. august 2005 - 09:44 #15
ja, jeg har noget kode udover det jeg viser, men det er ganske alm html, som jeg har fjernet nu, og det hjælper stadig intet :(

og jeg får heller ingen fejl fra die(mysql_error())
Avatar billede nielle Nybegynder
18. august 2005 - 09:45 #16
Post lige den komplette kode.
Avatar billede ksoren Nybegynder
18. august 2005 - 09:45 #17
Vis kilde i browseren, hvad får du frem her? Måske du kører med short tags off
Avatar billede ai_rayzor Nybegynder
18. august 2005 - 09:47 #18
den komplette kode er den du ser ovenover :)

Kode fra vis kilde i Firefox:
<html><body></body></html>
Avatar billede nielle Nybegynder
18. august 2005 - 09:49 #19
... den komplette PHP-kode?
Avatar billede ai_rayzor Nybegynder
18. august 2005 - 09:50 #20
den komplette php kode, ja. :)
Avatar billede nielle Nybegynder
18. august 2005 - 09:52 #21
Jeg tror at vi snakker lidt forbin hinanden her; Post venligst den komplette PHP-kode for din side - komplet med html og det hele. :^)
Avatar billede ai_rayzor Nybegynder
18. august 2005 - 09:53 #22
<?
// Connect
$mysql_host = "localhost";
$mysql_user = "******";
$mysql_password = "******";
$mysql_db = "********";

$link = mysql_connect($mysql_host, $mysql_user, $mysql_password) or die(mysql_error());
mysql_select_db("$mysql_db") or die(mysql_error());

// #########################

// MySQL forespørgsel
$sql = "SELECT * FROM news ORDER BY dato";
$result = mysql_query($sql) or die(mysql_error());

// Echo resultater fra DB i en tabel
// echo "<table>\n";
while ($row = mysql_fetch_array($result))
(
    echo "test<br>";
//    echo "\<tr>\n";
//    foreach ($line as $col_value)
//    (
//        echo "\t\t<td>".$row["id"]."<td>\n";
//    )
//    echo "\t<\tr>\n";
)
//echo "<\table>\n"; 


#########################

// Befri hukommelsen
mysql_free_result($result) or die(mysql_error());

// Luk forbindelsen til MySQL
mysql_close($link) or die(mysql_error());
echo "vi kom da her til...";
?>
Avatar billede ai_rayzor Nybegynder
18. august 2005 - 09:56 #23
det er ALT det kode jeg har :)
Avatar billede nielle Nybegynder
18. august 2005 - 09:56 #24
Det er ikke den komplette kode. Du sagde at der var noget html foran. Altsammen, tak.

Det er i hvert fald slet ikke den der side som udskriver "<html><body></body></html>".
Avatar billede ai_rayzor Nybegynder
18. august 2005 - 09:59 #25
Citat:
"..., jeg har noget kode udover det jeg viser, men det er ganske alm html, som jeg har fjernet nu"

Og jo, det er den side, ellers ved jeg ikke da :(
Avatar billede nielle Nybegynder
18. august 2005 - 09:59 #26
Er du sikker på at det overhoved er det script du køre? Der er nemlig ikke noget i din kode som overhovedet kan udskrive "<html><body></body></html>".
Avatar billede ksoren Nybegynder
18. august 2005 - 10:01 #27
Hvis dokumentet præsenterer klienten for præcis 0 bytes output, så vil firefox vise  <html><body></body></html>
Avatar billede nielle Nybegynder
18. august 2005 - 10:03 #28
Prøv at erstatte hele din kode med:

<?php
echo "Kommer dette i det mindste igennem?";
?>
Avatar billede nielle Nybegynder
18. august 2005 - 10:04 #29
PS: Det er grimt når en browser laver om på html-koden. Min mening altså.
Avatar billede ai_rayzor Nybegynder
18. august 2005 - 10:06 #30
Den viser koden korrekt :)  /  :(



PS: Helt enig.
Avatar billede ai_rayzor Nybegynder
18. august 2005 - 10:10 #31
Den laver også koden om i IE, men viser dog HTTPEQUIV tingen.
Avatar billede nielle Nybegynder
18. august 2005 - 10:10 #32
Prøv dette:

<?
echo "DEBUG: I starten...";

// Connect
$mysql_host = "localhost";
$mysql_user = "******";
$mysql_password = "******";
$mysql_db = "********";

$link = mysql_connect($mysql_host, $mysql_user, $mysql_password) or die(mysql_error());
mysql_select_db($mysql_db, $link) or die(mysql_error());

// #########################

// MySQL forespørgsel
$sql = "SELECT * FROM news ORDER BY dato";
$result = mysql_query($sql) or die(mysql_error());

echo "DEBUG: Antal rækker = " . mysql_num_rows();

// Echo resultater fra DB i en tabel
// echo "<table>\n";
while ($row = mysql_fetch_array($result))
(
    echo "test<br>";
//    echo "\<tr>\n";
//    foreach ($line as $col_value)
//    (
//        echo "\t\t<td>".$row["id"]."<td>\n";
//    )
//    echo "\t<\tr>\n";
)
//echo "<\table>\n"; 


#########################

// Befri hukommelsen
mysql_free_result($result) or die(mysql_error());

// Luk forbindelsen til MySQL
mysql_close($link) or die(mysql_error());

echo "DEBUG: I slutningen...";
?>
Avatar billede ai_rayzor Nybegynder
18. august 2005 - 10:10 #33
ksoren:
Jamen, hvad gør man så?
altså... er min table bare tom eller hvad? - for jeg har da skrevet noget i den.
Avatar billede nielle Nybegynder
18. august 2005 - 10:15 #34
Selv hvis din tabel var tom så skulle der jo komme noget ud via:

echo "vi kom da her til...";
Avatar billede ai_rayzor Nybegynder
18. august 2005 - 10:19 #35
jeg har fundet fejlen nu! :D

while ($row = mysql_fetch_array($result))
{
    echo "test<br>";
}

der skal self. være Tuborg klammer om :D
smid svar begge to, hvis i vil have nogen point.
Nielle har hjulpet mest, og vil derfor også få flest point :)
Avatar billede ksoren Nybegynder
18. august 2005 - 10:22 #36
ok, den lagde jeg så ikke lige mærke til :)

Jeg vil klart anbefale, når du sidder på en testserver, at du ændrer display_errors = on i din php.ini

Så havde du fundet fejlen med det samme
Avatar billede nielle Nybegynder
18. august 2005 - 10:23 #37
Den havde jeg slet ikke set. Det burde nu have resulteret i en compiler-fejl i stedet for ingenting.

Men nej, du fandt jo selv fejlen, så ingen point til mig på denne. :^)
Avatar billede nielle Nybegynder
18. august 2005 - 10:23 #38
Aaah display_errors...
Avatar billede ai_rayzor Nybegynder
18. august 2005 - 10:25 #39
jo.. i skal have nogle point begge to, i har stadig forsøgt at hjælpe, og gjort en indsats, i kunne jo lige så vel som jeg selv have fundet fejlen, så jeg belønner efter indsats hvis det altså er i orden :)
Avatar billede nielle Nybegynder
18. august 2005 - 10:27 #40
Hvis du insistere...
Avatar billede ai_rayzor Nybegynder
18. august 2005 - 10:44 #41
det gør jeg :)

ksoren, du må også gerne lægge et svar.
Avatar billede ai_rayzor Nybegynder
18. august 2005 - 11:34 #42
Well.. tror vi giver dig point nielle, ksoren lader ikke høre fra sig =/
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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