Avatar billede kodak Mester
03. juni 2014 - 00:51 Der er 21 kommentarer

tæl antallet af ens værdier

Jeg har følgendene Mysql tabel:

id - han_user - han_id - title - content
01 - user3 - 299 - a title - some text
02 - user5 - 299 - a title - some text
03 - user1 - 299 - a title - some text
04 - user1 - 299 - a title - some text
05 - user1 - 197 - a title - some text
06 - user1 - 543 - a title - some text
07 - user3 - 299 - a title - some text
08 - user1 - 299 - a title - some text
09 - user5 - 123 - a title - some text
10 - user5 - 299 - a title - some text



Jeg vil gerne kunne tælle antallet an han_id for hver han_user

user1:
197 = 1
299 = 3

User3:
299 = 2

user5:
123 = 1
299 = 2

Dette er mit script:
<?
    include('config.php');
    @session_start();
   
        mysql_connect($mysql['host'],$mysql['user'],$mysql['password']) or die (mysql_error());
        mysql_select_db($mysql['db']) or die (mysql_error());
       
        $result = mysql_query("SELECT * FROM `contact_module` ORDER BY `time` DESC");
        if(mysql_errno() == 1146) {
            mysql_query("CREATE TABLE IF NOT EXISTS `contact_module` (
      `id` int(11) NOT NULL auto_increment,
      `han_user` varchar(255) NOT NULL default '',
      `han_id` varchar(255) NOT NULL default '',
      `title` varchar(255) NOT NULL default '',
      `time` int(11) NOT NULL default '0',
      `content` text NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM;") or die (mysql_error());
            echo'The MySQL tabels er now created!<br/>Please <a href="' . $_SERVER['REQUEST_URI'] . '">refresh</a> the page.';
            exit;
        } else {
            include("navigation.php");
            echo'<div style="display:none;" id="addNews">
                <form method="post" action="contact_scripts.php?action=add&return=' . rawurlencode($_SERVER['REQUEST_URI']) . '">
                    <table>
                        <input type="hidden" name="han_user" value="' . $han_cap . '"/>
                        <tr>
                            <td><p>HAN id<br><input type="text" name="han_id" style="width:540px;"/></p></td>
                        </tr>
                        <tr>
                            <td><p>Overskrift<br><input type="text" name="title" style="width:540px;"/></p></td>
                        </tr>
                        <tr>
                            <td><p>Besked<br>
                                <textarea name="content" style="width:540px; height:75px;"></textarea>
                            </p></td>
                        </tr>
                        <tr>
                            <td style="text-align:right;"><input type="submit" value="Gem" /></td>
                        </tr>
                    </table>
                    <br><br>
   
                </form>
            </div>';
           
            //Prints existing news
            echo'<table cellspacing="5" width="540" bgcolor="#4f4f4f">
                <tr>
                    <td width="60px"><p><strong>Rediger</strong></p></td>
                    <td width="40px"><p><strong>Title/ID</strong></p></td>
                    <td width="200px"><p><strong>Besked</strong></p></td>
                    <td width="70px"><p><strong>Dato</strong></p></td>
                </tr>';
            if ($han_cap) {
                while($row = mysql_fetch_array($result)) {
                    if ($row['han_user'] == $han_cap) {
                    $han_id = $row['han_id'];
                    $han_id_hex = dechex($han_id);
                    $color = substr($han_id_hex.$han_id_hex, 0, 6);
                    $col_num = strlen($color);
                        echo'<tr>
                            <td style="background-color:#'.$color.';"><p>
                                    <a href="#" onclick="if(confirm(\'Er du sikker p&aring;, at du vil slette?\')) {document.location.href=\'contact_scripts.php?deletethis=' . $row['id'] . '&return=' . rawurlencode($_SERVER['REQUEST_URI']) . '\';}">Slet denne</a><br />
                                    <a href="#" onclick="if(confirm(\'Er du sikker p&aring;, at du vil slette?\')) {document.location.href=\'contact_scripts.php?deletehan_id=' . $han_id . '&return=' . rawurlencode($_SERVER['REQUEST_URI']) . '\';}">Slet id</a>
                                    <font color="#'.$color.'">' . $col_num . '</font>
                            </p></td>
                            <td style="background-color:#'.$color.';"><p>
                                <center><p title="' . $han_id . '">' . $row['title'] . '</p></center>
                            </p></td>
                            <td style="background-color:#'.$color.';"><p>
                                ' . $row['content'] . '
                            </p></td>
                            <td style="background-color:#'.$color.';"><p>
                                <center>' . strftime("%a %d. %b %y",$row['time']) . '</center>
                            </p></td>
                        </tr>';
                    }
                }
            } else {
                echo'<tr>
                        <td colspan="4" style="background-color:#6a6a6a;"><p>
                            Ingen Bruger valgt
                        </p></td>
                    </tr>';
                echo'
                    <tr>
                        <form method="post" action="">
                            <table>
                                <tr>
                                    <td><p>Bruger<br><input type="text" name="han_cap" style="width:540px;" /></p></td>
                                </tr>
                                <tr>
                                    <td colspan="2" style="text-align:right;"><input type="submit" value="Set" /></td>
                                </tr>
                            </table>
                        </form>
                    </tr>';
            }
            echo'</table>';
        }
   
    ?>
Avatar billede arne_v Ekspert
03. juni 2014 - 00:58 #1
SELECT han_user,han_id,COUNT(*)
FROM dintabel
GROUP BY han_user,han_id
Avatar billede kodak Mester
03. juni 2014 - 01:10 #2
den udskriver:
Resource id #6

hvad er det?

lige nu har jeg 4 værdi'er
user1
144 = 2
299 = 2

Så kan ikke få det til at passe nogle steder.
Avatar billede kodak Mester
03. juni 2014 - 01:36 #3
$result_ihc_id = mysql_query("SELECT ihc_user,ihc_id,COUNT(*) FROM `contact_module` GROUP BY ihc_user,ihc_id ");

blev indsat.
Avatar billede arne_v Ekspert
03. juni 2014 - 01:47 #4
ja

men mysql_query returnerer jo ikke et id men et result
Avatar billede kodak Mester
03. juni 2014 - 01:49 #5
glemte mysql_num_rows()
Men det er ikke helt korrekt
denne tæller hvor mange forskellige han_id

jeg mangler en der tæller hvor mange ens han_is han_user har.

er det ikke smartest at lave det i en funktion?

id - han_user - han_id - title - content
01 - user3 - 299 - a title - some text
02 - user5 - 299 - a title - some text
03 - user1 - 299 - a title - some text
04 - user1 - 299 - a title - some text
05 - user1 - 197 - a title - some text
06 - user1 - 543 - a title - some text
07 - user3 - 299 - a title - some text
08 - user1 - 299 - a title - some text
09 - user5 - 123 - a title - some text
10 - user5 - 299 - a title - some text

$han_user = "user1";
$han_id = "299";
$Count_han_id = amount_han_id($han_user,$han_id)

Echo $Count_han_id; // 3

kan man lave noget i den stil?
Avatar billede arne_v Ekspert
03. juni 2014 - 01:56 #6
proev lige og udfoer den SQL i PHPMyAdmin (eller hvad du nu bruger) - kig paa output og saa tage det derfra
Avatar billede kodak Mester
03. juni 2014 - 02:03 #7
vil dette ikke virke?

function amount_han_id($han_id,$han_user) {
    $result_han_id = mysql_query("SELECT COUNT(".$han_id.") FROM `contact_module` WHERE `han_user`=".$han_user."GROUP BY han_user,han_id ");
    $value = mysql_num_rows($result_han_id);
    return ($value);
}
Avatar billede arne_v Ekspert
03. juni 2014 - 02:06 #8
nej
Avatar billede kodak Mester
03. juni 2014 - 02:06 #9
SELECT han_user,han_id,COUNT(*) FROM `contact_module` GROUP BY han_user,han_id

tæller at jeg har 3 forskellige han_id'er
Avatar billede kodak Mester
03. juni 2014 - 02:20 #10
men den tæller vist riktigt:
SELECT han_user,han_id,COUNT(*) FROM `contact_module` WHERE `han_id`=320092 GROUP BY han_user,han_id

men hvordan skifter jev verdien af 320092 ?
Avatar billede kodak Mester
03. juni 2014 - 02:41 #11
Den gør det:
SELECT han_user,han_id,COUNT(*) FROM contact_module WHERE han_id='22999' AND han_user='user1' GROUP BY han_user,han_id

Og den gør det (Den sigere bare ikke hvad den har talt):
SELECT COUNT(*) FROM contact_module WHERE han_id='22999' AND han_user='user1' GROUP BY han_user,han_id

men hvordan skifter jeg værdien af 22999 og user1

jeg skan bruge resultaterne i while($row

det var detfor jeg tænkte funktion ville passe godt ind.
Avatar billede erikjacobsen Ekspert
03. juni 2014 - 06:44 #12
Det er meget simplere end du gør det til. Tag udgangspunkt i #1 - for så nemt er det.
Avatar billede kodak Mester
03. juni 2014 - 09:58 #13
ja nu giver den mig dette resultat


han_user - han_id - COUNT(*)
user1 - 22999 - 1
user1 - 320092 - 9
user1 - 320348 - 2
user5 - 22999 - 1

skal jeg så ikke brege en WHERE

eller hvordan udslæser jeg den ellers
jeg har jo begge verdier på siden i forvejen mangler bare 'count'
og den vise sig ud for tilhørendene id inde i en row.
Avatar billede erikjacobsen Ekspert
03. juni 2014 - 10:08 #14
Det kommer jo an på hvad du skal bruge det til :)  Jeg har ikke kigget efter hvad du vil vise på siden.

Men du kunne måske nøjes med at bruge #13 til at vise det du skal vise på siden?
Avatar billede kodak Mester
03. juni 2014 - 11:23 #15
while($row = mysql_fetch_array($result)) {
    if ($row['han_user'] == $han_cap) {
        $han_id = $row['han_id'];
        $han_id_hex = dechex($han_id);
        $color = substr($han_id_hex.$han_id_hex, 0, 6);
        $col_num = strlen($color);
               
    echo'<tr>
        <td style="background-color:#'.$color.';"><p>
            // SKAL VISES HER HVID DET COUNT RESULTATET FOR $han_id OG $han_user //
        </p></td>
        <td style="background-color:#'.$color.';"><p>
            <a href="#" onclick="if(confirm(\'Er du sikker p&aring;, at du vil slette?\')) {document.location.href=\'contact_scripts.php?deletethis=' . $row['id'] . '&return=' . rawurlencode($_SERVER['REQUEST_URI']) . '\';}">Slet denne</a><br />
            <a href="#" onclick="if(confirm(\'Er du sikker p&aring;, at du vil slette?\')) {document.location.href=\'contact_scripts.php?deletehan_id=' . $han_id . '&return=' . rawurlencode($_SERVER['REQUEST_URI']) . '\';}">Slet id</a>
            <font color="#'.$color.'">' . $col_num . '</font>
        </p></td>
        <td style="background-color:#'.$color.';"><p>
            <center><p title="' . $han_id . '">' . $row['title'] . '</p></center>
        </p></td>
        <td style="background-color:#'.$color.';"><p>
            ' . $row['content'] . '
        </p></td>
        <td style="background-color:#'.$color.';"><p>
            <center>' . strftime("%a %d. %b %y",$row['time']) . '</center>
        </p></td>
    </tr>';
    }
}
Avatar billede erikjacobsen Ekspert
03. juni 2014 - 11:36 #16
Når du skriver

  while($row = mysql_fetch_array($result)) {
    if ($row['han_user'] == $han_cap) {

så er det vel fordi du kun vil vise det for en enkelt han_user, den der står i $han_cap  ??

Men hvorfår henter du så alle:

  "SELECT * FROM `contact_module` ORDER BY `time` DESC"

i stedet for at lade databasen nøjes med at hente dem/den fra $han_cap ??
Avatar billede kodak Mester
03. juni 2014 - 12:09 #17
jeg har eksempelvis denne SQL tabel

INSERT INTO `contact_module` (`id`, `ihc_user`, `ihc_id`, `title`, `time`, `content`) VALUES
(98, 'user5', '123', 'is', 1401788787, 'noget'),
(99, 'user5', '456', 'bananer', 1401788815, 'noget'),
(100, 'user5', '789', 'tomater', 1401788840, 'noget'),
(101, 'user5', '123', 'is', 1401788851, 'noget'),
(102, 'user5', '123', 'is', 1401788865, 'noget'),
(103, 'user5', '456', 'bananer', 1401788882, 'noget'),
(104, 'user2', '123', 'hatte', 1401788918, 'noget'),
(105, 'user2', '123', 'hatte', 1401788930, 'noget'),
(106, 'user2', '999', 'stole', 1401788952, 'noget'),
(107, 'user2', '7913', 'huse', 1401788985, 'noget'),
(108, 'user2', '456', 'tv', 1401789015, 'noget');



Den skal gerne vises så ledes:

<chart_data>
    <row>
        <null/>
        <string>user2</string>
        <string>user5</string>
    </row>
    <row>
        <string>123</string>
        <number tooltip='2 input \r hatte'>2</number> // user2
        <number tooltip='3 input \r is'>3</number> // user5
    </row>
    <row>
        <string>456</string>
        <number tooltip='1 input \r tv'>1</number> // user2
        <number tooltip='2 input \r bananer'>2</number> //user5
    </row>
    <row>
        <string>789</string>
        <number tooltip=''>0</number> // user2
        <number tooltip='1 input \r tomater'>1</number> //user5
    </row>
    <row>
        <string>999</string>
        <number tooltip='1 input \r stole'>1</number> // user2
        <number tooltip=''>0</number> //user5
    </row>
    <row>
        <string>7913</string>
        <number tooltip='1 input\r huse'>1</number> // user2
        <number tooltip=''>0</number> //user5
    </row>
</chart_data>
Avatar billede kodak Mester
03. juni 2014 - 12:12 #18
jeg har eksempelvis denne SQL tabel

INSERT INTO `contact_module` (`id`, `ihc_user`, `ihc_id`, `title`, `time`, `content`) VALUES
(98, 'user5', '123', 'is', 1401788787, 'noget'),
(99, 'user5', '456', 'bananer', 1401788815, 'noget'),
(100, 'user5', '789', 'tomater', 1401788840, 'noget'),
(101, 'user5', '123', 'is', 1401788851, 'noget'),
(102, 'user5', '123', 'is', 1401788865, 'noget'),
(103, 'user5', '456', 'bananer', 1401788882, 'noget'),
(104, 'user2', '123', 'hatte', 1401788918, 'noget'),
(105, 'user2', '123', 'hatte', 1401788930, 'noget'),
(106, 'user2', '999', 'stole', 1401788952, 'noget'),
(107, 'user2', '7913', 'huse', 1401788985, 'noget'),
(108, 'user2', '456', 'tv', 1401789015, 'noget');



$ihc_cap = "user2


Den skal gerne vises så ledes:

<chart_data>
    <row>
        <null/>
        <string>user2</string>
    </row>
    <row>
        <string>123</string>
        <number tooltip='2 input \r hatte'>2</number> // user2
    </row>
    <row>
        <string>456</string>
        <number tooltip='1 input \r tv'>1</number> // user2
    </row>
    <row>
        <string>789</string>
        <number tooltip=''>0</number> // user2
    </row>
    <row>
        <string>999</string>
        <number tooltip='1 input \r stole'>1</number> // user2
    </row>
    <row>
        <string>7913</string>
        <number tooltip='1 input\r huse'>1</number> // user2
    </row>
</chart_data>
Avatar billede kodak Mester
15. juni 2014 - 20:06 #19
Et skud?
Avatar billede erikjacobsen Ekspert
15. juni 2014 - 20:15 #20
Hvad er det, der er galt med #1 ?
Avatar billede kodak Mester
15. juni 2014 - 21:42 #21
Mente også svar.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester