Seinen Senf auf einen Beitrag abgeben

Derrty

Mitglied
MoinMoin,

erst mal Hallo ich bin neu hier :-) dennoch habe ich gleich mal eine Frage denn ich komme an einer Stelle einfach nimmer weiter. Muss auch gleich dazu sagen, dass ich mit PHP noch ganz am Anfang stehe aber dennnoch wurde es mich sehr freuen, wenn mir hier jemand helfen könnte, dass ich das Feture hin bekomme.

So nun kommt mal mein Problem und meine Frage.

Ich habe auf meine Seite eine Anzeige, wo ich immer mal wieder ein paar Kinoberichte schreibe also wie es mir so gefallen hat usw. Jetzt habe ich aber auf so vielen Seiten schon gesehen, dass man da dann auch noch seinen Senf ablassen kann. Das wurde ich auch gerne machen. Aber nichbt auf der gleichen Seite sondern gerne soll das so aussehen:

Überschrift
Text
Link zum POPUP

Wenn ich dann auf das POPUP klicke, dann soll eben ein POPUP auf gehen, wo dann eine Eingabemaske ist und wenn ich dann was schreibe, dann soll das in der DB gespeichert werden und dann auch wieder ausgelesen.

SO nun hier mal wie ich meine Daten in der Datebank spiecher:

CREATE TABLE `kino_eigene_berichte` (
`id` int(6) NOT NULL auto_increment,
`name` varchar(30) NOT NULL default '',
`url` varchar(200) NOT NULL default '',
`fsk` varchar(20) NOT NULL default '',
`laenge` varchar(4) NOT NULL default '',
`kinostart` varchar(20) NOT NULL default '0000-00-00',
`genre` varchar(200) NOT NULL default '',
`datum` date NOT NULL default '0000-00-00',
`ueberschrift` varchar(80) NOT NULL default '',
`beschreibung` text NOT NULL,
`logo` varchar(200) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=6 ;

Meint Ihr, dass mir jemand helfen kann dass ich das so auf die Reihe bekomme, dass da dann auch meine User Ihren Senf ablassen können? Das währe echt ganz klasse. Ich bin heute den ganzen Abend Online und auch am PC währe echt ganz klasse, wenn das klappen wurde.

Wünsch euch nun schon mal einen schönen Abend und bedanke mich schon mal für die HIlfe.

Gruß Derrty
 
Hi

wie man über einen Link ein popup öffnet, sollte ja bekannt sein. Gut, über die URL übergibst Du einfach die ID des Filmes mit.

Ein Parameter, der über eine URL übergeben wird, wird mit

$_GET['nameDesParameters']

ausgelesen und kann dann verarbeitet werden.

Auf der Popupseite stellst Du ein Formular zur Verfügung.

Wenn das Formular abgeschickt wird, speicherst Du den Datensatz in Deiner Tabelle, und zwar den Text und auch die ID des Filmes, welche Du z.B. in ein verstecktes Feld (hidden) einliest, ab.

Ist das Procedure durchgeführt, startest Du eine Aktion, die dann das Fenster wieder schließt und evtl. den opener aktualisiert.

Ich nutze für den Fall einen Variable, die ich dann auf true setze (nach dem Speichern des Datensatzes) und führe das Javascirpt dann in den onload des bodys aus. Ich bin allerdings kein Javascirpt-Freak. Mit Sicherheit gibts eine elegantere Lösung. Aber ohne Javascript gehts halt nicht, wenn Du es automatisiert haben möchtest.
 
Hmm ich verstehe gerade nut BF :suspekt:

Wie weiß ich um welche ID es gerade handelt? Und muss ich dann eine ganz neue Tabelle in der DB anlegen?
 
Hmm...

es ist nicht zwingend nötig, eine neue Tabelle anzulegen, Du kannst auch den Senf in die Kinodatentabelle einspeichern und diese dann rekursiv auslesen. Du möchtest doch, dass die Kommentare auch irgendwo ausgelesen werden, oder?

Du kannst aber auch die Kommentare in eine seperate Tabelle einspeichern und diese später mit der Konotabelle verknüpfen. Beides ist möglich.

Also für den Anfang einfach mal die Kino-Daten in einer While-Schleife auslesen und die Links setzen. Die ID des jeweiligen Datensatzes liest Du in die URL zum Popup ein.

bsp.

Code:
<a href="popup.php?id=<? echo $row->id;?>" onclick="window.open('popup.php?id=<? echo $row->id;?>','popup','width=1000,height=500,left=0,top=0,scrollbars');return false;">Hier der Senf</a>

Auf http://www.schattenbaum.net/php/anzeigen.php findest Du übriges ein Beispiel, wie man Daten nach einem Connect zur Datenbank in einer While-Schleife ausgebt.

Sitzt das mal, dann kann man den nächsten Schritt in Angriff nehmen ;)
 
