Seite 1 von 1

FRage zu SQL Code von Funktionpost.php

Verfasst: 20.01.2004 01:38
von rcbcom
Hallo
ich will die Bez."k_id=$k_id" einbauen! Frage wo kann ich in am besten hinsetzten
1
$sql = ($mode != "editpost") ? "INSERT INTO " . TOPICS_TABLE . " (topic_title, topic_extra, topic_poster, topic_time, forum_id, topic_status, topic_type, topic_vote, k_id) VALUES ('$post_subject', '$post_extra', " . $userdata['user_id'] . ", $current_time, $forum_id, " . TOPIC_UNLOCKED . ", $topic_type, $topic_vote, $k_id)" : "UPDATE " . TOPICS_TABLE . " SET topic_title = '$post_subject', topic_extra = '$post_extra', topic_type = $topic_type, k_id=$k_id " . (($post_data['edit_vote'] || !empty($poll_title)) ? ", topic_vote = " . $topic_vote : "") . " WHERE topic_id = $topic_id";
if (!$db->sql_query($sql))
oder so:
2
$sql = ($mode != "editpost") ? "INSERT INTO " . TOPICS_TABLE . " (topic_title, topic_extra, topic_poster, topic_time, forum_id, topic_status, topic_type, topic_vote, k_id) VALUES ('$post_subject', '$post_extra', " . $userdata['user_id'] . ", $current_time, $forum_id, " . TOPIC_UNLOCKED . ", $topic_type, $topic_vote, $k_id)" : "UPDATE " . TOPICS_TABLE . " SET topic_title = '$post_subject', topic_extra = '$post_extra', topic_type = $topic_type, " . (($post_data['edit_vote'] || !empty($poll_title)) ? ", topic_vote = " . $topic_vote :, "k_id=$k_id ") . " WHERE topic_id = $topic_id";
if (!$db->sql_query($sql))
Laut den Modbeschreibeung muss k_id=$k_id hinter topic_vote! Aber kann ich das den auch nicht wie bei 1 lassen ?

Wer kennt sich besser mit aus als ich und knn mir ein Tipp geben!

Danke im voraus.

lg.rcbcom



[/quote]

Verfasst: 20.01.2004 01:54
von PhilippK
Nun, auf jeden Fall entspricht Nr. 1 nicht der Nr. 2 - bei 1 wird das ganze bei jeder UPDATE-Abfrage berücksichtigt, bei 2. ist das Ding Teil eines dreifach konditionalen Operators (siehe http://www.php.net/manual/de/language.expressions.php) und wird daher nur berücksichtigt, wenn

Code: Alles auswählen

($post_data['edit_vote'] || !empty($poll_title))
nicht erfüllt ist.
Nr. 2 wird des weiteren zu einem Laufzeitfehler führen, da sich das Komma nach dem Doppelpunkt nicht innerhalb einer Zeichenkette befindet.

Was nun genau richtig ist (evtl. 3. ;-)) können wir dir nur sagen, wenn du uns die genauen Anweisungen des Mods postest.

Gruß, Philipp

RE Mod

Verfasst: 20.01.2004 03:03
von rcbcom
Hallo,
danke für deine Hilfe...so folgendes ich habe hier ein Ausschnitt aus dem Mod's
open includes/function_post.php

##------Find----
function submit_post($mode, &$post_data, &$message, &$meta, &$forum_id, &$topic_id, &$post_id, &$poll_id, &$topic_type, &$bbcode_on, &$html_on, &$smilies_on, &$attach_sig, &$bbcode_uid, &$post_username, &$post_subject, &$post_message, &$poll_title, &$poll_options, &$poll_length)

##----Change the end of row-----
&$poll_options, &$poll_length, &$k_id)

##-----------------------------


