06. juli 2004 - 23:13Der er
10 kommentarer og 1 løsning
Fejl i løkke
Hejsa,
Jeg får denne fejl:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/tacklepr/public_html/products/reels/include/fishing-reel-series.php on line 24
- Har gennemgået koden 100 gange og checket navnene midst lige så mange gange, men kan ikke finde fejlen. Er der nogle der kan se den/dem? (linie 24 er linien hvor løkken starter)
$price_check = mysql_query("SELECT * FROM products WHERE series_id='$row2[id]' AND type='Reels' AND validation_status='1' ") or die (mysql_error()); while($price_check = mysql_fetch_array($price_check)) {
$price_check_no = mysql_query("SELECT * FROM prices WHERE product_id='$price_check[id]' ") or die (mysql_error()); $price_check_no = mysql_num_rows($price_check_no); }
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Brug forskellige variabel navne i while($price_check = mysql_fetch_array($price_check)) { Efter første gennemløb overskriver du $price_check. Fx: while($price_check_row = mysql_fetch_array($price_check)) {
Den kommer dog ikke med noget output. Sådan ser den ud nu:
$product_query = mysql_query("SELECT * FROM products WHERE series_id='$row2[id]' AND type='Reels' AND validation_status='1' ") or die (mysql_error()); while($product_result = mysql_fetch_array($product_query)) {
$price_check_no_query = mysql_query("SELECT * FROM prices WHERE product_id='$product_result[id]' ") or die (mysql_error()); $price_check_no = mysql_num_rows($price_check_no_query);
}
if($price_check_no != 0){ echo $price_check_no;
- Den printer ikke noget med min echo, hvis jeg derimod flytter den ind i løkken, så poster den 1 efterfulgt at 100 nuller. Hvorfor kan jeg ikke echo værdien, udenfor løkken? Du besvarrede mit spørgsmål, så du smider bare et svar (hvis du ikke gider at besvarre dette ekstra spørgsmål) :)
nej nej nej... havde lige lavet en laaaaan post, men den oprettede den ikke, da jeg klikkede send :( nå, jeg prøver igen.
Jeg har brugt et døgn på følgene kode, men kan ikke finde en løsning. Sådan fungerer løkken:
- Der søges på alle aktive series i db'en (løkke) - Herefter søges der på alle aktive produkter, udfra fundne serier (løkke) - Herefter checkes der om der er tilføjet priser, til de enkelte produkter (if)
Problemet er at den laver et output for hvert produkt, hvor den kun skal poste for hver serie. Dette skyldes løkken der checker produkterne. Jeg kan dog ikke fjerne denne løkke, da jeg anvender produkt id'erne, når der checkes efter tilføjet priser. Håber du kan se en løsning på mit problem
$query2 = mysql_query("SELECT * FROM series WHERE brand_id='$row[id]' AND type='Reels' AND validation_status='1' ORDER BY series ") or die (mysql_error()); while($row2 = mysql_fetch_array($query2)) {
$query3= mysql_query("SELECT * FROM products WHERE series_id='$row2[id]' AND type='Reels' AND validation_status='1' ") or die (mysql_error()); while($row3 = mysql_fetch_array($query3)) {
$sql_doublecheck3 = mysql_query("SELECT * FROM prices WHERE product_id='$row3[id]' ") or die (mysql_error()); $doublecheck3 = mysql_num_rows($sql_doublecheck3); if($doublecheck3 != 0){
Samme kode (prøvede at gøre det mere overskueligt):
$query2 = mysql_query("SELECT * FROM series WHERE brand_id='$row[id]' AND type='Reels' AND validation_status='1' ORDER BY series ") or die (mysql_error()); while($row2 = mysql_fetch_array($query2)) {
$query3= mysql_query("SELECT * FROM products WHERE series_id='$row2[id]' AND type='Reels' AND validation_status='1' ") or die (mysql_error()); while($row3 = mysql_fetch_array($query3)) {
$sql_doublecheck3 = mysql_query("SELECT * FROM prices WHERE product_id='$row3[id]' ") or die (mysql_error()); $doublecheck3 = mysql_num_rows($sql_doublecheck3); if($doublecheck3 != 0){
Tror jeg løste problemet, sig endelig til hvis det kan gøres bedre (eller mere simplet):
$query2 = mysql_query("SELECT * FROM series WHERE brand_id='$row[id]' AND type='Reels' AND validation_status='1' ORDER BY series ") or die (mysql_error()); while($row2 = mysql_fetch_array($query2)) { unset($no);
$query3= mysql_query("SELECT * FROM products WHERE series_id='$row2[id]' AND type='Reels' AND validation_status='1' ") or die (mysql_error()); while($row3 = mysql_fetch_array($query3)) { $no++;
$sql_doublecheck3 = mysql_query("SELECT * FROM prices WHERE product_id='$row3[id]' ") or die (mysql_error()); $doublecheck3 = mysql_num_rows($sql_doublecheck3); if(($doublecheck3 != 0) && ($no == 1)) {
har desværre ikke lært at anvende join, vil prøve at kigge på det når jeg får mere tid :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.