Warning: Division by zero in -


(Ashopa) #1

Czy mógłby ktoś pomóc mi rozwiązać problem? Wyskakuje mi błąd:

Warning: Division by zero in /strefa24/wp-content/plugins/fs-real-estate-plugin/includes/compare.php on line 16

Chodzi o dodatek "FireStorm Real Estate" do wordpressa. Mam w dodatku możliwość porównania ofert, ale jak nie zaznaczę żadnej to mi wywala ten błąd. Chciałabym, żeby w tym momencie była informacja typu "Nie wybrałeś żadnej oferty do porównania. Wróć na stronę główną i zaznacz oferty które chcesz porównać".

Kod z którego wywala błąd:

Kod:

<?php

if(isset($_POST)) {

	$count = 0;

	unset($_POST['submit']);

	foreach($_POST as $Listings) {

		if (is_numeric($Listings)) {

			$count++;

			$ListingDetails[$count] = $wpdb->get_row("SELECT * FROM ".$wpdb->prefix."fsrep_listings WHERE listing_id = ".$Listings);

		}

	}

}


if ($FSREPconfig['DisplayCurrency'] == 'Yes') { $CurrencyDisplay = ' '.$FSREPconfig['CurrencyType']; } else { $CurrencyDisplay = ''; }



$TDWidth = 100 / $count;

echo '

'; echo '

| Numer oferty: '.$ListingDetails[$i]->listing_id.' |
| [zobacz]('.fsrep_listing_url_gen(%24ListingDetails%5B%24i%5D-) |
| '; if (file_exists(ABSPATH.'wp-content/uploads/fsrep/houses/small/'.$ListingDetails[$i]->listing_id.'.jpg')) { //echo '['.$ListingDetails[$i]->listing_id.'.jpg.'/wp-content/uploads/fsrep/houses/small/'.%24ListingDetails%5B%24i%5D-)'; echo ']('.get_option('home').'/wp-content/uploads/fsrep/houses/large/'.%24ListingDetails%5B%24i%5D- "pokaz zdjęć")['.$ListingDetails[$i]->listing_id.'.jpg.'/wp-content/uploads/fsrep/houses/small/'.%24ListingDetails%5B%24i%5D-)'; } else { echo 'brak zdjęć'; } echo ']('.fsrep_listing_url_gen(%24ListingDetails%5B%24i%5D- "zobacz") |['.$ListingDetails[$i]->listing_id.'-'.$i.'/wp-content/uploads/fsrep/houses/additional/small/'.%24ListingDetails%5B%24i%5D-)'; } } if ($AdditionalImages != '') { echo ''.$AdditionalImages.''; } } */ // LISTING LABEL echo ''; for($i=1;$i=$count;$i++) { echo ''.$ListingDetails[$i]-listing_label.''; } echo ''; // LISTING PRICE echo ''; for($i=1;$i=$count;$i++) { $ListingPrice = ''; if ($ListingDetails[$i]-listing_price_num != '0.00') { $ListingPrice = $FSREPconfig['Currency'].fsrep_currency_format($ListingDetails[$i]-listing_price_num).$CurrencyDisplay; } echo ''.$ListingPrice.''; } echo ''; // LISTING ADDRESS echo ''; for($i=1;$i=$count;$i++) { echo ''.$ListingDetails[$i]-listing_address_number.' '.$ListingDetails[$i]-listing_address_street.' '.fsrep_get_address_name($ListingDetails[$i]-listing_address_city, 'city').', '.fsrep_get_address_name($ListingDetails[$i]-listing_address_province, 'province').' '.$ListingDetails[$i]-listing_address_postal.''; } echo ''; // LISTING DESCRIPTION echo ''; for($i=1;$i=$count;$i++) { $ListingDescription = substr(stripslashes(nl2br($ListingDetails[$i]-listing_description)), 0, 300); if (strlen($ListingDetails[$i]-listing_description) 300) { $ListingDescription .= '...'; } echo ''.$ListingDescription.''; } echo ''; // CUSTOM FIELDS $Fields = $wpdb-get_results("SELECT * FROM ".$wpdb-prefix."fsrep_fields ORDER BY field_order"); foreach ($Fields as $Fields) { $FieldDisplay = FALSE; $FieldValues = ''; for($i=1;$i=$count;$i++) { $HouseFieldInfo = $wpdb-get_var("SELECT listing_value FROM ".$wpdb-prefix."fsrep_listings_to_fields WHERE field_id = ".$Fields-field_id." AND listing_id = ".$ListingDetails[$i]-listing_id); if ($HouseFieldInfo != '') { $FieldDisplay = TRUE; $FieldValues .= ''.$Fields-field_name.': '.$HouseFieldInfo.''; } else { $FieldValues .= ' '; } } $FieldValues .= ''; if ($FieldDisplay == TRUE) { echo $FieldValues; } } // LISTING LINK echo ''; for($i=1;$i=$count;$i++) { echo ']('.get_option('home').'/wp-content/uploads/fsrep/houses/additional/large/'.%24ListingDetails%5B%24i%5D- "pokaz zdjęć")[zobacz]('.fsrep_listing_url_gen(%24ListingDetails%5B%24i%5D-)'; } echo ''; echo ''; echo ''; ?[/code]

Będę wdzięczna za pomoc :wink:


(adpawl) #2

Na początku może ustaw $count = 1 zamiast =0 i $count++; daj po linijce $ListingDetails[$count] = $wpdb...


(Ashopa) #3

Super, teraz wyświetla pustą ofertę. Czyli już coś lepiej niż było :wink:

A da się w kodzie dodać jakąś informację, żeby zamiast pustej oferty dawało komendę typu "Nie wybrałeś żadnej oferty do porównania. Wróć na stronę główną i zaznacz oferty które chcesz porównać".

??

-- Dodane 31.12.2012 (Pn) 12:01 --

a i jest problem taki, że teraz jak wybiorę jedną ofertę to pokazuje tą pustą również w porównaniu :frowning:


(Grzelix) #4

kolega @adpawl podał Ci dość słabe rozwiązanie (moim zdaniem)

Ja zrobił bym tak:

w 15 linijce dodał:

if($count!=0){

i w ostatniej linijce skryptu

}else{

echo 'Nie wybrałeś żadnej oferty do porównania. Wróć na stronę główną i zaznacz oferty które chcesz porównać'

}

ewentualnie redirect do strony głównej albo w jakiś inny sposób obsłużony przypadek kiedy count jest zerem.

Rozwiązanie typu tam jest zero i jest źle to dajmy 1, hmmm....