Avatar billede showsource Seniormester
14. december 2014 - 19:13 Der er 11 kommentarer og
1 løsning

mysql_result($sql, 0) med mysqli

Hej
Er lige startet på at bruge mysqli ( på tide iøvrigt! )

En ting jeg ikke kan finde, er muligheden for at bruge den gamle mysql_result($query, 0) ?

Vil f.eks. gerne lave en count() for at finde antal rows

$sql = "SELECT COUNT(*) FROM tabel WHERE id > 1";

Med den "go'e" gamle var det bare:

$query = mysql_query($sql);
$antal = mysql_result($query,0);

Nogen løsninger andet end at bruge en while() ?
Avatar billede arne_v Ekspert
14. december 2014 - 19:52 #1
mysqli_fetch_all og [0][0] ?
Avatar billede leif Seniormester
14. december 2014 - 20:08 #2
Eller bruge mysqli_num_rows($antal)
Avatar billede leif Seniormester
14. december 2014 - 20:09 #3
Og så bruge:
$sql = "SELECT * FROM tabel WHERE id > 1";
Avatar billede showsource Seniormester
14. december 2014 - 20:34 #4
Leif:
Vil gerne lave en COUNT() i stedet for SELECT x-antal rows.

arne_v

Har kikket i manual og på nettet, men jeg får det ikke til at funke.


$counter = "";

if ($new = $mysqli->prepare("SELECT COUNT(*) as ialt FROM tabel WHERE vist IS NULL AND kunde_id = ?")) {

    $new->bind_param("i", $kunde_id);

    $kunde_id = $_GET[$linkprefix];

    $new->execute();
   
    // Hvordan skrives koden her så $counter får en værdi?

    $new->close();

}
Avatar billede arne_v Ekspert
14. december 2014 - 20:48 #5
Utestet:

$count = $new->fetch_result()->fetch_all()[0][0];
Avatar billede showsource Seniormester
14. december 2014 - 21:04 #6
Jahh, virker desværre ikke arne_v

Går i seng nu efter min 1. dag med mysqli
(skal tidligt op)
Avatar billede arne_v Ekspert
14. december 2014 - 21:12 #7
$res =  $new->fetch_result();
$all = $res)->fetch_all();
$count = $all[0][0];
Avatar billede showsource Seniormester
15. december 2014 - 04:58 #8
Virkede heller ikke, arne_v.

Men fandt da ud af det:

$counter = "";
if ($stmt = $mysqli->prepare("SELECT COUNT(*) as ialt FROM tabel WHERE vist IS NULL AND kunde_id = ?")) {

    $stmt->bind_param("i", $kunde_id);
    $kunde_id = $_GET[$linkprefix];
    $stmt->execute();
    $stmt->bind_result($ialt);
    $stmt->fetch();
    $counter = $ialt;
    $stmt->close();

}

Ved ikke om det er korrekt kodet, men det virker! :O)

Smid et svar begge to. Jeg kom jo også lige rundt om num_rows i mine forsøg, og den skal jeg jo nok bruge en gang.
Avatar billede showsource Seniormester
30. december 2014 - 19:58 #9
Arrgghhh, må jeg ikke godt få et par svar ?
Måske jeg nok ikke fik "koden", men jeg blev klogere alligevel, takket være jeres input !!!
Avatar billede arne_v Ekspert
01. januar 2015 - 22:48 #10
Jeg har lige testet her.

$n = $stmt->get_result()->fetch_all()[0][0];

virker.
Avatar billede arne_v Ekspert
01. januar 2015 - 22:48 #11
og et svar
Avatar billede showsource Seniormester
04. januar 2015 - 06:27 #12
Ja, det virker også!

if ($stmt = $mysqli->prepare("SELECT COUNT(*) as ialt FROM tabel WHERE aktiv = 2 AND kunde_id = ?")) {

    $stmt->bind_param("i", $kunde_id);
    $kunde_id = $_GET[$linkprefix];
    $stmt->execute();
    $n = $stmt->get_result()->fetch_all()[0][0];
    $stmt->close();

}
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
Computerworld tilbyder specialiserede kurser i database-management

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