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

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