Zuletzt bearbeitet:
So,

hab mich nun mal entschieden, dass ich eine neue Tabelle in der Datenbank anlege. Das sieht nun so aus:

CREATE TABLE `was_meinst_du` (
`id` INT( 6 ) NOT NULL AUTO_INCREMENT ,
`kino_id` INT( 6 ) NOT NULL ,
`name` VARCHAR( 200 ) NOT NULL ,
`text` TEXT NOT NULL ,
`datum` DATETIME NOT NULL ,
`ip` INT( 6 ) NOT NULL ,
PRIMARY KEY ( `id` )
);

Ist das denn OK so?
 
So nun habe ich noch was geamcht:

So rufe ich meine Berichte nun ab:

PHP:
              <?php 
					$sql = "SELECT
								ueberschrift,
								beschreibung,
								logo
							FROM
								kino_eigene_berichte
							";
					$return = mysql_query($sql) OR die(mysql_error());
					?>					
             <?php
					while($_data = mysql_fetch_assoc($return))
					{
						?>

Dann habe ich wo ich das ausgeben lassen tu das so geamcht:

PHP:
                       <td width="26%" valign="top"><div align="center"><img src="<?php echo htmlentities(stripslashes($_data['logo'])); ?>" alt="Grafik"></div></td>
                       <td width="74%" valign="top"><table width="100%"  border="0">
                           <tr>
                             <td bgcolor="#000000"><span class="Stil1"><?php echo htmlentities(echo_message($_data['ueberschrift'])); ?></span></td>
                           </tr>
                         </table>
                           <table width="100%"  border="0">
                             <tr>
                               <td><?php echo htmlentities(echo_message($_data['beschreibung'])); ?></td>
                             </tr>
                             <tr>
                               <td><div align="right"><a href="popup.php?id=<? echo $row->id;?>" onclick="window.open('popup.php?id=<? echo $row->id;?>','popup','width=1000,height=500,left=0,top=0,scrollbars');return false;">Hier der Senf</a></div></td>
                             </tr>
                         </table></td>
                     </tr>
                 </table></td>
               </tr>
               <tr>
                 <td>&nbsp;</td>
               </tr>
               <?php
					}
					?>
             </table>

wenn ich aber das nun aufrufe dann kommt beim SENF keine ID hinten dran :-(
 
Hi

das ist klar, Du hat mein Beispiel übernommen. Du musst die Ausgabe der ID mit Deiner Variable ersetzten. Es gibt da ganz viele unterschiedliche Arten.

Du hast Dich für

while($_data = mysql_fetch_assoc($return))

entschieden, dann wirst Du die ID mit

id=<? echo $_data['DeinFeldID'];?>

aufrufen müssen. Bitte Deine Feldbezeichnung einsetzen und Groß- bzw. Kleinschreibung beachten.
 
HuHu,

ok nun habe ich das so gemacht und sehe da es geht :-)

