problem mit variablen....

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Lord_Femto
Mitglied
Beiträge: 701
Registriert: 19.12.2003 15:53
Wohnort: Berlin

problem mit variablen....

Beitrag von Lord_Femto »

hi leute. folgendes problem.

ich habe eine frage zu php. ich möchte gern eine seite mit lyrics machen. so weit so gut. durch ein einfaches formular können die user einen lyric (songtext) aufschreiben. die felder dafür sind: titel, interpret und text. diese daten werden nach der bestätigung in der datenbank gespeichert. in der datenbank selbst habe ich nun 12 songtexte oder so. nun möchte ich das auch wiedergeben. mittels php. zur zeit benutze ich frames; möchte aber auf diese verzichten. unter www.pandemicbrew.de/lyrics.htm ist noch die alte frame page, doch genauso vom aufbau, möchte ich es mit php haben, doch habe ich einige probleme. ich habe hier schonmal versucht etwas kleines zu schreiben, doch ohne großen erfolg. das ergebnis seht ihr unter www.pandemicbrew.de/lyrics.php
die sterne stehen für die db zugriffsdaten...
Gruß Lord_Femto
visit - http://www.pandemicbrew.de
Project X
Benutzeravatar
Mister_X
Ehemaliges Teammitglied
Beiträge: 7102
Registriert: 24.05.2001 02:00
Wohnort: Augsburg

Beitrag von Mister_X »

Code: Alles auswählen

                           if($titel == "Intro")
                           { echo "<center>§titel<br>&copy; &interpret<br><br>$text</center>"; } 
steht das §titel und &interpret für was bestimmtes oder hast du da nur was mit dem $ Zeichen verwechselt?

Mit dieser if-Abfrage deckst du den Fall ab falls $titel = Intro ist, aber was ist mit den anderen Fällen? Du musst noch einen else Teil mit anhängen.

Außerdem:
erst weist du $titel = $_GET["titel"]; also der Variablen $titel den Inhalt aus der Adressleiste zu und dann überschreibst du den Inhalt mit mysql_result($daten, $i, "titel");
Lord_Femto
Mitglied
Beiträge: 701
Registriert: 19.12.2003 15:53
Wohnort: Berlin

Beitrag von Lord_Femto »

hey danke für die guten tipps allerdings passiert dann immer noch nichts.
hab die zeichen umgetauscht, doch das ergebnis ist das selbe.
Gruß Lord_Femto
visit - http://www.pandemicbrew.de
Project X
Benutzeravatar
Mister_X
Ehemaliges Teammitglied
Beiträge: 7102
Registriert: 24.05.2001 02:00
Wohnort: Augsburg

Beitrag von Mister_X »

a) du greifst jetzt nirgends mehr auf die Variable $_GET['titel'] zu, woher soll das Skript dann wissen was der Benutzer ausgewählt hat?
b) Natürlich wird nichts angezeigt, da deine if Bedinungen nie zutreffen
$titel wird innerhalb der for-Schleife jedesmal ein neuer Wert zugewiesen bis zum letzten Wert innerhalb der Datenbank nämlich "Two"
mache aus

Code: Alles auswählen

if($titel == "Intro") und elseif($titel == "Ballad Of Bobby")
einfach mal

Code: Alles auswählen

if($_GET['titel'] == "Intro") und elseif($_GET['titel'] == "Ballad Of Bobby")
Achja du dürftest dann immernoch einen Fehler in deinem Skript haben, aber vielleicht bekommste den ja selber gelöst. (Hängt mit der for-Schleife zusammen)
Lord_Femto
Mitglied
Beiträge: 701
Registriert: 19.12.2003 15:53
Wohnort: Berlin

Beitrag von Lord_Femto »

so weit so gut aber es klappt noch nicht perfekt.

1.) ich hab den fahler in der for schleífe nicht gefunden.

2.) zeigt er mir, wenn ich auf einen link gehe nur den titel "two" an.

3.) kann ich irgendwie einstellen, dass die linke tabelle oben bleibt und nicht in die mitte rutscht?

4.) kann ich für

Code: Alles auswählen

if($_GET['titel'] == "Intro")
für das wort intro nicht irgendeine variable angeben, so dass ich nicht immer, bei einem neuen eintrag die datei ändern muss und elseif .... ranhängen muss?

Gruß Lord_Femto
visit - http://www.pandemicbrew.de
Project X
Benutzeravatar
Mister_X
Ehemaliges Teammitglied
Beiträge: 7102
Registriert: 24.05.2001 02:00
Wohnort: Augsburg

Beitrag von Mister_X »

diesen Code so umbauen
1. ersetze

