AnaXyd Skrevet 29. januar 2008 Forfatter Del Skrevet 29. januar 2008 Lenge sida jeg har drivi her gitt.. Uansett, koden over antall varer på lager fungerer ikke. Ihvertfall ikke med flere enn en koder etterhverandre. Går fint å ha en, men når jeg legger til enda en, med 100% riktige databasedetaljer får jeg den erroren. Fikk det heller ikke 100% til med det siste eksempelet du gav. Skal prøve igjen, og se om jeg får til noe. Jeg er også ute etter en funksjon hvor jeg kan finne ut hvor mye penger vi skal ha tjent på putene. Den må da summere alle putene vi har solgt, og gange dette med prisen på produktet, eller noe.. Samt en funksjon som summerer alle putene vi har solgt. (Dette kan jeg muligens klare på egenhånd nå, om jeg bruker noe av du har gitt meg her) Takk for at dere hjelper til, og ekstra stor takk til deg Grimjoey! Lenke til kommentar
AnaXyd Skrevet 31. januar 2008 Forfatter Del Skrevet 31. januar 2008 Prøvde en feilsøking, og sjekker hva den sender som query. Det er: SELECT SUM(antall_rosa) FROM kunder;SELECT rosa_inn FROM lager;SELECT SUM(antall_blaa) FROM kunder; Dette er altså den løkken Grimjoey lagde i forrige post. Ser ikke dette riktig ut? Får "Feil med database." Lenke til kommentar
grimjoey Skrevet 31. januar 2008 Del Skrevet 31. januar 2008 $res = mysql_query( $sql ) or die( 'Feil med database.' ); til: $res = mysql_query( $sql ) or die( mysql_error() ); og post feilmeldingen Lenke til kommentar
AnaXyd Skrevet 2. februar 2008 Forfatter Del Skrevet 2. februar 2008 Der fikk jeg det til! Var navnene i tabellene mine som ikke stemte helt. Gjorde seg når jeg fikk vite hva som var galt! Takk, det fungerer nå ypperlig! Har du forresten noe forslag på det med å regne ut prisen? Lenke til kommentar
grimjoey Skrevet 2. februar 2008 Del Skrevet 2. februar 2008 Total pris? Vet ikke. Hvor lagrer du pris? Lenke til kommentar
AnaXyd Skrevet 3. februar 2008 Forfatter Del Skrevet 3. februar 2008 Er det ikke mulig å ta summen av alle putene, og gange dette med produktprisen? Enten bare ha ett statisk tall (179,- ) eller hente det fra en tabell? Hadde vært litt kjekt å vite hvor mye vi egentlig skulle ha fått tilsammen. Takk for all hjelp du har gitt! Lenke til kommentar
grimjoey Skrevet 3. februar 2008 Del Skrevet 3. februar 2008 (endret) Ut i fra koden jeg skrev kan du gjøre noe slikt <?php $pris = 179; function my_query_single_field( $sql ) { $res = mysql_query( $sql ) or die( 'Feil med database.' ); // kommer denne erroren er det feil i querien. $row = mysql_fetch_row( $res ); return $row[0]; } // her kan du enkelt legge inn andre farger foreach ( array( 'rosa', 'blaa', 'svarte' ) as $farge ) { $kunde = my_query_single_field( 'SELECT SUM(antall_' . $farge . ') FROM kunder;' ); $lager = my_query_single_field( 'SELECT ' . $farge . '_inn FROM lager;' ); $sum[$farge] = ($lager - $kunde); } $totalsum = 0; $out = ''; foreach ( $sum as $k => $v ) { $prissum = ($v * $pris); $totalsum += (int)$v; $out .= "<p>Det er $v $k puter på lager. Totalpris ($pris * $v) = $prissum kr</p>\n"; } $out = str_replace( 'aa', 'å', $out ); print $out; print "<p>Total pris: $totalsum kr</p>"; ?> Endret 3. februar 2008 av grimjoey Lenke til kommentar
AnaXyd Skrevet 3. februar 2008 Forfatter Del Skrevet 3. februar 2008 Ah! Den kan nok brukes! Takk! Jeg tror forresten den koden som regner ut lagerbeholdning ikke fungerer 100% hos meg. Dette kommer ut hos meg: Det er -17 rosa puter på lagerDet er 2 blå puter på lager Det er -51 svarte puter på lager Men det stemmer jo ikke.. Lagde en kjapp summeringsfunksjon for hvor mange puter vi har solgt, og hvor mange vi har fått av hver: Antall rosa puter som er mottatt: 84Antall blå puter som er mottatt: 132 Antall svarte puter som er mottatt: 108 Antall blå puter solgt: 58 Antall rosa puter solgt: 53 Antall svarte puter solgt: 99 Hva kan være feil? Er det noe med min database, eller koden som gjør noe feil? Skal prøve den på en helt ny tabell nå, og se om det blir riktig der.. Lenke til kommentar
grimjoey Skrevet 3. februar 2008 Del Skrevet 3. februar 2008 bytt om på regnestykket. det ser ut som du har $solgt - $lagerbeholdning i stedet for $lagerbeholdning - $solgt i den første outputten der Lenke til kommentar
AnaXyd Skrevet 3. februar 2008 Forfatter Del Skrevet 3. februar 2008 Hmm, merkelig... Jeg prøvde å bytte om på $lager og $kunde i denne: "$sum[$farge] = ($lager - $kunde);" Det eneste som skjedde, var at alle outputtene ble omvendt: Det er 17 rosa puter på lagerDet er -2 blå puter på lager Det er 51 svarte puter på lager Men for meg så virker det som den regner på noe helt annet. For 84 rosa puter - 53 rosa puter er jo ikke noe med 17, men 31! Skal sjekke opp med et annet oppsett, og se om det samme skjer der også.. Lenke til kommentar
grimjoey Skrevet 3. februar 2008 Del Skrevet 3. februar 2008 sant. gjør en print for hvert resultat som kommer fra queriene. så sjekker du manuelt om det stemmer med antallet Lenke til kommentar
AnaXyd Skrevet 3. februar 2008 Forfatter Del Skrevet 3. februar 2008 Okay, i det nye eksempelet fungerte det. Det følger under her: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Test</title> </head> <body> <?php // Innloggingsinformasjon $dbhost = "localhost"; $dbuser = "bruker"; $dbpass = "passord"; $dbname = "database"; //kobler til MySQL $opendb = mysql_connect($dbhost, $dbuser, $dbpass) or die("<p>MySQL status: Could not connect to MySQL<p>" . mysql_error()); //kobler til databasen mysql_select_db($dbname) or die("<p>Database status: Could not connect to database<p>" . mysql_error()); ?> <?PHP function my_query_single_field( $sql ) { $res = mysql_query( $sql ) or die( mysql_error() ); $row = mysql_fetch_row( $res ); return $row[0]; } // her kan du enkelt legge inn andre farger foreach ( array( '1', '2', '3' ) as $tall ) { $kunde = my_query_single_field( 'SELECT SUM(antall_' . $tall . ') FROM test_1;' ); $lager = my_query_single_field( 'SELECT ' . $tall . '_inn FROM test_2;' ); $sum[$tall] = ($kunde - $lager); } $out = ''; foreach ( $sum as $k => $v ) { $out .= "<p>Det er $v $k puter på lager</p>\n"; } $out = str_replace( 'aa', 'å', $out ); print $out; ?> </body> </html> Da har jeg laget to tabeller. test_1 med id, antall_1, antall_2 og antall_3. test_2 med id, 1_inn, 2_inn og 3_inn. Men jeg måtte faktisk bytte om på regnestykket i bunn. $kunde - $lager blir riktig, mens $lager - $kunde blir negative tall. Hvorfor er det slik? Jeg kan ikke fatte det ihvertfall. Uansett, så skjønner jeg ikke hva som kan være galt i den riktige fila mi... Får ta en print på alle variablene der også tenker jeg, og se hva som skjuler seg. Lenke til kommentar
AnaXyd Skrevet 3. februar 2008 Forfatter Del Skrevet 3. februar 2008 Ah! Jeg fant det ut! $lager = my_query_single_field( 'SELECT ' . $farge . '_inn FROM lager;' ); Denne får ikke med seg alt som ligger i lager tabellen, da jeg har flere rader der. Slang på en SUM, og det ble riktig! Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå