Avatar billede curtain Nybegynder
01. februar 2004 - 15:51 Der er 10 kommentarer

Kan ikke vise data i tabel

Hej

Jeg er lige startet på PHP og Mysql. Jeg har en lokal server hvorpå jeg kører mysql og php. Jeg bruger SSH client til at arbejde på serveren fra min computer.
Jeg har så lavet en database ved navn mp3, ved først at skrive ' mysql -u root' og derefter 'create database mp3;', og derefter har jeg skrevet følgende:

CREATE TABLE mp3numre (
kunstner CHAR(50),
titel CHAR(50),
id int(6) NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
dato timestamp(8)
);

For at oprette en tabel med nogle kolonner.

Jeg har derefter lavet følgende i PHP, for at man har mulighed for at indtaste kunstner og titel og så skulle det blive gemt i databasen:

</head>

<body>
<h3 align="center">Tilføj MP3 nummer</h3><br>
<br>
<form action="<? echo $php_self ?>">
Kunstner:<br>
<input type="text" name="kunstner"><br>
<br>
Titel:<br>
<input type="text" name="titel"><br>
<br>
<input type="submit" name="add_mp3" value=" - OK - ">
</form>
<?
if($add_mp3) {
mysql_connect("localhost","root");
mysql_select_db("mp3");
$query = mysql_query("INSERT INTO mp3numre (kunstner, titel)" . "VALUES ('$kunstner','$titel')");
echo "Dit nummer er tilføjet. Tilføj flere eller vis dine numre";
}
?>
</body>
</html>

Problemet er så bare at når jeg indtaster noget i kunstner input feltet og titel input feltet, trykker ok og skriver 'select * from mp3numre;' i min SSH client, skriver den bare:

Empty set (0.00 sec)

Hvordan kan det være og hvad er det jeg gør forkert?

- Hvordan kan jeg i øvrigt få HTML koder ind i et php tag? f.eks inde i echo tagget?
Avatar billede phpwiz Nybegynder
01. februar 2004 - 16:04 #1
</head>

<body>
<h3 align="center">Tilføj MP3 nummer</h3><br>
<br>
<form action="<? echo $php_self ?>" method="post">
Kunstner:<br>
<input type="text" name="kunstner"><br>
<br>
Titel:<br>
<input type="text" name="titel"><br>
<br>
<input type="submit" name="add_mp3" value=" - OK - ">
</form>
<?
if($add_mp3) {
mysql_connect("localhost","root");
mysql_select_db("mp3");
$query = mysql_query("INSERT INTO mp3numre (kunstner, titel) VALUES ('$_POST[kunstner]','$_POST[titel]')");
echo "Dit nummer er tilføjet. Tilføj flere eller vis dine numre";
}
?>
</body>
</html>
Avatar billede curtain Nybegynder
01. februar 2004 - 18:03 #2
Jeg får stadig den samme meddelse med: Empty set (0.00 sec)  Kan jeg ikke tilføje nogle data til min database direkte fra min SSH client, så jeg kan finde ud af om det er min database der er noget galt med?
Avatar billede phpwiz Nybegynder
01. februar 2004 - 19:04 #3
du skal huske at når du logger ind i din mysql

mysql -u root

create database mp3;

use mp3;
Avatar billede phpwiz Nybegynder
01. februar 2004 - 19:04 #4
og derefter :

CREATE TABLE mp3numre (
kunstner CHAR(50),
titel CHAR(50),
id int(6) NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
dato timestamp(8)
);

så skulle det virke
Avatar billede curtain Nybegynder
01. februar 2004 - 19:18 #5
det er også det jeg har gjort :S
Avatar billede erikjacobsen Ekspert
01. februar 2004 - 19:29 #6
Prøv

if(isset($_POST['add_mp3'])) {

Kræver selvfølgelig at du trykker på knappen
Avatar billede phpwiz Nybegynder
01. februar 2004 - 20:07 #7
nej for du skriver ikke use mp3;
Avatar billede Slettet bruger
01. februar 2004 - 21:11 #8
ramlev.dk: Hvis man laver en SELECT uden at have valgt database først, så får man "ERROR 1046: No Database Selected" - ikke "Empty set (0.00 sec)"

Og som svar på anden del af spørgsmålet:

Jo, hvis du vil udskrive html-kode, kan du bare bruge echo. Tit er det lidt lettere (og ser mindre rodet ud) at lave en echo med en masse variable i noget html i stedet for at starte og slutte php-tags hele tiden. De følgende to eksempler gør nøjagtig det samme:

Eksempel 1:
-----------
<?php
echo "<table>\n";
echo "<tr><th>Navn</th><th>Tlfnr.</th></tr>\n";
echo "<tr><td>$navn</td><td>$tlf</td></tr>\n";
echo "</table>\n";
?>

Eksempel 2:
-----------
<table>
<tr><th>Navn</th><th>Tlfnr.</th></tr>
<tr><td><?php echo $navn; ?></td><td><?php echo $tlf; ?></td></tr>
</table>

En detalje, du være opmærksom på er anførselstegn. Hvis du skriver "" uden om teksten, kan du ikke bruge " normalt inde i teksten, men skal skrive \" i stedet. Eller du kan bruge ' i din html-kode.
Avatar billede curtain Nybegynder
02. februar 2004 - 19:46 #9
hvad gør /n?
Avatar billede Slettet bruger
02. februar 2004 - 20:02 #10
Ikke /n men \n og det er bare en kode, der betyder linieskift, så det er lettere at overskue, hvis du bruger "vis kilde", når du ser siden i en browser.

Når man udskriver med echo, kommer der kun lineskift i udskriften, hvis man beder om det. Når man udskriver ved at have tekst udenfor <?php ?>-taggen, kommer der linieskift, der hvor der er linieskift i koden.

Man kunne også skrive sin echo som nedenfor, men det er efter min mening ikke særligt overskueligt.

echo "<table>
";
echo "<tr><th>Navn</th><th>Tlfnr.</th></tr>
";
echo "<tr><td>$navn</td><td>$tlf</td></tr>
";
echo "</table>
";

Og angående anførselstegnene, er her et par forskellige måder at håndtere dem. Igen gør alle linierne i princippet det samme.

echo "<a href='$adresse'>$tekst</a>";
echo "<a href=\"$adresse\">$tekst</a>";
echo '<a href="' . $adresse . '">' . $tekst . '</a>';
echo "<a href=\"" . $adresse "\">" . $tekst . "</a>";

Og et par eksempler, der ikke virker:

echo '<a href="$adresse">$tekst</a>'; // Når ' er brugt udenom fortolkes variable ikke
echo "<a href="$adresse">$tekst</a>"; // Man kan ikke bruge " inde i, når der bruges " udenom
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
Computerworld tilbyder specialiserede kurser i database-management

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