Avatar billede stoiss Nybegynder
16. december 2005 - 23:59 Der er 12 kommentarer og
1 løsning

Include og Variabel hjælp

hejsa, jeg er i gang med at lave mig en tagwall, og er stødt på et problem

jeg har i en fil der hedder funktioner.php lavet en variabel der hedder $connect som består af:

$connect = '$conn = mysql_connect("localhost", "root", "");
mysql_select_db("bjoler");'


på min "skriv.php" har jeg så skrevet include('funktioner.php');

kan jeg så ikke skriver $connect på min skriv.php side og så den fanger det i funktioner.php, fordi den skriver "No database selected" til mig når jeg køre scriptet .... hjkælp mig lige en gang ik da?:)

.S
Avatar billede polle007 Nybegynder
17. december 2005 - 00:11 #1
Jeg tror du leder efter noget i denne stil

function connect(){
    $GLOBALS['conn'] = mysql_connect("localhost", "root", "");
    mysql_select_db("bjoler");
}

fra skriv.php: connect();
Avatar billede stoiss Nybegynder
17. december 2005 - 00:15 #2
Huh, skal vi ikke bare kalde dig min rednings mand? :D har bøvlet med det siden i går :-P men det virkede sq, tak for hjælpen :) smid et svar så er der point til dig :)

.S
Avatar billede stoiss Nybegynder
17. december 2005 - 00:28 #3
naah, du er ikke helhelt alligevel :) den smækker ikke mine indlæg ind i min database, så der må være noget galt.
Avatar billede stoiss Nybegynder
17. december 2005 - 00:51 #4
Kan jeg ikke lave en INSERT INTO på denne måde:

function indsaet(){
mysql_query("INSERT INTO tagwall (navn, hp, besked) VALUES ('".$_POST['navn']."', '".$_POST['hp']."', '".$_POST['besked']."');") or die(mysql_error());
}

for' det virker sq ik helt :)
Avatar billede repox Seniormester
17. december 2005 - 13:23 #5
Det er fordi det ganske simpelt er forket!
Du kan ikke bare kalde en funktion og så regne med den forstår dine requests... specielt hvis det er en del af din inkluderede fil!

Prøv med:

function indsaet($navn, $hp, $besked) {
mysql_query("INSERT INTO tagwall (navn, hp, besked) VALUES ('".mysql_real_escape_string($navn)."', '".mysql_real_escape_string($hp)."', '".mysql_real_escape_string($besked)."');") or die(mysql_error());

}

og kald din funktion når der skal indsættes således:

indsaet($_POST['navn'], $_POST['hp'], $_POST['besked']);
Avatar billede polle007 Nybegynder
17. december 2005 - 13:29 #6
repox, hvorfor mener du ikke man kalde kalde $_POST, fra en funktion, som ligger i en inkluderet fil?
Avatar billede repox Seniormester
17. december 2005 - 13:32 #7
jeg siger heller ikke man ikke kan... siger bare han ikke skal regne med at det bliver forstået korrekt... har ikke set hans kode...
Avatar billede stoiss Nybegynder
18. december 2005 - 16:16 #8
altså jeg skal kalde mig funktion :
indsaet($_POST['navn'], $_POST['hp'], $_POST['besked']);
eller
$indsaet($_POST['navn'], $_POST['hp'], $_POST['besked']);
?
Avatar billede stoiss Nybegynder
18. december 2005 - 16:27 #9
ingen af dem virker ...
Avatar billede repox Seniormester
18. december 2005 - 20:39 #10
er du sikker på der overhovedet er indhold i dine requests, så?
Avatar billede stoiss Nybegynder
19. december 2005 - 19:01 #11
hmm.... det trorjeg da :-/ den indsætter faktisk ndataerne i min database kan jeg så ... men den henter dem ikke rigtigt igen ...
er dernoget galt med det her?

Funktioner.php :

<?php
//Connect til MySql.
function connect(){
    $GLOBALS['conn'] =  mysql_connect("localhost", "root", "");
mysql_select_db("database");

}
//Indsætter data i databasen.
function indsaet($navn, $hp, $besked) {
mysql_query("INSERT INTO tagwall (navn, hp, besked) VALUES ('".mysql_real_escape_string($navn)."', '".mysql_real_escape_string($hp)."', '".mysql_real_escape_string($besked)."');") or die(mysql_error());

}




//henter indholdet fra databasen
function hent(){
  $GLOBALS['res '] =  mysql_query("select * FROM tagwall ORDER BY id desc");
 
  echo "Navn: ".$row['navn']." - hjemmeside: ".$row['hp']."<br />
".$row['besked']."
<hr />";
}

//Funktioner i tagwallen.
$overskrift = "Bjoler's tagwall"; //overskrift på  tagwallen.
$linie = '<br>'; //linie skift,'<br>'.

?>

skriv.php

<?php

include('funktioner.php');

connect(); //conect fra funktioner.php

echo "$overskrift";
echo "$linie $linie";

//Tjekker om der er skrevet noget i inputtet "besked".
if ($_GET['skriv']=="ok")
{
if ($_POST['besked'] == "")
{
echo 'Du kan ikke poste en tom besked.'; //besked hvis "besked" er tom.
}
else
{
echo "<u>Tak for din besked.</u> $linie $linie"; //besked hvis der står noget i "besked".

indsaet($_POST['navn'], $_POST['hp'], $_POST['besked']);
//Indsættæer dataen i databasen
}
}
else
{
//Input faelterne.
echo "<form action='skriv.php?skriv=ok' method='post'>
      <input name='navn' type='text' value='Navn'>
      <br>
      <input name='hp' type'text' value='Hjemmeside'>
      <br>
      <input name='besked' type='text' value='Besked'>
      <br>
      <input name='submit' type='submit' value='Tag!'>";
    }
echo "$linie $linie";
hent();




?>
Avatar billede stoiss Nybegynder
21. december 2005 - 18:00 #12
hmm... du hjalp mig jo faktisk med det spørgsmålet lød på ... så smid et svar så lukker jeg.
Avatar billede stoiss Nybegynder
26. december 2005 - 23:53 #13
lukker
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