Probleme mit Variablenübergabe und UPDATE

He@dkiller

Grünschnabel
Hallo Leute....

Ich muß euch leider schon wieder nerven, aber ich habe nen kleines(?) Problem... :(


Ich habe folgenden Befehl:

PHP:
... Anderer Code ...

<?php
 echo ($list["link_only"] == 1) ? "<a href=\"".$list[urla]."\">" : "<a href=\"index.php?action=show&id=".$list[id]."\">";
?>

... Weiterer Code ...

Jetzt will ich, nach einem Klick auf den Link, das die Spalte hits in der Tabelle tb_daten jeweils um 1 erhöht wird.

Scheinbar hab ich einen dicken Denkfehler, ich hab schon alles mögliche versucht, aber irgendwie schaff ich es nicht, die ID richtig auszulesen, den Klick zu zählen und danach das Ergebnis anzeigen zu lassen.

Bei einem Klick wird eine Datei namens show.php aufgerufen, wobei dort die id des Links mit übergeben wird. Komisch ist, das die Übergabe der ID in diesem Fall funktioniert. Nur wird HITS nicht erhöht ....

Hoffe ich habe mich halbwegs verständlich ausgedrückt...

Wäre echt cool von Euch, wenn Ihr mir evtl. nen Code posten könntet, wie ich das am einfachsten bewerkstelligen könnte... :)

P.S: Ich habe auch schon das Forum durchsucht ;)

Gr33tz, He@dkiller
 
mhh.. mysql_error(); wuerde dir wahrscheinlich mehr helfen.. aber der query sollte so aussehen:

"UPDATE tabelle SET HITS=HITS+1 WHERE ...."

poste doch einfach mal den inhalt von show.php.
 
Den UPDATE - Befehl kenne ich ja, aber irgendwie bin ich zu blöde das ganze in einen Nenner zu bringen :(

Hier die show.php:

PHP:
<?php

   include("config.inc.php");

   $conn = mysql_connect($CFG[db_server], $CFG[db_user], $CFG[db_pass]);
   mysql_select_db($CFG[db_name], $conn);

// Ich denke mal HIER wird die ID ermittelt, die vorher übergeben wurde?

   $list = mysql_fetch_array(mysql_query("SELECT * FROM $CFG[tb_data] WHERE id='$id'", $conn));

// Oder sehe ich das falsch?

   $bereiche = mysql_query("SELECT * FROM $CFG[tb_kat]", $conn);
	while($tmp = mysql_fetch_array($bereiche)){
	  $kat[$tmp[id]] = $tmp[name];
	}

   mysql_close($conn);

?>

<br><p valign="top"><b>» Kategorie:</b><font color="#5A5AE5"> <?php echo $kat[$list[cid]]; ?></p></font>

<?php

echo "<html><head><meta http-equiv='content-type' content='text/html; charset=iso-8859-1'>
       <meta http-equiv='expires' content='0'>
       <LINK href='styles.css' type=text/css rel=stylesheet>
      <title>.$titel.</title>";
echo "</head><body marginwidth=0 marginheight=0>";

echo "<table border='0' cellspacing='0' cellpadding='5' width='650' height='100%'>
        <tr><td valign='top'>";

echo "<div align=center><table width='650' border='0' cellspacing='0' cellpadding='0'>
       <tr><td width='275' height=27><img border='0' src='images/o_links.gif' width='275' height='27'></td>
         <td width='100'><img border='0' src='images/detail.gif' width='100' height='27'></td>
         <td width='275' height='27'><img border='0' src='images/o_rechts.gif' width='275' height='27'></td>
       </tr></table>";

echo "<table width='650' border='0' cellspacing='0' cellpadding='2'><tr><td width='30' height='12'>";

  if ($list[deutsch]!=""){
    echo "<img src=\"$list[deutsch]\">";
	} else {
	echo "&nbsp;";
	}
   if ($list[englisch]!=""){
    echo "<img src=\"$list[englisch]\">";
 	} else {
 	echo "&nbsp";
	}
   if ($list[multilang]!=""){
    echo "<img src=\"$list[multilang]\">";
    } else {
   echo "&nbsp";
    }
   if ($list[sprache]!=""){
    echo "<img src=\"images/$list[sprache].gif\">";
    } else {
   echo "&nbsp";
}

echo "</td><td width='590' align='center'><b>".($list[title])."</b>";

echo "</td><td width='30' align='left'>&nbsp</td>
   </tr></table>";

echo "<hr><table border='0'><tr><td width='110' valign='top' align='center'>";

 if(file_exists("linkimages/".$list[id].".jpg")){
	      echo "<img src=\"linkimages/$list[id].jpg\" width=110 height=150 border=\"0\">";
  }
    if($list[cover]!=""){
        echo "<img src=\"$list[cover]\" width=110 height=150></td>";
         }

echo "</td>";

echo "<td valign='top' height='100%'>".nl2br($list[description])."</div></td>";
        
echo "<table width='650' border='0' cellspacing='0' cellpadding='4'>";

echo "<hr><b>Zusatzinfos:</b><br>".nl2br($list[info])."</div><tr><td width='650' valign='top' align='center'>";

	     if($list[urla]!=""){
		  echo "<a href=\"$list[urla]\">$list[titlea]</a>&nbsp&nbsp&nbsp";
		 }

		 if($list[urlb]!=""){
		  echo "<a href=\"$list[urlb]\">$list[titleb]</a>&nbsp&nbsp&nbsp";
		 }

		 if($list[urlc]!=""){
		  echo "<a href=\"$list[urlc]\">$list[titlec]</a>&nbsp&nbsp&nbsp";
		 }

		 if($list[urld]!=""){
		  echo "<a href=\"$list[urld]\">$list[titled]</a>&nbsp&nbsp&nbsp";
		 }

	  	 if($list[urle]!=""){
		  echo "<a href=\"$list[urle]\">$list[titlee]</a>&nbsp&nbsp&nbsp";
		 }

		 if($list[urlf]!=""){
		  echo "<a href=\"$list[urlf]\">$list[titlef]</a>&nbsp&nbsp&nbsp";
		 }

		 if($list[urlg]!=""){
		  echo "<a href=\"$list[urlg]\">$list[titleg]</a>&nbsp&nbsp&nbsp";
		 }

		 if($list[urlh]!=""){
		  echo "<a href=\"$list[urlh]\">$list[titleh]</a>&nbsp&nbsp";
		 }

echo "</div></td><hr>
       <td width='70' valign='top' align='center'>".($list[groesse])." mb</div>
      </td></tr></table>";
echo "<div align=center><table width='650' border='0' cellspacing='0' cellpadding='0'>
       <tr><td width='275' height=27><img border='0' src='images/o_links.gif' width='275' height='27'></td>
         <td width='100'><img border='0' src='images/detail.gif' width='100' height='27'></td>
         <td width='275' height='27'><img border='0' src='images/o_rechts.gif' width='275' height='27'></td>
       </tr></table>";
echo "</table></div></body></html>";
?>

Ich muß dabei sagen, das ich einige Hilfe bekommen habe, um dieses ganze Projekt zu realisieren, d.h., ich hab schon einige "vorgefertigte" Scripte bekommen. Aber da ich das für meine Bedürfnisse anpassen muß, und leider noch nicht soviel von PHP und MySQL verstehe (trotz Bücherlesen *g*), stehe ich halt bei einige Sachen derbe auf dem Schlauch :(:(

Aber das Zählen des Klicks muß doch schon VORHER passieren ?

Danke im Vorraus :)
 
JUHUUUUUUUUU ich habs hinbekommen :)

Bin doch nicht so blöd wie ich dachte :p

Ich hab mich mal bei http://schattenbaum.net/php/ umgeschaut und mir das alles in Ruhe durchgelesen.

Dann habe ich Stück für Stück die Anleitung befolgt und die einzelnen Befehle gecodet. Und siehe da, es hat funktioniert :)

