php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 14.01.2012, 14:45  
Neuer Benutzer
 
Registriert seit: 24.02.2010
Beiträge: 17
PHP-Kenntnisse:
Anfänger
markas befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von tr0y Beitrag anzeigen
Die Daten für das Script sollen doch aus einem Formular übergeben werden, und erst dann eventuell in die Datenbank geschrieben werden, bis dahin braucht man doch keine Datenbank und damit auch keine SQL?
markas ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 22.01.2012, 14:49  
Neuer Benutzer
 
Registriert seit: 24.02.2010
Beiträge: 17
PHP-Kenntnisse:
Anfänger
markas befindet sich auf einem aufstrebenden Ast
Standard array aus dem Formular übernehmen

Ich habe das Script vom "mermshaus" veräendert und in array $teamify zusätzlich arrays $bolek und $lolek eingefügt. Wenn ich die arrays direkt in Script einbaue und zwar so:
PHP-Code:
$bolek = array('Griechenland''Polen''Russland''Tschechien');
$lolek = array('Dänemark''Deutschland''Niederlande''Portugal');
$groups = array( 
new 
Group('A'$teamify($bolek), $fs),
new 
Group('B'$teamify($lolek), $fs),
 
// new Group('B', $teamify(array('Griechenland', 'Polen', 'Russland', 'Tschechien')), $fs), 
 // new Group('B', $teamify(array('Dänemark', 'Deutschland', 'Niederlande', 'Portugal')), $fs), 
 // new Group('C', $teamify(array('Irland', 'Italien', 'Kroatien', 'Spanien')), $fs), 
  //new Group('D', $teamify(array('Frankreich', 'England', 'Ukraine', 'Schweden')), $fs), 
 // new Group('X', $teamify(array('Brasilien', 'Argentinien', 'Mexiko')), $fs) 
); 
funktioniert alles, die Mannschaften aus $bolek und $lolek werden übernommen und Spielplan für Gruppe A und B wird generiert.
Wenn ich aber versuche $bolek ($lolek noch nicht)aus diesem Formular
Code:
<html>
<head>
<title>Turnierplan generieren</title>
</head>
<body>
<form action="amermshaus.php" method="post">
Mannschaften:  
<input type="text" name="bolek[]" size="10"/><br />
<input type="text" name="bolek[]" size="10"/><br />
<input type="text" name="bolek[]" size="10"/><br />
<input type="text" name="bolek[]" size="10"/><br />
<input type="submit"  value="Senden" />
</form>
</body>
</html>



an das script zu übermitteln, bekomme ich folgende Meldung
Code:
Catchable fatal error: Argument 1 passed to {closure}() must be an array, null given, called in /var/www/web1474/html/amermshaus.php 
on line 269 and defined in /var/www/web1474/html/amermshaus.php on line 254
Im Script amermshaus.php heisst die Zeile 254 "
$teamify = function(array $names)"
weitere Code lautet dann so(inclusive Zeile 254)
PHP-Code:
$teamify = function(array $names

    
$teams = array(); 

    foreach (
$names as $name) { 
        
$teams[] = new Team($name); 
    } 

    return 
$teams
}; 

$fs = new FixtureStrategyRoundRobin(false); 
Die Zeile 269 heisst so
PHP-Code:
new Group('A'$teamify($bolek), $fs), 


Was soll ich ändern(wie), damit die Werte aus dem Formular der array $bolek vom Script "amermshaus" übernommen werden?
markas ist offline   Mit Zitat antworten
Alt 22.01.2012, 21:44  
Erfahrener Benutzer
 
