php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 07.12.2008, 13:20  
Benutzer
 
Registriert seit: 07.12.2008
Beiträge: 34
Ryckmaster befindet sich auf einem aufstrebenden Ast
Standard

also hatte ja vorhin den falschen code gepostet.
daher musste ich jetzt den code nochmal von dir überarbeiten.
dieser sieht jetzt so aus:
PHP-Code:
<?php
function datenbank_verbinden()
{
  
$db_server="localhost";
  
$db_name="smuv";
  
$db_user="root";
  
$db_passwort="";

  
$db_verbindung=mysql_connect($db_server,$db_user,$db_passwort);
  if( !
$db_verbindung ) {
    die(
"Der Server kann nicht erreicht werden.");
  }
  if( !
mysql_select_db($db_name,$db_verbindung) ) {
    die(
"Die Datenbak kann nicht angesprochen werden.");
  }
  return 
$db_verbindung;
}

function 
gib_rubriken($p_verbindungskennung)
{
  
$query="
    SELECT
      beschreibung,beschreibungsnummer    FROM
      beschreibungen
    ORDER BY
      beschreibung
  "
;
  
  
$ergebnis=mysql_query($query,$p_verbindungskennung) or die(mysql_error());
  
$beschreibung = array();
  while(
$zeile=mysql_fetch_array($ergebnisMYSQL_ASSOC)) {
    
$beschreibung[] = $zeile;
  }
  return 
$beschreibung;
}

function 
formular_aufbauen($beschreibung)
{
  
?>
  <form action="?" method="get">
    <table>
      <tr><th>Nickame:</th><td><input type="text" name="nickname" /></td></tr>
      <tr><th>E-Mail:</th><td><input type="text" name="email" /></td></tr>
      <tr><th>Anzeigentext:</th><td><input type="text" name="anzeigentext" size="40" maxleght="255" /></td></tr>
    </table>
    <fieldset>
      <legend>Wählen Sie bis zu drei Rubriken:</legend>
      <?php
      
foreach($beschreibung as $index=>$r) {
          
printf('<input type="checkbox" name="bs[]" value="%ld" id="beschreibungen%d" /><label for="beschreibung%d">%s</label><br />',
              
$r['beschreibungsnummer'], $index$indexhtmlentities($r['beschreibungsnummer'])
          );
      }
      echo 
"\n";
      
?>
    </fieldset>
    <p>
      <input type="submit" name="ausfuehren" value="registrieren" />
    </p>
  </form>
<?php
}

function 
formular()
{
  
$verbindungskennung=datenbank_verbinden();
  
formular_aufbauen(gib_rubriken($verbindungskennung));
}

?>
<html>
  <head>
    <title>Schwarzes Webbrett</title>
  </head>
  <body>
   <?php formular(); ?>
  </body>
</html>
da ergeben sich 2 neue probleme.
1. Sehe ich jetzt nicht mehr wirklich durch.
2. (hängt mir 1.stens zusammen) zeigt er mir die Beschreibungsnummern hinter den checkboxen.
ich würde aber die beschreibungen bevorzugen.
also ich veruch mich da jetzt durchzuwurschteln.
aber wenn wenn jemand schneller ist, kann er es gerne posten.

lg und thx
Ryckmaster ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 07.12.2008, 13:24  
Benutzer
 
Registriert seit: 07.12.2008
Beiträge: 34
Ryckmaster befindet sich auf einem aufstrebenden Ast
Standard

okay das habe ich jetzt geändert. es werden nun die beschreibungen gezeigt.
aber verstehn tu ichs noch immer nicht. ich weiß nicht mal wo jetzt der rahmen da her kommt

sorry, bin noch nicht so gut in php.
mach ne ausbildung zum informatik-kaufmann, und da bekommt man bei weiter nicht alles begebracht...

lg
Ryckmaster ist offline  
Alt 07.12.2008, 14:17  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Der Rahmen wird durch <fieldsetset> erzeugt.
printf() wird als erster Parameter das Format der Ausgabe übergeben. Wenn in dieser Zeichenkette ein % steht, folgt danach eine Platzhalterangabe. Zum Beispiel printf('...%d...', $i) %d steht für "eine Ganzzahl". Es ist der erste Platzhalter in der Formatangabe, also wird der zweite Parameter ($i) genommen. Anderes Beispiel printf('%d + %d = %d', $x, $y, $x+$y).

