2012-04-15 5 views
2

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.

+0

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

+0

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. –

Antwort

1

Der einfachste Weg, dies zu tun wäre:

function isChecked() { 
    # perform SQL query 
    # if value exists, set $exists to true 
    if ($exists) { 
     return "checked"; 
    } else { 
     return ""; 
    } 
} 

<input type="checkbox" <?php echo isChecked() ?> /> 

Offensichtlich müßten Sie Ihren Code anpassen, vielleicht den gesamten Input-Tag in einer Schleife in PHP setzen und schreiben ‚geprüft‘ oder nicht, je nach Ihre Anfrage. Aber der Schlüssel ist:

<input type="checkbox" checked /> Checked by default 
0
<a href="http://notfound.stackexchange.com/">`enter code here` 
<?php $row9=mysql_query("select * from project_cat where des!=''");?> 
Please Select How Did They Do It: <br/> 
<?php 
$query=mysql_query("select * from addproject where page_name='HOW DID THEY DO IT' order by id desc limit 0,1"); 
$get=mysql_fetch_array($query); 
$check=$get['add_project']; 
while($sql9=mysql_fetch_assoc($row9)) {  
    if($check==$sql9['project']) {?>  
    <input type="radio" name="project" value="<?php echo $sql9['project']; ?>" checked="checked" /><?php echo $sql9['project']; ?><br/> 
    <?php } else {?> 
     <input type="radio" name="project" value="<?php echo $sql9['project']; ?>"/><?php echo $sql9['project']; ?><br/>  
    <?php } } ?></a> 
+1

Möchten Sie einige Wörter der Erklärung hinzufügen? –

Verwandte Themen