mboost-dp1
Søge i MySQL vha. php ???? og udskrive rækken!
- Forside
- ⟨
- Forum
- ⟨
- Support
Hey, jeg har en database som fungerer som et slags skoleskema, hvor man kan indtaste et starttidspunkt i hver sit felt, samt et sluttidspunkt. (og self andre data i andre felter)
mit problem er så at display'e via en webside hvilken række som er aktuel lige nu i forhold til klokkeslettet.
FX_:
Der er matematik kl 13:30:00 til 14:30:00.
Klokken er nu 14:00:00.
find den aktuelle række og udskriv den!
så stå der fx:
fag: Matematik
Lærer Martin
Start: 13:30:00
Slut: 14:30:00
Klasse: 10b
Jeg har selfølgelig googlet i vilden sky, men kan ikke finde noget der duer!
jeg er kommet frem til dette, men det virker ihvertfald ikke!!!
mit problem er så at display'e via en webside hvilken række som er aktuel lige nu i forhold til klokkeslettet.
FX_:
Der er matematik kl 13:30:00 til 14:30:00.
Klokken er nu 14:00:00.
find den aktuelle række og udskriv den!
så stå der fx:
fag: Matematik
Lærer Martin
Start: 13:30:00
Slut: 14:30:00
Klasse: 10b
Jeg har selfølgelig googlet i vilden sky, men kan ikke finde noget der duer!
jeg er kommet frem til dette, men det virker ihvertfald ikke!!!
$time_now="'11:30:00'";
$time_query='SELECT * FROM Data WHERE Start='.$time_now;
$time_result = mysql_query($time_query);
echo mysql_result($result, 'Start').'<br/>';
Ronson (2) skrev:Kan man bare sådan skrive tidspunkter ind som man lyster? Hvordan ligger dataene overhovedet i db'en?
jeg vil tro man på en måde vedhjælp af en 'for'-løkke kan prøve sin vej igennem databasen! men jeg er ikke sikker på det er særligt holdbart når databsen vokser sig størrere!
dataene ligger på hver sin plads i rækken, altså en 'column' for start-tid slut-tid, bruger, klasse osv.
XorpiZ (3) skrev:Noget helt andet er, at din select-sætning er helt forkert.
Du spørger efter alle data, hvor start-tiden er = den indtastede tid. Altså kan du ikke indtaste f.eks. 14:00:00 og få timen, der startede kl. 13:30:00.
Det er netop det der 'bugger' mig! det og så det at jeg ikke engang kan få den til at udskrive rækken selv når jeg søger på det eksakte nummer!
Jeg fandt ud af det!
$time_query='SELECT * FROM Data WHERE Start <= curtime() AND End >= curtime() AND curdate()=Date';
$time_result = mysql_query($time_query);
if (!$time_result) die ("Database access failed: " . mysql_error());
$time_row = mysql_fetch_row($time_result);
$teacher = $time_row[0];
$start = $time_row[1];
$end = $time_row[2];
$date = $time_row[3];
$room = $time_row[4];
$course = $time_row[5];
$information = $time_row[6];
$class = $time_row[7];
Kan dine timer kun ligge på en dag? Ellers skal du nok have noget interval på dit date field.
Udover det, så er det fy-fy at tilgå dine data på den måde. Du bør ALTID bruge navnet på din attribut. Ellers, hvis du så tilføjer en attribut til dit table, så skal du til at ændre i alt din kode.
Jeg vil istedet anbefale:
Eller hvis du kan have flere timer på samme tid i dit system, så en simpel while løkke:
Udover det, så er det fy-fy at tilgå dine data på den måde. Du bør ALTID bruge navnet på din attribut. Ellers, hvis du så tilføjer en attribut til dit table, så skal du til at ændre i alt din kode.
Jeg vil istedet anbefale:
$time_row = mysql_fetch_array($time_result);
$teacher = $time_row['teacher'];
$start = $time_row['start'];
...snip...
Eller hvis du kan have flere timer på samme tid i dit system, så en simpel while løkke:
while ($time_row = mysql_fetch_array($time_result)) {
$teacher = $time_row['teacher'];
$start = $time_row['start'];
...snip...
}
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.