Programmieren – die besten Beiträge

PHP: Ergebnis erst später aufdecken nach Antwort?

Hey,

ich habe folgenden html und php-Code.

<form action="Subtraktion (1).php" method="post" target="">
<table>
<tr>
<td><font face="Roboto Slab" size=+1>Anzahl der Aufgaben eingeben</font></td>
<td><input type="Text" name="z" value="" size="" maxlength=""></input></td>
<td align="center"><input type="submit"  style="font-family: 'Roboto Slab'"  background-color="black" name="y" value="Absenden"></td></tr>
</table>
<br>
</form>

<?php
if((isset($_POST['z'])) and (is_numeric($_POST['z'])))
{
$zahl = $_POST['z'];

{

 while($zahl>0)
  {

  $a = rand(5, 10);
  $b = rand(0, 5);
  $erg = $a - $b;
  $zahl = $zahl - 1;

  echo "<table class='Tab'>";
  echo "<table border='1'>";
  echo "<tr> <td>$a - $b = ?</td> <td><input type=\"Text\" name=\g\"  value=\"\">\n</td><td>$a - $b = $erg</td></tr>";
  echo "</table>";
}
}}

?>
</body>
</html>

Damit soll der Nutzer Aufgaben – so viel wie er anfangs ausgewählt hat, berechnet können. Die Aufgaben bestehen hierbei aus zufälligen Zahlen. Meine Frage wäre jetzt: wie ich es schaffen kann (mit eher einfachen Befehlen), den Code so zu schreiben, dass das Ergebnis – hier: $a - $b = $erg – erst enthüllt wird, sobald der Nutzer ins Textfeld seine Antwort zur Aufgabe eingegeben hat?

Hier nochmals die Stelle (auch oben zusammen mit dem gesamten Code sichtbar):

echo "<table class='Tab'>";
echo "<table border='1'>";
echo "<tr> <td>$a - $b = ?</td> <td><input type=\"Text\" name=\g\" value=\"\">\n</td><td>$a - $b = $erg</td></tr>";
echo "</table>";

Vielen Dank :)

HTML, programmieren, rechnen, PHP, Textfeld, Variablen, Zufallszahlen, Antwort

Java eigne Klasse (Bücher ausleihen)?

Hi, also ich soll eine Klasse erstellen nach folgenden Kriterien:

Erstmal sry für den vielen Text, wollte nicht , dass durch das Zusammenfassen mögliche wichtige Informationen verloren gehen ;)

Nun sieht mein Ansatz bis jetzt so aus:

public class Book {
    private String author;
    private String title;
    private LocalDate returnDate;
    private String status;
    public Book(String author, String title, String Status) throws IllegalArgumentException{
        setAuthor(author);
        setTitle(title);
        setReturnDate(returnDate);
        setStatus(status);
    }
    private static boolean checkAuthor(String author){
        return (author.matches("[a-zA-ZäÄöÖüÜß ]") && author.length() >= 2);
    }
    private static boolean checkTitle(String title){
        return (title.length() >= 1 && title.length() < 10);
    }
    public static boolean checkReturnDate(LocalDate returnDate){
        return (  );
    }
    public static boolean checkStatus(String status){
        return (status.equals("rent") || status.equals("not rent"));
    }
    public final void setAuthor(String author) throws IllegalArgumentException{
        if(!checkAuthor(author)){
            throw new IllegalArgumentException("author not valid: "+ author);
        }
        this.author = author;
    }
    public final void setTitle(String title) throws IllegalArgumentException{
        if(!checkTitle(title)){
            throw new IllegalArgumentException("title not valid: "+ title);
        }
        this.title = title;
    }
    private void setReturnDate(LocalDate returnDate) throws IllegalArgumentException{
        if(!checkReturnDate(returnDate)){
            DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd.MM.yyyy");
            throw new IllegalArgumentException("Return Date not valid: " + returnDate.format(dtf));
        }
        this.returnDate = returnDate;
    }
    private void setStatus(String status){
        if(!checkStatus(status)){
            throw new IllegalArgumentException("Status not valid:" + status);
        }
        this.status = status;
    }

Mir fehlt noch eine Check Methode für LocalDate returnDate, hier bin ich nicht so ganz weiter gekommen.

Nun war meine Idee eine Unterklasse zu erstellen die von der Klasse Book erbt. In dieser soll dann der ganze Vorgang mit Ausleihen usw geschehen . Macht dies so Sinn?

Sollte ich dann returnDate erst in dieser erstellen?

Bild zum Beitrag
programmieren, Java, Informatik

SQL effizientes mehrdimensionales Histogramm erstellen?

Hallo,

ich habe folgende SQL Tabelle und würde aus dieser mit SQL Abfragen gerne ein mehrdimensionales Histogramm erzeugen.

Meine Tabelle:

`sex` => VARCHAR(1), //für Geschlecht

`age` => INT,

`salary` => INT

Gefüllt könnte z.B. so aussehen (aber mit viel(!) mehr Einträgen natürlich):

Am ende will ich mit meiner Abfrage folgende Ausgabe erzielen:

Wie man in der obigen Ausgabe sieht, will ich die Bereiche bei age und salary nicht(!) gleich verteilen. Alle Lösungen welche also immer in 10er Schritten gehen, funktionieren in meinem Fall nicht. Die "..." Zeile in der Ausgabe soll andeuten, dass die Bereiche bei F(emale) einfach nach der selben Logik (aber vielleicht mit unterschiedlichen Bereichsbreiten) weitergehen. Daran schließt sich dann M(ale), mit den gleichen Bereichen wie F(emale) an. Count gibt jeweils die Anzahl der gefundenen Einträge zu den gegebenen Einschränkungen an. Also z.B. für den ersten Fall sowas wie

SELECT COUNT(*) from `companysalaries` WHERE age >= 18 AND age <= 19 AND salary >= 0 AND salary <= 999 AND sex='F';

Mein bisheriger (funktionierender) Ansatz war:

  1. Stored procedure erstellen
  2. temporary tables als Hiflstabellen mit Bereichen füllen und Hilfstabelle für Ausgabe erstellen
  3. 3-fach geschachtelete WHILE schleife mit Select und INSERT in einen Ausgabetabelle

JETZT ZUR EIGENTLICHEN FRAGE:

Mir kommt meine bisherige Lösung sehr ineffizient vor (54 Zeilen :/), und ich denke mir, dass man ja eigentlich in so einer schönen Sprache wie SQL dieses Problem doch einfacher lösen können müsste. Meine Lösung habe ich auch schon mehrmals überarbeitet, aber ohne die Leserlichkeit aufzugeben, komme ich nicht wesentlich unter die 54 Zeilen. Daher die Frage, ob das irgendwie besser, effizienter und/oder kürzer geht. Die Lösung sollte zudem nur(!) SQL enthalten und keine sonstigen Erweiterungen benötigen/nutzen.

Danke im Voraus für alle Antworten

whgoffline

Bild zum Beitrag
Computer, Technik, SQL, programmieren, Datenbank, Informatik, Technologie

Meistgelesene Beiträge zum Thema Programmieren