ich diese Tabelle habe,Ankreuzfelder geprüft, ob Werte auf der MySQL-Tabelle existieren
--------------------------------------------
| products_id | related_products_ids |
| ------------------------------------------
| 1 | 2 |
| 1 | 3 |
| 1 | 4 |
--------------------------------------------
Problem 1
Ich habe dieses Kontrollkästchen,
<input value="1" type="checkbox" name="rp_product[]" id="in-category1"> Microsoft IntelliMouse Pro 1
<input value="2" type="checkbox" name="rp_product[]" id="in-category2"> Microsoft IntelliMouse Pro 2
<input value="3" type="checkbox" name="rp_product[]" id="in-category3"> Microsoft IntelliMouse Pro 3
<input value="3" type="checkbox" name="rp_product[]" id="in-category3"> Microsoft IntelliMouse Pro 4
ich diesen Code verwendet,
<?php
echo '<ul id="categorychecklist" class="list:category categorychecklist form-no-clear">';
global $wpdb;
$sql = "SELECT related_products_ids FROM ".TABLE_RELATED_PRODUCTS." where products_id = '" . (int)$HTTP_GET_VARS['pID']."'";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$rp_sql = "select products_id, products_name from ".TABLE_PRODUCTS_DESCRIPTION." where products_id !='" . (int)$HTTP_GET_VARS['pID']."' order by products_name";
$rp_1 = mysql_query($rp_sql);
while($rp_2 = mysql_fetch_array($rp_1)) {
$checked = '';
if ($row['related_products_ids'] == $rp_2['products_id']) $checked = " checked";
echo "<li id=\"category-".$rp_2['products_id']."\" class=\"popular-category\"><label class=\"selectit\"><input value=\"".$rp_2['products_id']."\" type=\"checkbox\" name=\"rp_product[]\" class=\"rp_item\"" . $checked . "> <span>".$rp_2['products_name']."</span></label></li>";
}
mysql_free_result($rp_1);
echo '</ul></div></div>';
?>
Aber mein PHP-Code funktioniert nicht, nur 1 Kontrollkästchen ist aktiviert. Wie kann ich diese Checkboxen checked
machen, wenn ihr Wert in der Datenbanktabelle existiert?
Problem 2
Ich wollte auch die entsprechenden Produkte durch Produkte ids zur Ausgabe,
ich diesen Code verwendet,
$sql = "SELECT related_products_ids FROM ".TABLE_RELATED_PRODUCTS." where products_id = '" . (int)$_GET["products_id"]."'";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
$lst_rp = explode(',', $row['related_products_ids']);
if(mysql_num_rows(mysql_query($sql))){
echo '<ul id="related-products-array">';
foreach($lst_rp as $rp_id) {
$res = "select p.products_id, products_type, pd.products_name, pd.products_description, p.products_model, p.products_quantity, p.products_image, pd.products_url, p.products_price, p.products_tax_class_id, p.products_date_added, p.products_date_available, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . $rp_id . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'";
$result1 = mysql_query($res);
$row1 = mysql_fetch_array($result1);
if(mysql_num_rows(mysql_query($res))){
if ($nw_price = tep_get_products_special_price($rp_id)) {
$products_price1 = '<del>' . $currencies->display_price($row1['products_price'], tep_get_tax_rate($row1['products_tax_class_id'])) . '</del><br><span class="productSpecialPrice">' . $currencies->display_price($nw_price, tep_get_tax_rate($row1['products_tax_class_id'])) . '</span>';
} else {
$products_price1 = $currencies->display_price($row1['products_price'], tep_get_tax_rate($row1['products_tax_class_id']));
}
echo '<li><a href="'.get_permalink($storepage).'?slug=product_info.php&products_id='.$rp_id.'" target="_blank">'.tep_image(DIR_WS_IMAGES . $row1['products_image'], addslashes($row1['products_name']), null, null, 'hspace="5" vspace="5" height="120" width="120"').'<br>'.$row1['products_name'].'</a><br>'.$products_price1.'</li>';
} else {
}
}
echo '</ul>';
} else {
echo 'No related products.';
}
echo '<div style="clear:both;"></div>';
nur ein verwandtes Produkt angezeigt. Ich weiß, dass etwas mit meinem Code nicht stimmt, ich kann es einfach nicht herausfinden.
Bitte Hilfe.
Dieses Thema ist aus, aber ich denke, Sie stark von der Verwendung von sprintf/printf für Gebäude Saiten profitieren könnten. Es würde den obigen Code viel einfacher zum Schreiben, Lesen und Pflegen machen. – Mark
http_get_vars ist veraltet, und Sie sollten es in keinem neuen Code verwenden. Heutzutage ist es '$ _GET'. Sie führen Ihre Abfragen auch mehrere Male aus, was ineffizient ist und angenommen, dass sie erfolgreich waren, was schlecht ist. –