Zitat:
$beschreibung[] = $zeile;
$beschreibung ist ein Feld. Mit $beschreibung[] wird ein neues Element an das Feld angehängt. $zeile ist ebenfalls ein Feld. Dieses Feld wird als neues Element an $beschreibung angehängt. $beschreibung ist also ein zwei-dimensionales Feld.
PHP-Code:
$eindimensional = array();
$eindimensional[0] = 'A';
$eindimensional[1] = 'B';
echo 
$eindimensional[1]; // Ausgabe: B

$zweidimensional = array();
$zweidimensional[0] = $eindimensional;
$zweidimensional[1] = array('X''Y');

echo 
$zweidimensional[0][1]; // Ausgabe: B 
Mit foreach() kannst Du jedes Element eines Feldes einmal abarbeiten. foreach($zweidimensional as $x), dann entspricht $x beim ersten Durchlauf dem Feld $eindimensional und beim zweiten Durchlauf dem Feld array('X','Y').
David ist offline  
Alt 07.12.2008, 18:31  
Benutzer
 
Registriert seit: 07.12.2008
Beiträge: 34
Ryckmaster befindet sich auf einem aufstrebenden Ast
Standard

Es geht!
Nachdem ich ebend alles nach meinen bedürfnissen geändert habe, geht es.
allerdings ist noch ein problem, wo ich irgendwie nicht hintersteig.
bei eintragen die die db, setzt er als beschreibung array.
nun ist mir nicht ganz klar warum, und wo ich das änder....

hier der neue code:
PHP-Code:
<html>
  <head>
    <title>Administrationsbereich</title>
  </head>
  <body>
   
<?php

error_reporting 
(E_ALL E_STRICT);
ini_set ('display_errors' 1);  

function 
datenbank_verbinden()
{
  
$db_server="localhost";
  
$db_name="smuv";
  
$db_user="root";
  
$db_passwort="";

  
$db_verbindung=mysql_connect($db_server,$db_user,$db_passwort);
  if( !
$db_verbindung ) {
    die(
"Der Server kann nicht erreicht werden.");
  }
  if( !
mysql_select_db($db_name,$db_verbindung) ) {
    die(
"Die Datenbak kann nicht angesprochen werden.");
  }
  return 
$db_verbindung;
}

function 
gib_beschreibung($p_verbindungskennung)
{
  
$query="
    SELECT
      beschreibung,beschreibungsnummer
    FROM
      beschreibungen
    ORDER BY
      beschreibung
  "
;
  
$ergebnis=mysql_query($query,$p_verbindungskennung) or die(mysql_error());
  
$beschreibung = array();
  while(
$zeile=mysql_fetch_array($ergebnisMYSQL_ASSOC)) {
    
$beschreibung[] = $zeile;
  }
  return 
$beschreibung;

function 
formular_aufbauen($beschreibung)
{
  
?>
  <form action="?" method="get">

      Wählen Sie ein Beschreibung:<br><br>
      <?php
      
foreach($beschreibung as $index=>$r) {
          
printf('<input type="checkbox" name="bs[]" value="%ld" id="beschreibung%d" /><label for="beschreibung%d">%s</label><br />',
              
$r['beschreibung'], $index$indexhtmlentities($r['beschreibung'])
          );
      }
      echo 
"\n<br>";
      
?>
    <table>
<tr><th><b><p align=left>Schulungsanfang:</p></b></th> <th><input type="text" name="es"></th></tr>
<tr><th><b><p align=left>Schulungsende:</p></b></th> <th><input type="text" name="se"></th></tr>
<tr><th><b><p align=left>Plätze:</p></b></th> <th> <input type="text" name="p"></th></tr>
</table>
      <input type="submit" name="ausfuehren" value="Daten speichern" />
    
  </form>
<?php
}
//überprüfung der Eingaben

function check_eintraege()
{
if(empty(
$_GET['es']))
{
    echo 
"<b>Fehler! Sie haben keinen Anfangszeitraum festegelegt.</b><br><br>";
return 
false;
}
if(empty(
$_GET['se']))
{
    echo
"<b>Fehler! Sie haben kein Schulungsende angegeben.</b><br><br>";
return 
false
}
if(empty(
$_GET['bs']))
{
    echo
"<b>Fehler! Sie haben keine Beschreibung ausgewählt.</b><br><br>";
return 
false;
}
if(empty(
$_GET['p']))
{
    echo
"<b>Fehler! Sie haben nicht angegeben wieviel Plätze vorhanden sind.</b><br><br>"
return 
false;

return 
true;
}

// Daten in die Datenbank eintragen  

function Daten_schreiben()
{
$verbindungskennung=datenbank_verbinden();
$eintrag="INSERT INTO schulung (ErsterSchulungstag,  Schulungsende,
Beschreibung, Plaetze) VALUES ('$_GET[es]','$_GET[se]','$_GET[bs]','$_GET[p]');"
;
$eintrag=mysql_query($eintrag,$verbindungskennung);
echo 
"<b>Ihre Daten wurden gespeichert!</b><br><br>";
echo 
"<b>Sie können nun neue Daten eingeben.</b><br><br>";

}
function 
daten_merken()
    {
    
$verbindungskennung=datenbank_verbinden();
    if(
check_eintraege($verbindungskennung)
    &&(
check_p()))
        {
            
daten_schreiben($verbindungskennung);
        }
    else
        {
            echo 
"<b>Ihre Daten wurden <u>nicht</u> gespeichert!</b><br><br>";
            echo 
"<b>Bitte versuchen sie es nochmal!!</b><br><br><br>";
        }
    }

//eingabe von Schulungsdauer prüfen

function check_sd()
{
if (isset(
$_GET['sd'])) 
    {
        if (
is_numeric($_GET['sd'])) 
        {
            return 
true;
        } 
    else 
        {
            echo 
"<p><b>Bitte nur Zahlen als Schulungsdauer eingeben!</b></p>";
            return 
false;
        }
    }
}

function 
check_p()
{
if (isset(
$_GET['p'])) {
    if (
is_numeric($_GET['p'])) {
        return 
true;
    } else {
        echo 
"<p><b>Bitte geben sie die Plätze in Zahlen an!</b></p>";
        return 
false;
            }
                        }
    }
function 
formular()
{
  
$verbindungskennung=datenbank_verbinden();
  
formular_aufbauen(gib_beschreibung($verbindungskennung));
}


//Von hier werden die Funktionen formular() und 
//  daten_merken() aufgerufen
if (isset($_GET['ausfuehren']))
    
daten_merken();
formular();
?>
    </body>
    </html>
lg
Ryckmaster ist offline  
Alt 07.12.2008, 20:48  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Wenn Du ein Feld an einer Stelle verwendest, an der eine Zeichenkette notwendig ist, "wandelt" PHP das Feld in die Zeichenkette Array um. Und zwar egal, wie das Feld aussieht.

PHP-Code:
$x = array(1,2,3,4);

// explizite Umwandlung array->string, $s enthält dann die Zeichenkette "Array"
$s = (string)$x

// Der . Operator verknüpft Zeichenketten. Jeder einzelne Operand wird in eine Zeichenkette umgewandelt
// $s enthält dann die Zeichenkette "-- Array --"
$s '--' $x '--' 
Und das passiert in Deinem Skript auch irgendwo: Die (direkte) Umwandlung eines Feldes in eine Zeichenkette.
David ist offline  
Alt 07.12.2008, 21:05  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
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

[MOD: Thread geschlossen]

vgl. #10 und http://www.php.de/php-einsteiger/464...verwenden.html (Bitte aussagekräftige Threadtitel verwenden)

Einspruch an mich.
__________________
--
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  
 


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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Problem: PHP Selbe Datei mehr als 1 Mal soulan PHP Tipps 2008 13 28.11.2008 22:51
Problem Upload mehrere Dateien und schreiben in DB Lapje PHP Tipps 2008 1 22.10.2008 13:12
utf8 Problem (Daten aus DB auslesen) go1denboy PHP Tipps 2008 1 23.09.2008 12:19
Problem mit swfobjects R4v3r JavaScript, Ajax und mehr 8 21.09.2008 14:17
Problem mit kleiner Abfrage trash PHP Tipps 2008 14 06.07.2008 21:09
[Erledigt] Galerie Problem... coraplanet PHP Tipps 2008 4 06.06.2008 13:42
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
[Erledigt] Problem bei Massenmails versenden mit der Funktion mail PHP-Fortgeschrittene 3 19.01.2005 13:36
[Erledigt] Problem mit Übergabe einer Klasse in PHP4 PHP-Fortgeschrittene 10 08.01.2005 21:00
Problem mit Weiterleitung PHP Tipps 2004-2 16 22.12.2004 17:49
Smarty und PHP-Skript Problem PHP Tipps 2004-2 2 03.12.2004 22:27
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34
[Erledigt] Problem mit Timestamp! PHP Tipps 2004 24 08.06.2004 19:51

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
webbrett fehler index

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:24 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