##----FIND in function submit_post------
$sql = ( $mode != "editpost" ) ? "INSERT INTO " . TOPICS_TABLE . " (topic_title, topic_poster, topic_time, forum_id, topic_status, topic_type, topic_vote) VALUES ('$post_subject', " . $userdata['user_id'] . ", $current_time, $forum_id, " . TOPIC_UNLOCKED . ", $topic_type, $topic_vote)" : "UPDATE " . TOPICS_TABLE . " SET topic_title = '$post_subject', topic_type = $topic_type, topic_vote = $topic_vote WHERE topic_id = $topic_id";

##----Replace with----

//So soll das ausehen aber nicht bei mir da ich in der Funktionpost.php
$sql = ( $mode != "editpost" ) ? "INSERT INTO " . TOPICS_TABLE . " (topic_title, topic_poster, topic_time, forum_id, topic_status, topic_type, topic_vote, k_id) VALUES ('$post_subject', " . $userdata['user_id'] . ", $current_time, $forum_id, " . TOPIC_UNLOCKED . ", $topic_type, $topic_vote, $k_id)" : "UPDATE " . TOPICS_TABLE . " SET topic_title = '$post_subject', topic_type = $topic_type, topic_vote = $topic_vote, k_id=$k_id WHERE topic_id = $topic_id";

##--------------------

Save an close the function_post.php
Ich habe den Code zu 1 einsgestzt.

1
$sql = ($mode != "editpost") ? "INSERT INTO " . TOPICS_TABLE . " (topic_title, topic_extra, topic_poster, topic_time, forum_id, topic_status, topic_type, topic_vote, k_id) VALUES ('$post_subject', '$post_extra', " . $userdata['user_id'] . ", $current_time, $forum_id, " . TOPIC_UNLOCKED . ", $topic_type, $topic_vote, $k_id)" : "UPDATE " . TOPICS_TABLE . " SET topic_title = '$post_subject', topic_extra = '$post_extra', topic_type = $topic_type, k_id=$k_id " . (($post_data['edit_vote'] || !empty($poll_title)) ? ", topic_vote = " . $topic_vote : "") . " WHERE topic_id = $topic_id";
if (!$db->sql_query($sql))
bei 2 kommt also damit ein Fehler!!
$sql = ($mode != "editpost") ? "INSERT INTO " . TOPICS_TABLE . " (topic_title, topic_extra, topic_poster, topic_time, forum_id, topic_status, topic_type, topic_vote, k_id) VALUES ('$post_subject', '$post_extra', " . $userdata['user_id'] . ", $current_time, $forum_id, " . TOPIC_UNLOCKED . ", $topic_type, $topic_vote, $k_id)" : "UPDATE " . TOPICS_TABLE . " SET topic_title = '$post_subject', topic_extra = '$post_extra', topic_type = $topic_type, " . (($post_data['edit_vote'] || !empty($poll_title)) ? ", topic_vote = " . $topic_vote :, "k_id=$k_id ") . " WHERE topic_id = $topic_id";
if (!$db->sql_query($sql))
Wo müsste ich den k_id=$k_id hinsetzten laut der Beschreibung?
Oder kann ich 1 so lassen ?
Danke für die Hilfe
lg.rcbcom

Re: RE Mod

Verfasst: 20.01.2004 10:43
von PhilippK
rcbcom hat geschrieben://So soll das ausehen aber nicht bei mir da ich in der Funktionpost.php
Da du was?

Variante 1 sieht mir derzeit am vernünftigsten aus...

Gruß, Philipp

RE

Verfasst: 22.01.2004 00:15
von rcbcom
Da du was?
Ich habe die 1 Variante gewählt und "k_id=$k_id " dahin gesetzt. Dann kann ich das bei 1 wohl lassen ?

Verfasst: 22.01.2004 00:37
von PhilippK
Sieht so aus :-)

Gruß, Philipp

RE

Verfasst: 22.01.2004 00:59
von rcbcom
Jopp dann lasse ich es so und noch mals danke :)