Code: Alles auswählen

                     for($i=0; $i<$anzahl; $i++)
                        {
                           $titel = mysql_result($daten, $i, "titel");
                           $interpret = mysql_result($daten, $i, "interpret");
                           $text = mysql_result($daten, $i, "text");
                           echo
                              "<center><br><a href=lyrics.php?titel=$titel>$titel</a><br></center>";
                        } 
mit

Code: Alles auswählen

                     for($i=0; $i<$anzahl; $i++)
                        {
                           $titel = mysql_result($daten, $i, "titel");
                           echo
                              "<center><br><a href=lyrics.php?titel=$titel>$titel</a><br></center>";
                        } 
2. das hängt eben mit deiner for-Schleife zusammen
3. zum td tag noch

Code: Alles auswählen

valign = "top" hinzufügen
4. ersetze

Code: Alles auswählen

                           if($_GET['titel'] == "Intro")
                           { echo "<center>$titel<br>&copy; $interpret<br><br>$text</center>"; }
                           elseif($_GET['titel'] == "Ballad")
                           { echo "<center>$titel<br>&copy; $interpret<br><br>$text</center>"; }
mit

Code: Alles auswählen

$benutzerauswahl = $_GET['titel'];
if ($benutzerauswahl != "")
{
$daten = "";
$daten = mysql_db_query("***********", "SELECT titel, interpret, text from 'PB-Lyrics' WHERE titel = '$benutzerauswahl'");
  if (!$daten)
  {
  echo "nix da";
  }
  else
  {
  $titel = mysql_result($daten, 1, "titel");
  $interpret = mysql_result($daten, 1, "interpret");
  $text = mysql_result($daten, 1, "text");
  echo "$titel <br> $interpret <br> $text";
  }
}
else
{
echo "noch nix ausgewählt";
}
So jetzt habe ich dir fast das ganze Skript geschrieben :)
!Das ganze ist ungetestet und ich habe es einfach mal gerade zusammengetippt!
Ein gutes Tutorial zum PHP lernen: http://www.schattenbaum.net/php
Lord_Femto
Mitglied
Beiträge: 701
Registriert: 19.12.2003 15:53
Wohnort: Berlin

Beitrag von Lord_Femto »

hi
danke erst einmal für deine hilfe, doch es funktioniert irgendwie noch nicht...
Gruß Lord_Femto
visit - http://www.pandemicbrew.de
Project X
Benutzeravatar
Mister_X
Ehemaliges Teammitglied
Beiträge: 7102
Registriert: 24.05.2001 02:00
Wohnort: Augsburg

Beitrag von Mister_X »

Code: Alles auswählen

<html>
<body>
<table width="99%" align="center">
	<tr>
         	<td width="14%" valign="top">
<?php
$vb = mysql_connect('Server', 'Benutzer', 'Passwort');
mysql_select_db('Datenbankname', $vb);
$daten = mysql_query("SELECT titel FROM `PB-Lyrics`");
$anzahl = mysql_num_rows($daten);
for($i=0; $i<$anzahl; $i++)
{
	$titel = mysql_result($daten, $i, "titel");
	echo "<center><br><a href=\"lyrics.php?titel=$titel\">$titel</a><br></center>";
}
?>
		</td>
		<td width="85%">
<?php
$benutzerauswahl = $_GET['titel'];
if ($benutzerauswahl != "")
{
	$daten2 = mysql_query("SELECT * FROM `PB-Lyrics` WHERE titel='$benutzerauswahl'") or die("Abfrage fehlgeschlagen:" . mysql_error());
	$anzahl = mysql_num_rows($daten2);
	if ($anzahl != 1)
	{
		echo "nix da";
	}
	else
	{
		$tab = mysql_fetch_array($daten2);
		$titel = $tab['titel'];
		$interpret = $tab['interpret'];
		$text = $tab['text'];
		echo "$titel <br> $interpret <br> $text";
	}
}
else
{
	echo "noch nix ausgewählt";
}

if (!$vb)
{
	echo "<font color=red size=5>Zur Zeit gibt es Probleme mit der Datenbank.<br>Bitte versuchen Sie es sp&auml;ter noch einmal.<br>Falls das Problem &ouml;fter auftaucht, bitte eine kurz Mail an den <a href=mailto:webmaster@pandemicbrew.de>Webmaster</a> schreiben, Danke!</font>";
}
mysql_close($vb);
?>
		</td>
	</tr>
</table>
</body>
</html>
Bitte editiere deine Beiträge, den nicht funktionsfähigen Code braucht ja jetzt keiner mehr.
Antworten

Zurück zu „Coding & Technik“