Ich danke trotzdem für die Hilfe :):):)

P.S: Hier der Code wie ich es gemacht habe, die Datei wird da wo ich sie benötige includiert:

Datei klick.php

PHP:
<?
// Verbindung zum DB-Server herstellen und in einer Variable speichern (hier $verbindung)
// $variable = mysql_conncet("server","benutzername",benutzerpasswort");

$verbindung = mysql_connect("localhost","","") or die
  ("Keine Verbindung moeglich");

// Hier wird die benötigte DB ausgewählt
// mysql_select_db("tabelle");

  mysql_select_db("test") or die ("Die Datenbank existiert nicht");

// Die benötigten Spalten in der Tabelle auswählen und die Datensätze in einer Variable speichern
// $variable = "SELECT spalte, spalte FROM tabelle";

  $abfrage = "SELECT id, hits FROM tb_daten";

// Hiermit wird die Abfrage ausgeführt und die Daten in einer Variable gespeichert
// in diesem Fall werden die Daten in der Variable $ergebnis gespeichert

  $ergebnis = mysql_query($abfrage);

// hier wird überprüft, ob ein Datensatz, der in der Variable $ergebnis gespeichert ist,
// mit der vorher übergebenen Link-ID, übereinstimmt.

  if($row = mysql_fetch_object($ergebnis))
    {

// hier wird die vorher per GET übergebene Link-ID abgefragt und Einfachheitshalber in einer Variable gespeichert
// $variable = $HTTP_GET_VARS["bezeichner aus dem link (hier id)"];

$id = $HTTP_GET_VARS["id"];

// wenn die Link-ID in der Spalte id mit der vorher übergebenen id übereinstimmt,
// dann wird die Spalte hits um 1 erhöht. Das ganze wird zur Vereinfachung noch in einer Variable gespeichert
// $variable = "UPDATE tabelle SET spalte = spalte+1 WHERE spalte = '$variable'";

$aendern = "UPDATE tb_daten SET hits = hits+1 WHERE id = '$id'";

// hier wird die Query gestartet, die vorher in der Variable gespeichert wurde (hier $aendern)
 mysql_query($aendern);

}

// hier wird die Verbindung geschlossen

mysql_close($verbindung);
?>

Hoffe das ist nicht zu unübersichtlich, bzw. zu umständlich gecodet?

Vielleicht können ja andere Anfänger (so wie ich einer bin), dieses Script gebrauchen ;)

Ich kann nur sagen: Wer lesen kann ist besser dran :)

Gr33tz, He@dkiller
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück