Autor
|
Thread
|
11.02.2007 16:07 Uhr
|
|
Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
Zitat: Also hier mal der von mir der abgeänderte code. Muss ich dann noch jeden Buchstaben einzeln reinschreiben (dass mit den "..." hat nicht funkioniert)? Ich habs jetzt einfach mal bis g gemacht.
Ja, musst du, hatte nur gestern nich so viel zeit 
Hier, zum copy and paste:
PHP:
<?php
$alphabet = array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z");
?>
|
|
|
11.02.2007 17:21 Uhr
|
|
mdean
|
Forenposter
|
|
registriert
|
03.01.2007
|
wohnt in
|
Schweiz
|
Beiträge
|
90
|
|
Funtkioniert immer noch nicht. Es wird einfach "| | | | | | | | | | | | | | | | | | | | | | | | | | " ausgegeben.
Hier noch mal der Code für die Navigation:
PHP:
<?php
$_GET['Interpret'] = isset($_GET['Interpret'])?$_GET['Interpret']:'A';
// Navi-Links erzeugen
$alphabet = array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z");
foreach($alphabet as $letter)
echo "<a href=\"".$_SERVER['PHP_SELF']."?Interpret=".$letter."\"></a> | \n";
if(isset($_GET['Interpret'])){
// auf ein Zeichen kürzen
$_GET['Interpret'] = substr($_GET['Interpret'],0,1);
$sql = "SELECT
NewName,
Interpret,
Songname
FROM
notes
WHERE
Interpret LIKE '".mysql_real_escape_string($_GET['Interpret'])."%'
";
$result = mysql_query($sql);
// Ausgabe
}
else
echo "Wählen Sie bitte den Anfangsbuchstaben des gewünschten Interpreten aus.\n";
?>
Und so gebe ich die Interpreten auf der Seite aus:
PHP:
<?
do {
echo $row_Noten['Interpret'];
}
while ($row_Noten = mysql_fetch_assoc($Noten));
?>
|
|
|
11.02.2007 21:23 Uhr
|
|
Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
ja omg sry ^^
man muss den links natürlich auch nen anzeigetext geben 
PHP:
<?php
$alphabet = array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z");
foreach($alphabet as $letter)
echo "<a href=\"".$_SERVER['PHP_SELF']."?Interpret=".$letter."\">".$letter."</a> | \n";
?>
so muss es heißen
|
|
|
12.02.2007 10:29 Uhr
|
|
mdean
|
Forenposter
|
|
registriert
|
03.01.2007
|
wohnt in
|
Schweiz
|
Beiträge
|
90
|
|
Danke! Die Buchstaben werden jetzt angezeigt. Aber nun noch ein Problem:
Nach dem query sollte doch dann meine Ausgabe kommen.
PHP:
$result = mysql_query($sql);
// Ausgabe <---- Hier
Ich gebe die Interpreten aber, aus layoutgründen an einer anderen Stelle auf meiner Seite aus, mit folgendem Code:
PHP:
<?
do {
echo $row_Noten['Interpret'];
}
while ($row_Noten = mysql_fetch_assoc($Noten));
?>
Wie kann ich jetzt sagen dass die ausgabe für den obigen code erst weiter unten erfolgt?
Hoffe verstehst was ich meine
|
|
|
12.02.2007 17:26 Uhr
|
|
Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
Das "Resultat" des Queries wird doch in der Variable $result gespeichert, deshalb kannst du an jeder beliebigen Stelle danach das Ergebnis ausgeben.
Warum benutzt du eine do-while Schleife, es kann doch auch sein, dass kein Datensatz gefunden wird..
|
|
|
12.02.2007 17:31 Uhr
|
|
mdean
|
Forenposter
|
|
registriert
|
03.01.2007
|
wohnt in
|
Schweiz
|
Beiträge
|
90
|
|
Wie kann ich es ausser der do while schleife noch machen?
Wenn ich einfach eingebe echo $result kommt folgendes: Resource id #9
Dieser Beitrag wurde am 12.02.2007 um 17:49:14 Uhr von mdean zum 1. Mal editiert.
|
|
|
12.02.2007 18:45 Uhr
|
|
Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
Mit einer normalen while-schleife
Das Problem bei der Do-While ist, dass sie auf jeden fall einmal durchläuft, bevor die Bedingung geprüft wird, deshalb würde ich die normale while bevorzugen.
PHP:
while($row = mysql_fetch_assoc($result)){
echo $row['Interpret']"<br>\n";
}
Ein MySQL-Query gibt als Resultat so etwas wie eine "Resultat-Tabellen-ID" zurück, deshalb funzt das mit dem echo nicht so einfach 
mit mysql_fetch_assoc(); holst du dann einen Datensatz aus dieser "Ergebnis-Tabelle" heraus und wenn man das ganze in eine while-Schleife packt, dann liest er eben so lange alle Datensätze aus, bis er beim letzen angekommen ist.
|
|
|
12.02.2007 19:08 Uhr
|
|
mdean
|
Forenposter
|
|
registriert
|
03.01.2007
|
wohnt in
|
Schweiz
|
Beiträge
|
90
|
|
Es kommt eine Fehlermeldung:
Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';' in C:\blabla\index.php on line 277
|
|
|
12.02.2007 20:24 Uhr
|
|
Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
PHP:
<?php
while($row = mysql_fetch_assoc($result)){
echo $row['Interpret']."<br>\n";
}
?>
|
|
|
12.02.2007 21:33 Uhr
|
|
mdean
|
Forenposter
|
|
registriert
|
03.01.2007
|
wohnt in
|
Schweiz
|
Beiträge
|
90
|
|
danke jetzt klappts. Jetzt hab ich aber wieder ein anderes Problem . Wenn es jetzt zum Beispiel mehrere Interpreten mit dem Buchstaben A gibt, weiss ich nur wie man es nach der ID sortiert. Wie kann ich es so machen dass es die Interpreten nach abc sortiert?
Danke für deine Geduld
|
|
|
12.02.2007 23:28 Uhr
|
|
Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
ORDER BY Interpret ASC
^-- aufsteigend
ORDER BY Interpret DESC
^-- absteigend
|
|
|
13.02.2007 11:50 Uhr
|
|
mdean
|
Forenposter
|
|
registriert
|
03.01.2007
|
wohnt in
|
Schweiz
|
Beiträge
|
90
|
|
Es wird jetzt ja eine Liste mit den Interpreten angezeigt. Jetzt wenn man auf einen klickt, sollte die Liste verschwinden und nur noch die Lieder desjenigen Interpreten angezeigt werden (z.B. Interpret - (Album)), und die sollten einen Link auf die Datei die zu demjenigen Lied ergeben. Wie mache ich das?
Ich habs mal so gemacht das die Interpreten als Link erscheinen:
PHP:
<?
while($row = mysql_fetch_assoc($result)){
echo "<a href=\"".$_SERVER['PHP_SELF']."?Int=".$row['Interpret']."\">".$row['Interpret']."</a><br>\n";
}
?>
|
|
|
13.02.2007 17:58 Uhr
|
|
Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
ich würde eine neue Datei anlegen, also nicht
PHP:
<?
while($row = mysql_fetch_assoc($result)){
echo "<a href=\"".$_SERVER['PHP_SELF']."?Int=".$row['Interpret']."\">".$row['Interpret']."</a><br>\n";
}
?>
sondern
PHP:
<?
while($row = mysql_fetch_assoc($result)){
echo "<a href=\"neue_Datei.php?Int=".$row['Interpret']."\">".$row['Interpret']."</a><br>\n";
}
?>
In dieser neuen Datei ließt du dann alle Lieder aus, die zu dem Interpreten gehören, den du ja als $_GET['Int'] in deinem Beispiel übergibst.
Dieser Beitrag wurde am 13.02.2007 um 17:58:21 Uhr von Flitze zum 1. Mal editiert.
|
|
|
13.02.2007 18:25 Uhr
|
|
mdean
|
Forenposter
|
|
registriert
|
03.01.2007
|
wohnt in
|
Schweiz
|
Beiträge
|
90
|
|
Wie lese ich dann auf der detail.php (hab sie so benannt) die Lieder aus? Habs mal so versucht, klappt aber nicht....
PHP:
<?
if(isset($_GET['Int'])){
$sql = "SELECT
NewName,
Interpret,
Songname
FROM
notes
";
$result2 = mysql_query($sql);
}
while($row2 = mysql_fetch_assoc($result2)){
echo "<a href=\"../usercenter/noten/$row2['NewName']".""\">".$row2['Songname']." - ".($row2['Album']"</a><br>\n";
}
?>
|
|
|
13.02.2007 20:37 Uhr
|
|
Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
sieht schwer nach syntaxfehlern aus.. Fehlermeldungen?
versuchs ma so:
PHP:
<?
if(isset($_GET['Int'])){
$sql = "SELECT
NewName,
Interpret,
Songname
FROM
notes
";
$result2 = mysql_query($sql);
while($row2 = mysql_fetch_assoc($result2)){
echo "<a href=\"../usercenter/noten/".$row2['NewName']."\">".$row2['Songname']." - ".($row2['Album']"</a><br>\n";
}
?>
|
|
|
13.02.2007 20:44 Uhr
|
|
mdean
|
Forenposter
|
|
registriert
|
03.01.2007
|
wohnt in
|
Schweiz
|
Beiträge
|
90
|
|
Es kommt ne Fehlermeldung: Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING
|
|
|
13.02.2007 21:40 Uhr
|
|
Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
PHP:
<?
if(isset($_GET['Int'])){
$sql = "SELECT
NewName,
Interpret,
Songname
FROM
notes
";
$result2 = mysql_query($sql);
while($row2 = mysql_fetch_assoc($result2)){
echo "<a href=\"../usercenter/noten/".$row2['NewName']."\">".$row2['Songname']." - ".$row2['Album']."</a><br>\n";
}
?>
|
|
|
13.02.2007 21:46 Uhr
|
|
mdean
|
Forenposter
|
|
registriert
|
03.01.2007
|
wohnt in
|
Schweiz
|
Beiträge
|
90
|
|
Es kommt wieder ein Fehler, jedoch diesmal ein anderer: Parse error: parse error, unexpected $end
EDIT: Hab ne Klammer vergessen.... aber geht trotzdem nicht. Es kommt folgende Meldung: Notice: Undefined index: Album in C:blabal\detail.php on line 301
Wheres the Hood at? -
Notice: Undefined index: Album in C:blabla\detail.php on line 301
Skaterboy -
Notice: Undefined index: Album in C:bla\detail.php on line 301
Highway to Hell -
Dieser Beitrag wurde am 13.02.2007 um 21:49:14 Uhr von mdean zum 1. Mal editiert.
|
|
|
13.02.2007 22:08 Uhr
|
|
mdean
|
Forenposter
|
|
registriert
|
03.01.2007
|
wohnt in
|
Schweiz
|
Beiträge
|
90
|
|
Omg man merkt das es schon spät ist Hab den Fehler gefunden... und gleichzeitig ein anderen entdeckt. Es werden nicht nur diejenigen Songs des ausgewählten Interpreten angezeigt, sondern alle. Wie kann ich das ändern?
|
|
|
13.02.2007 23:03 Uhr
|
|
Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
naja irgendwo muss natürlich noch ein
WHERE
Interpret = '".mysql_real_escape_string($_GET['Int'])."'
rein
|
|
|