Hans-Martin Skrevet 7. november 2014 Del Skrevet 7. november 2014 Hei! Si nå at jeg driver å lager et system, på et vis, hvor jeg allerede har lagt inn 3 forskjellige varemerker. La oss si at disse 3 varemerkene er Cola, Fanta og Pepsi. I min MySQL-database ligger det nå 5 rader med Cola, 3 rader med Fanta og 2 med Pepsi. Vanligvis om man skulle printet ut denne, ville det sette noe alà slik ut: Cola Fanta Cola Pepsi Cola Cola Fanta Cola Fanta Pepsi ------------------------------------- Jeg ønsker heller at dette skal vises på denne måten: Cola x5 Fanta x3 Pepsi x2 ------------------------------------- Så kommer spørsmålet om hvordan jeg gjør dette. Altså hvordan jeg kan få, ved hjelp av PHP og MySQL, scriptet til å skjønne at den skal telle hvor mange rader som har column "NAME", også vise disse til meg som f.eks. "x4". Noen kloke hoder dere ute som har litt peiling på dette? Har forresten gjort en god del søk på kjære Google, men dessverre uten hell.. Lenke til kommentar
cronbach alpha Skrevet 7. november 2014 Del Skrevet 7. november 2014 (endret) Du kan la SQL databasen gjøre jobben for deg, f.eks "NAME" Cola Fanta Cola MySQL query: SELECT NAME, count(*) AS antall FROM brusmerker GROUP BY NAME Som skal gi: NAME antall Cola 2 Fanta 1 Så henter du bare ut Navn og antall Endret 7. november 2014 av cronbach alpha 2 Lenke til kommentar
Hans-Martin Skrevet 7. november 2014 Forfatter Del Skrevet 7. november 2014 Takk for svar! Så en god del av disse når jeg søkte i sted, men problemet er at jeg ikke helt skjønner hvordan jeg skal få lempet dette inn til en PHP-kode? Forresten, er det mulig å fjerne column-navnene, altså "NAME & antall", slik at den viser kun "Cola 1"? Lenke til kommentar
Thorbear Skrevet 7. november 2014 Del Skrevet 7. november 2014 Høres ut som du egentlig leter etter en tutorial til MySQL & PHP Jeg pleier gjerne å foreslå å bruke PDO til det formålet, men kjenner ikke til noen gode tutorials, og vil tro at manual-sidene til PDO er litt vel tunge å komme gjennom om du ikke er sikker på hvordan det hele henger sammen enda. 1 Lenke til kommentar
Hans-Martin Skrevet 7. november 2014 Forfatter Del Skrevet 7. november 2014 Nja, ikke helt det jeg er på ute etter, selv om jeg kanskje burde lese meg godt opp på dette . Uansett, så trenger jeg igrunn kun hjelp med denne delen, fordi det er her jeg står litt fast.. Har prøvd meg frem med følgende: <?php $query = "SELECT * FROM bottles WHERE type = cola"; $results = mysql_query($query); $rows = mysql_num_rows($results); echo $rows ; ?> Men denne ser ikke ut til å fungere i praksis, gitt.. Lenke til kommentar
Thorbear Skrevet 7. november 2014 Del Skrevet 7. november 2014 (endret) Den éne siden i tutorialen jeg lenket til i forrige innlegg beskriver akkurat det du ønsker å få til, det er tilogmed en fungerende kodesnutt på bunnen av siden, også er det bare å putte inn SQL-spørrigen som cronbatch alpha beskrev over her. Det virker lite produktivt om vi bare skal gi deg et ferdig script som kombinerer de to. Og mysql_query() funksjonen skal du holde deg langt unna. Endret 7. november 2014 av Thorbear Lenke til kommentar
Hans-Martin Skrevet 7. november 2014 Forfatter Del Skrevet 7. november 2014 (endret) Jeg forstår. Leste meg smått opp, og prøvde ut denne: <?php $db = @new mysqli('localhost', 'root', '', 'database'); if (mysqli_connect_errno()) { die ('Could not open a mysql connection: '.mysqli_connect_error().'('.mysqli_connect_errno().')'); } $sql = 'SELECT type, count(*) AS type FROM bottles GROUP BY type'; $result = $db->query($sql); if (!$result) { die ('Something is wrong with the query: '.$db->error); } while ($row = $result->fetch_assoc()) { // NULL is equivalent to false // $row is now the array with the values. echo ' '.$row['type'].' '; } echo ' '.$result->num_rows.' '; unset($result); // you can delete the variable with unset() as it isn't needed anymore. ?> Dette vises som følgende på skjermen min: 5 4 2 Følgende informasjon er i databasen: Tror jeg skjønner sånn noen lunde hvordan dette fungerer nå. Eneste problemet er at jeg gjerne skulle ønsket å ha det som illustrert nedenfor. Om dere skjønner..? EDIT: Problemet er ikke å sette det opp med bilder og slikt, problemet er å få splittet opp de 3 sifrene som viser hvor mange av hver type det er i databasen.. I og med at (etter hva jeg vil tro), de drives med følgende koder: echo ' '.$row['type'].' '; echo ' '.$result->num_rows.' '; Endret 7. november 2014 av Hans-Martin Lenke til kommentar
j-- Skrevet 7. november 2014 Del Skrevet 7. november 2014 <?php $db = @new mysqli('localhost', 'root', '', 'database'); if (mysqli_connect_errno()) { die ('Could not open a mysql connection: '.mysqli_connect_error().'('.mysqli_connect_errno().')'); } $sql = 'SELECT barcode, price, image, type, count(*) AS count FROM bottles GROUP BY type'; $result = $db->query($sql); if (!$result) { die ('Something is wrong with the query: '.$db->error); } while ($row = $result->fetch_assoc()) { // NULL is equivalent to false // $row is now the array with the values. echo $row['barcode'] . ' | ' . $row['type'] . ' | ' . $row['image'] . ' | ' . $row['count']; } echo ' '.$result->num_rows.' '; unset($result); // you can delete the variable with unset() as it isn't needed anymore. ?> Burde fungere bedre. Problemet var at du kun echo()-et "type", som var satt til antallet. Og du spurte ikke om de andre kolonnene i databasen. Lenke til kommentar
Hans-Martin Skrevet 7. november 2014 Forfatter Del Skrevet 7. november 2014 Da fungerte den skikkelig, og slik jeg mener den skal gjøre! Tusen hjertelig takk for hjelpen, alle sammen! Lenke til kommentar
j-- Skrevet 7. november 2014 Del Skrevet 7. november 2014 Ikke noe problem. Tok meg tid til å rydde over koden bittelitt, og gjøre den konsekvent ved bruk av objektet ($db) du har, og ikke "procedural style" :-) <?php $db = @new mysqli('localhost', 'root', '', 'database'); if ($db->connect_error) { die ('Could not open a mysql connection: ' . $db->connect_error . ' (' . $db->connect_errno . ')'); } $sql = ' SELECT barcode, price, image, type, count(*) AS count FROM bottles GROUP BY type '; $result = $db->query($sql); if (!$result) { die ('Something is wrong with the query: ' . $db->error); } while ($row = $result->fetch_assoc()) { // NULL is equivalent to false echo $row['barcode'] . ' | ' . $row['type'] . ' | ' . $row['image'] . ' | ' . $row['count'] . "<br>\n"; } echo 'Antall rader: ' . $result->num_rows; unset($result, $row, $sql); // you can delete the variable with unset() as it isn't needed anymore. ?> 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å