Avatar billede monic Nybegynder
30. oktober 2000 - 20:28 Der er 20 kommentarer og
1 løsning

Kald til MySQL

Hej,
jeg er nybegynder indenfor PHP, Apache og MySQL, men det er nu lykkes mig at få det sat rigtigt op. Jeg har forsøgt mig med følgende to kald, hvoraf førstnævnte ikke udskriver noget som helst, men jeg får heller ikke nogen fejlmeddelelse.
2. bud udskriver de rigtige data - hvad går der galt i første bud og hvad burde der have stået?

1. bud:
<php
$conn = mysql_connect(\"localhost\", \"***\", \"***\");
mysql_select_db(\"Stautrup\");

$resultat = mysql_query(\"select * from Person\");

while ($row = mysql_fetch_array($resultat) {
  echo \"Fornavn: \".$row[\'fornavn\'].
        \" Navn: \".$row[\'navn\'].\"<br>\";
}
?>

2. bud:

<?php
    mysql_connect (\"localhost\", \"***\", \"***\");
 
mysql_select_db (\"Stautrup\");

$q=\'SELECT * FROM person WHERE 1\';

if ($fodselsdato)
{$q.=\" AND fodselsdato LIKE \'$fodselsdato%\'\";}

if ($fornavn)
{$q.=\" AND fornavn LIKE \'$fornavn%\'\";}

if ($navn)
{$q.=\" AND navn LIKE \'$navn%\'\";}

if ($adresse)
{$q.=\" AND adresse LIKE \'$adresse%\'\";}

if ($telefonnummer)
{$q.=\" AND telefonnummer LIKE \'$telefonnummer%\'\";}

if ($email)
{$q.=\" AND email LIKE \'$email%\'\";}

$result = mysql_query ($q);

if ($row = mysql_fetch_array($result)) {

do {
  print $row[\"fodselsdato\"];
  print (\" \");
  print $row[\"fornavn\"];
  print (\" \");
  print $row[\"navn\"];
  print (\" \");
  print $row[\"adresse\"];
  print (\" \");
  print $row[\"telefonnummer\"];
  print (\" \");
  print $row[\"email\"];
  print (\"<P>\");

} while($row = mysql_fetch_array($result));

} else {print \"Sorry, no records were found!\";}

?>

Kan det være at det går galt i første bud fordi jeg ikke tager alle kolonner fra min tabel med?

Ved mit andet eksempel, forstår jeg ikke, hvad %-tegnet bag kolonnenavnet betyder?
Avatar billede jd Nybegynder
30. oktober 2000 - 20:35 #1
Denne linie:

while ($row = mysql_fetch_array($resultat) {

skal se sådan ud:

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

/Jon@z
Avatar billede jd Nybegynder
30. oktober 2000 - 20:39 #2
ang. % så betyder det at adressen må være lig $adresse, eller $adresse+nogetmere
det samme som man bruger når man søger... fx. \'where kolonne like \'%$sogeord%\'... De´t betyder at der både må være noget foran, og/eller noget bagved $sogeord...

/Jon@z
Avatar billede monic Nybegynder
30. oktober 2000 - 20:43 #3
Det er nu rettet, men den udskriver stadig intet?
Har du et bedre bud?
Avatar billede jd Nybegynder
30. oktober 2000 - 20:46 #4
hehe...ja, du mangler et ? på første linie! :O)
Avatar billede jd Nybegynder
30. oktober 2000 - 20:47 #5
altså, <?php
Avatar billede monic Nybegynder
30. oktober 2000 - 20:51 #6
:o)
Rettet, men jeg får stadig intet udskrevet.
Jeg har også lige rettet mit tabelnavn, så det er stavet med småt, men skriptet udskriver stadig intet!?
Avatar billede jd Nybegynder
30. oktober 2000 - 20:56 #7
Og du har stadig det rettede med while()-løkken?
Prøv at skifte disse linier:

$conn = mysql_connect(\"localhost\", \"***\", \"***\");
mysql_select_db(\"Stautrup\");

ud med

$conn = mysql_connect(\"localhost\", \"***\", \"***\") or die(mysql_error());
mysql_select_db(\"Stautrup\") or die(mysql_error());

så får vi nemlig en fejl-meddelelse at vide... (skulle vi da meget gerne!)

Og hedder din db Stautrup med stort \'S\' ?

/Jon@z
Avatar billede monic Nybegynder
30. oktober 2000 - 21:03 #8
Here it goes:
Parse error: parse error in c:\\program files\\apache group\\apache\\htdocs/menu/Holdopstillinger.php3 on line 86

Hmmmm...linie 86 i mit document er tomt. Bagefter mit PHP-kode har jeg noget HTML-kode og dette afsluttes i linje 85, dvs. fra linie 86 og fremefter er der intet mere. Vil det hjælpe at jeg sletter min HTML-kode?

Ja, min database hedder Stautrup med stort S.
Avatar billede jd Nybegynder
30. oktober 2000 - 21:06 #9
for du en parse error når du tilføjer or die(mysql_error()); ??
mysql_error() er en funtion til at retunere fejl fra mysql, og ikke en php-fejl!
Avatar billede monic Nybegynder
30. oktober 2000 - 21:12 #10
Næh, parse error opstår uanset om jeg har \"or die(mysql_error()); med. Mystisk!
Avatar billede jd Nybegynder
30. oktober 2000 - 21:19 #11
Nej, det er ikke mystisk!! Det er såmænd meget logisk! For det betyder at der altså ikke er nogen fejl i opkaldet til mysql, men fejlen er andetsteds i dit script!
Og det kan jeg kune hjælpe med hvis du poster hele scriptet her...

/Jon@z
Avatar billede monic Nybegynder
30. oktober 2000 - 21:30 #12
Okay, her er hele mit php-dokument:

<HTML>
<!-- CREATION DATE: 12-10-2000 -->
<HEAD>
<TITLE>Holdfordeling</TITLE>

</HEAD>
<BODY>
<FONT SIZE=5><FONT COLOR=\"#000000\">Holdoplysninger</FONT></FONT><BR>
Vælg et hold for at få oplysninger om dets træningstidspunkter, træningsbane, trænere, holdledere, kontingent og evt. billeder:
<CENTER>
<FORM ACTION=\"http://www.domain.com/\" METHOD=POST>
<SELECT NAME=\"Valgethold\">
    <OPTION VALUE=\"Puslinge\"> Puslinge
    <OPTION VALUE=\"Piger\"> Piger
    <OPTION VALUE=\"Piger-Junior\"> Piger-Junior
    <OPTION VALUE=\"Drenge\"> Drenge
</SELECT>
</CENTER>
<BR><BR><BR>
<CENTER>
<TABLE BORDER=1>
     

   
    <?php
   
       
       
        $conn = mysql_connect(\"localhost\", \"monic\", \"monic\");
        mysql_select_db(\"Stautrup\");
       
        // Hent først data ud
        $result = mysql_query(\"select * from person\");

   
        // Kør så igennem for hver række
        while ($row = mysql_fetch_array($result)) {
          {echo $row[\"Navn\"];
        }

        mysql_close($conn);       
    ?> 
     

     
    <TR>
      <TD><B>Holdnavn</B><BR></TD>
      <TD>Hentes fra fra ovenstående select...............<BR></TD>
    </TR>
    <TR>
      <TD><B>Træningsstart</B></TD>
      <TD>Hentes fra databasen?</TD>
    </TR>
    <TR>
      <TD><B>Træningstidspunkt</B>...........................</TD>
      <TD>Hentes fra databasen</TD>
    </TR>
    <TR>
      <TD><B>Træningsbane</B></TD>
      <TD>Hentes fra databasen</TD>
    </TR>
    <TR>
      <TD><B>Træner</B></TD>
      <TD>Hentes fra databasen</TD>
    </TR>
    <TR>
      <TD><B>Holdledere</B></TD>
      <TD>Hentes fra databasen</TD>
    </TR>
    <TR>
      <TD><B>Kontingent</B></TD>
      <TD>Hentes fra databasen<BR><B>Har du ikke betalt kontingent er du ikke spilleberettiget,
og <BR>kan dermed ikke deltage i turneringskampe samt træning.</B></TD>
    </TR>
    <TR>
      <TD><B>Billede</B></TD>
      <TD>Hentes fra databasen????</TD>
    </TR>
</TABLE>
</CENTER>
</FORM>


</BODY>
</HTML>
Avatar billede jd Nybegynder
30. oktober 2000 - 21:33 #13
meget simpelt...denne linie:

          {echo $row[\"Navn\"];

skal se sådan ud:

          echo $row[\"Navn\"];

/Jon@z
Avatar billede monic Nybegynder
30. oktober 2000 - 21:36 #14
okay, nu forsvandt fejlmeddelelsen, men jeg får  ikke data returneret fra databasen.
Avatar billede aortsx Nybegynder
31. oktober 2000 - 00:04 #15
Du skal ikke bruge anførselstegn, prøv det her:
echo $row[Navn];
Jeg går ud fra feltet i din tabel hedder Navn.
-hilsen Anders

Avatar billede monic Nybegynder
31. oktober 2000 - 00:11 #16
Hej Anders,

anførelsestegnene er fjernet, men jeg får stadig ikke de ønskede objekter fra databasen vist - faktisk får jeg slet ikke noget output - udover hvad min html-kode skal returnere.

Hilsen
Monic
Avatar billede jd Nybegynder
31. oktober 2000 - 17:34 #17
aortsx-> Man kan da sagtens bruge anførselstegn...

monic-> Du er sikker på at der er indlæg i tabellen..? :O)
...alle de fejl jeg er kommet med, har du ikke sat til det gamle, da de ikke virkede vel?

/Jon@z
Avatar billede monic Nybegynder
31. oktober 2000 - 17:45 #18
Hej Jon@z,

ja, selvfølgelig er der indlæg i tabellen. Hmmm...jeg har ikke lige kigget på min php-side, da det er et skoleprojekt og jeg for øjeblikket arbejder videre med mit bud nummer 2, som jo virker. Jeg er bare lidt af en stædig person, som gerne ville vide, hvorfor mit første bud ikke virkede, når jeg nu havde rettet mig efter manualen.

Jeg er ikke sikker på at jeg forstår din sidste sætning, kan du ikke omformulere den?
Monic
Avatar billede monic Nybegynder
31. oktober 2000 - 21:45 #19
Hej Jon@z,

jeg har droppet det første mysql-kald og arbejder videre på det som virker, men du skal have tak for at du gad og bruge så lang tid på at se på min kode og alle forslagene.

Venlig hilsen
Monica
Avatar billede jd Nybegynder
31. oktober 2000 - 21:48 #20
Det er det jeg er her for! :)

Min sidste sætning skal forstås således:
Nu har du ikke rettet alle de andre fejl jeg har nævnt tilbage til det gamle, bare fordi det ikke så ud til at virke fra starten -vel?

/Jon@z
Avatar billede monic Nybegynder
31. oktober 2000 - 21:54 #21
Det har jeg faktisk ikke - jeg kom bare til at kopiere den forkerte udgave af mit dokument ind til dig. Jeg sidder bag en firewall, så jeg måtte lige skifte computer, da jeg kopiere indlægget ind, da jeg ellers ikke kan få lov til skrive et længere indlæg. Beklager mange gange!
Har du forstand på SQL-tabeller? Så har jeg lige lavet et nyt spørgsmål under kategorien \"MySQL\", som jeg også skal bruge lidt hjælp til og det er knap så omfangsrigt.

Monic
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