PHP:
<a href="popup.php?id=<? echo $_data['id'];?>" onclick="window.open('popup.php?id=<? echo $_data['id'];?>','popup','width=1000,height=500,left=0,top=0,scrollbars');return false;">Hier der Senf</a>

So nun mache ich mal ein Formular zum eintragen. Mom kann ein paar Minuten gehen. Währe net wenn du noch ein paar Minuten Zeit hättest.

Gruß Derrty
 
So da bin ich nochmals.

Hab jetzt an der Seite popup.php noch was geamcht.

So sieht mein Formular nun aus:

PHP:
<?php
//Konfigurations Datei einbinden
include "../data/config.php";
include "../configs/functions.php";
if(!empty($_POST))
{
		$sql = "INSERT INTO was_meinst_du 
				(
					name,
					text,
					ip,
					datum
				)
				VALUES
				(
					'" . addslashes($_POST["name"]) . "',
					'" . addslashes($_POST["text"]) . "',
					'" . $_SERVER["REMOTE_ADDR"]. "',
					NOW()
				)
				";
		mysql_query($sql) OR die(mysql_error());
		
		header("Location: ");
exit;
}
?>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Was meinst du</title>
</head>

<body>
<p><strong>Hier siehst du die Beitr&auml;ge:</strong></p>
<table width="95%"  border="0" align="center">
  <?php // News aus der Datebank laden
					$sql = "SELECT
								id,
								name,
								text
								
									FROM
									was_meinst_du
							";
					$return = mysql_query($sql) OR die(mysql_error());
					?>
  <?php
					while($_data = mysql_fetch_assoc($return))
					{
						?>
  <tr>
    <td bgcolor="#999999"><div align="justify"><strong><?php echo $_data['name']; ?></strong></div></td>
  </tr>
  <tr>
    <td height="51" valign="middle" bgcolor="#D6D6D6"><?php echo $_data['text']; ?></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
  <?php
					}
					?>
</table>
<p>&nbsp; </p>
<p>***************************************************************************************</p>
<table width="95%"  border="0" align="center">
  <tr>
    <td><form name="form1" method="post" action="popup.php">
      <table width="100%"  border="0">
        <tr>
          <td width="11%" height="32">Name:</td>
          <td width="89%"><input name="name" type="text" id="name"></td>
        </tr>
        <tr>
          <td height="192">Text:</td>
          <td><textarea name="text" cols="45" rows="10" id="text" onChange="MM_validateForm('text','','R');return document.MM_returnValue"></textarea></td>
        </tr>
        <tr>
          <td height="38">&nbsp;</td>
          <td><input type="submit" name="Submit" value="&gt;&gt; eintragen"></td>
        </tr>
      </table>
    </form></td>
  </tr>
</table>
<p>*************************************************************************************</p>
</body>
</html>

Aber wie muss ich nun die ID von dem Bericht übergeben oder wie auch immer, dass das nachher wieder alles an der richtigen Stelle ausgegeben wird, denn ich will bei dem FIlm X nicht die Beiträge von dem Film C haben

Verstehst du was ich meine?

Gruß Derrty

EDIT: Hab nun auch das dazu, dass ich die Daten auslesen kann. Stimmt das so alles?`
 
Zuletzt bearbeitet:
Huhu

klar verstehe ich :p
Bist echt von der ganz schnellen Truppe und ich vermute sogar, dass Du das auch ganz allein hättest hinbekommen. ;)

Gut, das Insertstatement musst halt auf Deine Tabelle ausrichten (Felder etc.)
Weiterhin setzt Du in das Formular ein inputfeld type=hidden und liest Dir den URL-Paramenter dort rein.

bspr.

<input type="hidden" name="kino_id" value="<? echo $_GET['id'];?>">

So und das Formularfeld kino_id musst Du nun im Insert-Statement verarbeiten.
 

Neue Beiträge

Zurück