Registriert seit: 08.10.2009
Beiträge: 681
PHP-Kenntnisse:
Anfänger
Harry_X befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
function(array $names
evtl hat das Wort "array" hat da nichts zu suchen, vllt ist aber auch $names komplett nicht vorhanden.

fände ich schon n reizvolles thema, aber da sitzt man woooochenlang dran, und mit so'n paar lässigen Scripten ist das ja nicht getan.
Da mußt du schon mehr als "GELD" anbieten, denn "GELD" hab ich genug...
Harry_X ist offline   Mit Zitat antworten
Alt 22.01.2012, 22:11  
Neuer Benutzer
 
Registriert seit: 24.02.2010
Beiträge: 17
PHP-Kenntnisse:
Anfänger
markas befindet sich auf einem aufstrebenden Ast
Standard

Zitat vom Harry_X:
Zitat:
Da mußt du schon mehr als "GELD" anbieten, denn "GELD" hab ich genug...
Ich habe Zeit und kann auch wochenlang daran basteln. Zweitens das muss nicht unbedingt gelöst werden. Falls ich hier keine Hilfe bekommen werde und das nicht selbstständig lösen werde, bleib es halt so wie ist, wie anderen Milionen Threads in den PHP Foren.
Übrigens, was möchtest du, dass ich dir anbiete?
markas ist offline   Mit Zitat antworten
Alt 22.01.2012, 22:22  
Erfahrener Benutzer
 
Registriert seit: 08.10.2009
Beiträge: 681
PHP-Kenntnisse:
Anfänger
Harry_X befindet sich auf einem aufstrebenden Ast
Standard

Geld anstelle von "GELD"? Zeit wäre auch nicht schlecht, falls man die abgeben könnte - davon hab ich eigentlich zu wenig.

Ich an deiner Stelle würde auch nicht mit den Scripten anfangen, sondern erst einmal eine Art Datensammlung zum Thema anlegen,
gerade weil man sowas gern wieder vergißt:
1. Grundlegende Features (weitere werden sicherlich noch Im Laufe hinzukommen)
2. Ideen zum Design
3. Sonstiges

Dann würde ich eine grobe, sinnvolle Tabellenstruktur für die Datenbank (ohne wirst du kaum auskommen) anlegen, die zumindest den Weg weist, was möglich sein kann aufgrund von 1.

Anschließend sieht man weiter...
Harry_X ist offline   Mit Zitat antworten
Alt 23.01.2012, 00:26  
Erfahrener Benutzer
 
Benutzerbild von mermshaus
 
Registriert seit: 14.06.2009
Beiträge: 1.731
PHP-Kenntnisse:
Fortgeschritten
mermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz sein
Standard

PHP-Code:
$bolek $_POST['bolek']; 
- http://phpforum.de/forum/showthread.php?t=231774
__________________
Blog | Buch | Kaloa
mermshaus ist gerade online   Mit Zitat antworten
Alt 24.01.2012, 05:27  
Neuer Benutzer
 
Registriert seit: 24.02.2010
Beiträge: 17
PHP-Kenntnisse:
Anfänger
markas befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Harry_X Beitrag anzeigen
Geld anstelle von "GELD"? Zeit wäre auch nicht schlecht, falls man die abgeben könnte - davon hab ich eigentlich zu wenig.

Ich an deiner Stelle würde auch nicht mit den Scripten anfangen, sondern erst einmal eine Art Datensammlung zum Thema anlegen,
gerade weil man sowas gern wieder vergißt:
1. Grundlegende Features (weitere werden sicherlich noch Im Laufe hinzukommen)
2. Ideen zum Design
3. Sonstiges

Dann würde ich eine grobe, sinnvolle Tabellenstruktur für die Datenbank (ohne wirst du kaum auskommen) anlegen, die zumindest den Weg weist, was möglich sein kann aufgrund von 1.

Anschließend sieht man weiter...
Ich habe geschrieben, dass ich Zeit habe, damit meinte ich Zeit für Turnierscript(kann warten), aber Zeit = Leben und das kann ich dir nicht geben. Danke für Tips. Datenbanken, werde ich brauchen wenn alle Daten, die ich brauche aus dem Formular übernommen werden und dabei ein Spielplan generiert wird.
Und Mermshaus Danke für diese eine Zeile:
PHP-Code:
[$bolek $_POST['bolek']; 
Es funktioniert, die Mannschaften aus dem Formular werden an das Script weitergegeben und verarbeitet. Ich melde mich wieder, wenn ich mit der Zeitbearbeitung nicht weiter kommen werde(Minuten für jedes Spiel zählen, statt Tage für einen Spieltag).
markas ist offline   Mit Zitat antworten
Alt 08.02.2012, 18:25  
Neuer Benutzer
 
Registriert seit: 24.02.2010
Beiträge: 17
PHP-Kenntnisse:
Anfänger
markas befindet sich auf einem aufstrebenden Ast
Standard

Wie sollte man vorgehen, wenn man statt Matchday(Tagesdatum des Spieltages), die Uhrzeit in Stunden und Minuten jedes Spieles zählen und ausgeben möchte, oder hat jemand Lust diese Code zu kommentieren?

PHP-Code:
class Matchday 

    protected 
$matches
    protected 
$day

    public function 
__construct($day, array $matches
    { 
        
$this->day $day
        
$this->matches $matches
    } 

    public function 
getMatches() 
    { 
        return 
$this->matches
    } 

    public function 
getDay() 
    { 
        return 
$this->day
    } 

Hier der ganze Code(des Scriptes):

PHP-Code:
<?php 

interface CalendarEventInterface 

    public function 
getStartDate(); 


abstract class 
CalendarEventAbstract implements CalendarEventInterface 

    protected 
$startDate

    public function 
__construct(DateTime $startDate
    { 
        
$this->startDate $startDate
    } 

    public function 
getStartDate() 
    { 
        return 
$this->startDate
    } 


class 
CalendarEventMatch extends CalendarEventAbstract 

    protected 
$group
    protected 
$match

    public function 
getGroup() 
    { 
        return 
$this->group
    } 

    public function 
setGroup(Group $group
    { 
        
$this->group $group
    } 

    public function 
getMatch() 
    { 
        return 
$this->match
    } 

    public function 
setMatch(Match $match
    { 
        
$this->match $match
    } 

    public function 
__toString() 
    { 
        
$homeName = ($this->match->getHomeTeam() !== null
                ? 
$this->match->getHomeTeam()->getName() 
                : 
'(wildcard)'

        
$awayName = ($this->match->getAwayTeam() !== null
                ? 
$this->match->getAwayTeam()->getName() 
                : 
'(wildcard)'

        return 
$this->group->getName() . ': ' $homeName ' - ' $awayName
    } 


class 
Calendar 

    protected 
$events

    public function 
addEvent(CalendarEventInterface $event
    { 
        
$y $event->getStartDate()->format('Y'); 
        
$m $event->getStartDate()->format('m'); 
        
$d $event->getStartDate()->format('d'); 

        
$this->events[$y][$m][$d][] = $event
    } 

    public function 
getEventsByDate(DateTime $date
    { 
        
$y $date->format('Y'); 
        
$m $date->format('m'); 
        
$d $date->format('d'); 

        if (isset(
$this->events[$y][$m][$d])) { 
            return 
$this->events[$y][$m][$d]; 
        } 

        return array(); 
    } 


interface 
FixtureStrategyInterface 




class 
FixtureStrategyRoundRobin implements FixtureStrategyInterface 

    protected 
$addReturnFixtures

    public function 
__construct($addReturnFixtures true
    { 
        
$this->addReturnFixtures $addReturnFixtures
    } 

    public function 
getFixtures(array $teams
    { 
        
$addReturnFixtures $this->addReturnFixtures

        if (
count($teams) % !== 0) { 
            
array_push($teamsnull); 
        } 

        
$anz    count($teams);    // Anzahl der Teams im Array $teams 
        
$paare  $anz 2;         // Anzahl der möglichen Spielpaare 
        
$tage   $anz 1;         // Anzahl der Spieltage pro Runde 
        
$spiele $paare $tage;   // Anzahl der Spiele pro Hin-/Rück-Runde 
        
$plan   = array();          // Array für den kompletten Spielplan 
        
$xpos   $anz 1;         // höchster Key im Array $teams 
        
$tag    0;                // Zähler für Spieltag 
        
$spnr   0;                // Zähler für Spielnummer 
        
$sppaar 0;                // Zähler für Spielpaar 

        // ===================================================================== 
        
for ($tag 1$tag $anz$tag++) { 
            
array_splice($teams11, array(array_pop($teams), $teams[1])); 

            
$firstLegMatches = array(); 
            
$secondLegMatches = array(); 

            for (
$sppaar 0$sppaar $paare$sppaar++) { 
                
$spnr++; 

                
// wechseln zwischen G und H -Spiel: 
                
if (($spnr $anz !== 1) && ($sppaar === 0)) { 
                    
$hteam $teams[$sppaar]; 
                    
$gteam $teams[$xpos $sppaar]; 
                }  else { 
                    
$gteam $teams[$sppaar]; 
                    
$hteam $teams[$xpos $sppaar]; 
                } 

                
// Hinrunde 
                
$firstLegMatches[] = new Match($hteam$gteam); 
                
// $tag, $spnr 

                // Rückrunde 
                
if ($addReturnFixtures) { 
                    
$secondLegMatches[] = new Match($hteam$gteam); 
                } 
                
// $tag + $tage, $spnr + $spiele 
            


            
$plan[] = new Matchday($tag$firstLegMatches); 

            if (
$addReturnFixtures) { 
                
$plan[] = new Matchday($tag $tage$secondLegMatches); 
            } 
        } 

        
// Nach Spieltagen sortieren 
        
usort($plan, function ($a$b) { return $a->getDay() - $b->getDay(); }); 

        return 
$plan
    } 


class 
Group 

    protected 
$name
    protected 
$teams
    protected 
$matchdays

    public function 
__construct($name, array $teams
            
FixtureStrategyInterface $fixtureStrategy
    { 
        
$this->name $name
        
$this->teams $teams
        
$this->matchdays $fixtureStrategy->getFixtures($teams); 
    } 

    public function 
getName() 
    { 
        return 
$this->name
    } 

    public function 
getTeams() 
    { 
        return 
$this->teams
    } 

    public function 
getMatchdays() 
    { 
        return 
$this->matchdays
    } 


class 
Team 

    protected 
$name

    public function 
__construct($name
    { 
        
$this->name $name
    } 

    public function 
getName() 
    { 
        return 
$this->name
    } 


class 
Match 

    protected 
$homeTeam
    protected 
$awayTeam

    public function 
__construct(Team $homeTeam nullTeam $awayTeam null
    { 
        
$this->homeTeam $homeTeam
        
$this->awayTeam $awayTeam
    } 

    public function 
getHomeTeam() 
    { 
        return 
$this->homeTeam
    } 

    public function 
getAwayTeam() 
    { 
        return 
$this->awayTeam
    } 


class 
Matchday 

    protected 
$matches
    protected 
$day

    public function 
__construct($day, array $matches
    { 
        
$this->day $day
        
$this->matches $matches
    } 

    public function 
getMatches() 
    { 
        return 
$this->matches
    } 

    public function 
getDay() 
    { 
        return 
$this->day
    } 


$teamify = function(array $names

    
$teams = array(); 

    foreach (
$names as $name) { 
        
$teams[] = new Team($name); 
    } 

    return 
$teams
}; 

$fs = new FixtureStrategyRoundRobin(false); 

$groups = array( 
    new 
Group('A'$teamify(array('Griechenland''Polen''Russland''Tschechien')), $fs), 
    new 
Group('B'$teamify(array('Dänemark''Deutschland''Niederlande''Portugal')), $fs), 
    new 
Group('C'$teamify(array('Irland''Italien''Kroatien''Spanien')), $fs), 
    new 
Group('D'$teamify(array('Frankreich''England''Ukraine''Schweden')), $fs), 
    
#new Group('X', $teamify(array('Brasilien', 'Argentinien', 'Mexiko')), $fs) 
); 

$calendar = new Calendar(); 

// Add matches to calendar 

foreach ($groups as $group) { 
    
$dt = new DateTime(); 
    foreach (
$group->getMatchdays() as $matchday) { 
        
/* @var $matchday Matchday */ 
        
foreach ($matchday->getMatches() as $match) { 
            
$myDt = clone $dt
            
$cem = new CalendarEventMatch($myDt); 
            
$cem->setGroup($group); 
            
$cem->setMatch($match); 
            
$calendar->addEvent($cem); 
            
$dt->add(new DateInterval('P1D')); 
        } 
    } 


// Display calendar 

$dt = new DateTime(); 

for (
$i 0$i 10$i++) { 

    echo 
'[' $dt->format('Y-m-d') . ']' "\n"

    
$events $calendar->getEventsByDate($dt); 

    if (
count($events) > 0) { 
        foreach (
$events as $event) { 
            echo 
$event "\n"
        } 
    } else { 
        echo 
'  -' "\n"
    } 

    echo 
"\n"

    
$dt->add(new DateInterval('P1D')); 
}
markas ist offline   Mit Zitat antworten
Alt 08.02.2012, 18:29  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

„die Uhrzeit zählen“
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 09.02.2012, 06:51  
Neuer Benutzer
 
Registriert seit: 24.02.2010
Beiträge: 17
PHP-Kenntnisse:
Anfänger
markas befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
„die Uhrzeit zählen“
Ja, alles klar.
markas ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
turnierplaner sql, turnierplan sql, sql turnierplan

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:48 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum