20. juli 2009 - 14:02Der er
8 kommentarer og 1 løsning
mySQL: Nogen der kan hjælpe med denne "søge-streng"
Jeg kunne godt tænke mig at lave nedenstående lidt ere fikst. Jeg er nybegynder både hvad angår mySQL og PHP, så I må bære over med at jeg måske ikke lige bruge den rigtige jargon:-). Jeg laver følgende søgninger i min db:
$akut = mysqli_query ($conn, "SELECT COUNT(*) as antal FROM erfaring_anaestesier WHERE user = '$_SESSION[user]' AND prioritering = 'Akut'"); $elektiv = mysqli_query ($conn, "SELECT COUNT(*) as antal FROM erfaring_anaestesier WHERE user = '$_SESSION[user]' AND prioritering = 'Elektiv'");
Det virker fint, men kunne man lave en forespørgsel så resultatet blev en array ala
Det måtte meget gerne være sådan, at man ikke skulle definere værdien af 'prioritering', men der blev blot lavet en optælling af hvor mange gange et givent ord forekom.
Den returnerer ingenting. Jeg har prøvet med en anden WHERE-sætning, og det fungerer, så det må være et eller andet med min $_SESSION[user] der ikke er defineret. Det kan jeg bare ikke forstå, for jeg har jo eksempelvis brugt
$akut = mysqli_query ($conn, "SELECT COUNT(*) as antal FROM erfaring_anaestesier WHERE user = '$_SESSION[user]' AND prioritering = 'Akut'");
tidligere på samme sted i koden, og det har virket upåklageligt. Under alle omstændigheder må du lige smide et svar, så du kan få dine point. Tak for hjælpen indtil videre...
SELECT `prioritering`, COUNT(`prioritering`) AS antal FROM `erfaring_anaestesier` WHERE user = '$_SESSION[user]' GROUP BY `prioritering`
giver det rigtige output. Jeg skal imidlertid bruge data i JPGraph, og det er her det går galt. Min kode er:
<?php include ("../../jpgraph/src/jpgraph.php"); include ("../../jpgraph/src/jpgraph_pie.php"); include ("../../jpgraph/src/jpgraph_pie3d.php"); include ("../../dbconnect.inc");
/* $sql = mysqli_query ($conn, "SELECT `anaestesi`, COUNT(`anaestesi`) AS antal FROM `erfaring_anaestesier` GROUP BY `anaestesi`"); while ($row = mysqli_fetch_array($sql)) { $data[] = $row['antal']; $leg[] = $row['anaestesi']; } */ session(start); $sql = mysqli_query ($conn, "SELECT `anaestesi`, COUNT(`anaestesi`) AS antal FROM `erfaring_anaestesier` WHERE user = '$_SESSION[user]' GROUP BY `anaestesi`"); while ($row = mysqli_fetch_array($sql)) { $data[] = $row['antal']; $leg[] = $row['anaestesi']; }
$graph = new PieGraph(475,200,"auto"); $graph->title->Set("Anaestesier fordelt paa anaestesi-form"); $graph->title->SetFont(FF_FONT1,FS_BOLD); $p1 = new PiePlot3D($data); $p1->SetCenter(0.30); $p1->SetLegends($leg); $graph->Add($p1); $graph->Stroke(); ?>
Det virker fint når jeg bruger søgestrengen uden WHERE, men ikke med. Meget mærkeligt!!
det er jo klart det ikke virker hvis din where clause gør at der ikke bliver returneret noget, problemet er nok at hvis en bruger ikke findes i tabellen så får du ikke returneret noget og skal faktisk bruge 0, men det kan der jo laves en tjek på at hvis der ikke bliver returneret noget fra mysql så skal værdien sættes til 0
jeg kender ikke det graf script så jeg aner ikke hvordan det er bygget op, men jeg gætter bare på at det ikke virker uden min. et tomt array, dette kan dog løses ved bare at sætte et tomt array i starten.
Jeg kan dog ikke ikke forstå at der er nødvendigt. Jeg har en session_start(); i mit hovedscript.
Synes godt om
Ny brugerNybegynder
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.