Hejsan, ny på detta forum och ganska ny när det gäller php.
Tänkte lägga till ett register på min hemsida med information om alla låtar och alla mixar med depeche mode. Med andra ord, två kolumner, båda två ska vara sorteringsbara och när man klickar på valfri mix ska man komma till en sida där all information om just den kmixen finns.
Någon som har ett script eller vet var jag kan söka ett.
Sedan problem 2:
Skulle vilja ha en liten ruta där det visas vad som har hänt i depeche modes karriör hittills just den aktuella dagen. Går det att fixa?
Samma här, någon som har ett script eller vet var jag kan söka ett?
Förstod inte riktigt hur du ville att det skulle se ut men här har du iaf en liten kod som kräver att du har en MySQL databas med åtminstonde kolumnerna:
id
titel
mix
Det borde i alla fall generera nått sånär vad det var du var ute efter.
<?php
echo("
<table>
<tr>
<td><b>Titel</b><br>
<a href='register.php?orderby=titel'>Ordna efter titel</a></td>
<td><b>Mix</b><br>
<a href='register.php?orderby=mix'>Ordna efter mix</a></td>
</tr>
<tr>
");
/// Ansluter
mysql_connect($host,$id,$kod);
mysql_select_db($databas);
/// Hämtar låtarna från databasen
$query = mysql_query("SELECT * FROM tracks ORDER BY $orderby desc");
WHILE($rad=mysql_fetch_array($query)){
$id=$rad["id"];
$titel=$rad["titel"];
$mix=$rad["mix"];
/// Stoppar in värdena i tabellen
echo("
<td><a href='latinfo.php?id=$id'>$titel</a></td>
<td><a href='latinfo.php?id=$id'>$mix</a></td>
");
}
echo("
</tr>
</table>
");
?>
Förstod inte riktigt hur du ville att det skulle se ut men här har du iaf en liten kod som kräver att du har en MySQL databas med åtminstonde kolumnerna:
id
titel
mix
Det borde i alla fall generera nått sånär vad det var du var ute efter.
<?php
echo("
<table>
<tr>
<td><b>Titel</b><br>
<a href='register.php?orderby=titel'>Ordna efter titel</a></td>
<td><b>Mix</b><br>
<a href='register.php?orderby=mix'>Ordna efter mix</a></td>
</tr>
<tr>
");
/// Ansluter
mysql_connect($host,$id,$kod);
mysql_select_db($databas);
/// Hämtar låtarna från databasen
$query = mysql_query("SELECT * FROM tracks ORDER BY $orderby desc");
WHILE($rad=mysql_fetch_array($query)){
$id=$rad["id"];
$titel=$rad["titel"];
$mix=$rad["mix"];
/// Stoppar in värdena i tabellen
echo("
<td><a href='latinfo.php?id=$id'>$titel</a></td>
<td><a href='latinfo.php?id=$id'>$mix</a></td>
");
}
echo("
</tr>
</table>
");
?>
Säg bara till om det är något!
Blev så nyfiken så jag testade koden idag, den verkar fungera efter lite inställnings problem (från min sida). Fick ändra "WHILE($rad=mysql_fetch_array($query)){" till "WHILE($rad=mysql_query($query)){" så krånglade det inte med min domän.
Bara en liten undran, hur ska latinfo.php se ut?
Okej vi säger att du har en egen tabell för låt info. I stort kan sidan se ut såhär:
<?php
/// Deklaration
$latid = $_GET[id]; /// Denna håller reda på vilken låt man vill ha info om
/// Ansluter
mysql_connect($host,$id,$kod);
mysql_select_db($databas);
/// Hämtar låtinfo från databasen med limit 1
$query = mysql_query("SELECT * FROM tracks_info WHERE latid = $latid ORDER BY id desc LIMIT 1");
WHILE($rad=mysql_query($query)){
$titel=$rad["titel"];
$mix=$rad["mix"];
$text=$rad["text"];
/// Skriver en söt liten info text om låten/mixen
echo("
<b>$titel <i>($mix)</i></b>
<br>$text
");
}
?>
Det där genererar en sida som inte är mycket mer för världen än vad det ser ut som ovan. Men funka ska det göra iaf.
Observera att i denna tabell (tracks_info) behövs dessa fält:
id (rekommenderat)
titel
mix
text
latid
latid har vi för när du lägger till en ny låt sparar du dess id i fältet låtid i denna tabellen för att hålla rätt på vilken låt infotexten tillhör.
Man skulle kunna lagra allt i en och samma tabell men det blir inte lika kul och med detta kan man bygga en mer dynamisk sida ifall man kommer på fler funktioner efter hand.
Mer om din andra funktion fårbli tills imorrn
Fler frågor så är det bara att sägatill =)
Om ditt andra problem. Skapa en tabell i mySQL (eller det DBHS som du nu använder). I tabellen skall det finnas följande kolumner: id, datum, händelse. I SQL-frågan så hämtar du hem alla rader som matchar dagens datum, men med valfritt år, mao, %-07-22. Sedan är det bara för dig att via det året som händelsen inträffade beräkna skillnaden från dagens datum...
Fast du borde kunna hitta exemepelvis födelsedags script och liknande. Det är ju bara att skriva in en händelse istället för namnet på personen som fyller år...
Då är jag tillbaka igen.
Satt och försökte pussla ihop en add.php
Väljer jag att gå in på latinfo.php eller register.php efter det syns inte mina inlägg. Kollade på min server och informationen ligger där.
Någon som har en aning?
<html>
\<head\>
\<title\>Lägg till information i en databas\</title\>
\</head\>
\<body\>
\<form method="POST" action="add.php"\>
\<b\>Låt\</b\>\<br/\>
\<input type="text" size="30" name="titel"\>\<p/\>
\<b\>Mix\</b\>\<br/\>
\<input type="text" size="30" name="mix"\>\<p/\>
\<b\>Text\</b\>\<br/\>
\<input type="text" size="300" name="text"\>\<p/\>
\<input type="submit" size="30" value="Lägg till!"\>\<p/\>
\</form\>
\<?php if(empty($\_POST\['titel'\]))
$namn = "not set";
if(empty($\_POST\['mix'\]))
$dag = "not set";
if(empty($\_POST\['text'\]))
$manad = "not set";
if(!empty($\_POST\['titel'\]))
{
$titel = $\_POST\['titel'\];
$mix = $\_POST\['mix'\];
$text = $\_POST\['text'\];
$connection = mysql_connect("localhost", "", "") or die("Kunde inte skapa koppling!");
mysql_select_db("dmsverige_se") or die("Kunde inte välja databas");
$laggTill = "INSERT INTO tracks_info (titel, mix, text) VALUES ('$titel', '$mix', '$text')";
mysql_query($laggTill) or die("Det gick inte att lägga till information!");
mysql_close($connection);
print("Information lades framgångsrikt till i databasen!");
print("\<hr noshade size=1 color=#000000\>");
}
?\>
\</body\>
Men sparades datan i databasen alltså men kommer inte ut på sidan sen?
Testa att titta på register.php och tryck ctrl+F5 då ska allt komma upp!
Kollade på koden igen och såg att för att listan ska komma upp krävs det ju att du lägger in ovanstående data i tabellen tracks också, iom att det är från den du hämtar all information från på register.php
Så mitt tips nu är att du skrotar tracks tabellen och ändrar koden i register.php så den hämtar informationen från tracks_info istället.
/// Hämtar låtinfo från databasen med limit 1
$info = mysql_query("SELECT * FROM tracks_info ORDER BY id desc LIMIT 1");
WHILE($rad=mysql_query($info)){
Kanske gjort något fel i deklarationen av tabellen?
id står som int(9) med auto_increment
titel står som varchar(50)
mix står som varchar(50)
text står som text
änmdrade till WHILE($rad=mysql_fetch_array och fick detta till svar
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /customers/dmsverige.se/dmsverige.se/httpd.www/register.php on line 28