Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 19

Thema: Newbie

  1. #1
    Major
    Gast

    Standard Newbie

    hi, ich bin neu hier

    ich fang gerade mit PHP/SQL an und meine erste eigenkreation sieht so aus:

    [php:1:fc45b9aa74]
    <?php
    echo //FORMULAR
    '
    <h1>G&auml;stebuch</h1>


    Willkommen im G&auml;stebuch!</p>
    <fieldset>
    <legend>Eintrag vornehmen?</legend>
    <form action="index.php?go=GB" method="POST">
    <p align="left">Name:<input type="text" name="name" />
    E-M@il:<input type="text" name="EMA" />
    <input type="submit" value="Eintragen" /></p>
    <p align="left">Dein Eintrag:

    <textarea cols="40" rows="7" name="posting" style="margin-left:38px"></textarea></p>
    </form>
    </fieldset>
    ';
    //WENN eintrag uebermittelt wurde
    if (isset($_POST['posting'])) {
    //DANN mit MySQL verbinden
    @mysql_connect('localhost', 'root') or die("Datenbankprogramm reagiert nicht");
    //DANN Datenbank laden
    @mysql_select_db('juniorcup') or die("Datenbank nicht erreichbar");
    //Variablen Festlegen
    $name = $_POST['name'];
    $EMA = $_POST['EMA'];
    $posting = $_POST['posting'];
    //eintrag in der Datenbank vornehmen
    @mysql_query("INSERT INTO eintraege SET
    name = '$name',
    EMA = '$EMA',
    posting = '$posting',
    date = CURDATE()") or die("Daten konnten nicht eingef&uuml;gt werden"); } else {
    echo 'Tragen sie bitte ihren Namen, ihre E-M@il und eine Nachricht ein
    '; }
    //eintraege aus Datenbank holen - Verbinden mit Datenbank
    @mysql_connect('localhost', 'root') or die("Datenbankprogramm reagiert nicht");
    @mysql_select_db('juniorcup') or die("Datenbank nicht erreichbar");
    //HTML der Gaestebucheintraege erzeugen
    while ($table = mysql_fetch_array(@mysql_query('SELECT name, EMA, posting FROM eintraege'))) {
    echo '
    <table class="GB" cellspacing="0px" cellpadding="0px">
    <tr>
    <td class="GBH">
    <div class="gbhdiv">
    '.$table['name'].' schreibt(am '.$table['date'].')
    </div>
    </td>
    </tr>
    <tr>
    <td class="GBP">
    <div class="gbpdiv">'.$table['posting'].'</div>
    </td>
    </tr>
    <tr>
    <td class="GBB">

    </td>
    </tr>
    </table>
    ';}
    //ENDE GAESTEBUCH
    ?>
    [/php:1:fc45b9aa74]

    Nun berechnet mir PHP die table mit den postings drinn immer und immer und immer und immer wieder... wie löse ich es, dass pro datensatz nur ein einziger table berechnet wird?
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Forum Guru
    Registriert seit
    13.01.2005
    Ort
    Schweiz
    Beiträge
    5.240
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Code:
    <?
    	mysql_connect&#40;'localhost', 'root'&#41; or die&#40;"Datenbankprogramm reagiert nicht"&#41;;
    	mysql_select_db&#40;'juniorcup'&#41; or die&#40;"Datenbank nicht erreichbar"&#41;;
    ?>
    <h1>G&auml;stebuch</h1>
    
    
    Willkommen im G&auml;stebuch!</p>
    Eintrag vornehmen?
    
    
    
    <table width="100%"  border="0" cellspacing="0" cellpadding="0">
    <form action="index.php?go=GB" method="POST">
      <tr>
        <td width="10%">Name</td>
        <td width="90%"><input type="text" name="name" /></td>
      </tr>
      <tr>
        <td>E-M@il&#58;</td>
        <td><input type="text" name="EMA" /></td>
      </tr>
      <tr>
        <td valign="top">Dein Eintrag</td>
        <td><textarea cols="40" rows="7" name="posting"></textarea></td>
      </tr>
      <tr>
        <td></td>
        <td><input type="submit" value="Eintragen" /></td>
      </tr>
      </form>
    </table>
    <?
    	// wenn eintrag uebermittelt wurde
    	if &#40;isset&#40;$_POST&#91;'posting'&#93;&#41;&#41; &#123;
    		// Eintrag in der Datenbank vornehmen
    		mysql_query&#40;"INSERT INTO `eintraege` &#40;`name`, `EMA`, posting, date&#41; VALUES &#40;'&#123;$_POST&#91;'name'&#93;&#125;', '&#123;$_POST&#91;'EMA'&#93;&#125;', '&#123;$_POST&#91;'posting'&#93;&#125;', NOW&#40;&#41;"&#41;;
    		&#125;
    	else &#123;
    	echo 'Tragen sie bitte ihren Namen, ihre E-M@il und eine Nachricht ein
    ';
    	&#125;
    ?>
    
    
    
    die einträge&#58;
    
    
    
    <?
    	// HTML der Gaestebucheintraege erzeugen
    	$sql = "SELECT `name`, `date`, `EMA`, `posting` FROM `eintraege`";
    	while&#40;$table = mysql_fetch_assoc&#40;$sql&#41;&#41; &#123;
    ?>
    	<table class="GB" cellspacing="0px" cellpadding="0px">
    		<tr>
    			<td class="GBH"><div class="gbhdiv"><?=$table&#91;'name'&#93;?> schreibt&#40;am <?=$table&#91;'date'&#93;?>&#41;</div></td>
    		</tr>
    		<tr>
    			<td class="GBP"><div class="gbpdiv"><?=$table&#91;'posting'&#93;?></div></td>
    		</tr>
    		<tr>
    			<td class="GBB"></td>
    		</tr>
    	</table>
    <? &#125; ?>
    so - eine einfachere version von deinem code.
    ps. mach lieber sinnvolle namen, `mail` statt EMA, `kommentar` statt posting usw. erhöht die verständlichkeit des codes etwas.

    so long - phore

  3. #3
    Gast

    Standard

    jetz aber ein paar fragen:
    warum überalle `?
    warum kein <?PHP, nur <?
    warum besserst du meinen code durch einen aus, der auch nicht richtig is

  4. #4
    Gast

    Standard

    als gast gibts kein edit... mist

    danke trotzdem*

  5. #5
    Forum Guru
    Registriert seit
    13.01.2005
    Ort
    Schweiz
    Beiträge
    5.240
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    - "`" so sind inhalte, sql, spalten und tabellen sauber getrennt - habs mir so angewöhnt

    - <? und <?php ist dasselbe

    - mein code sollte richtig sein, nur kürzer und logischer aufgebaut, funktioniert er denn jetzt?

    achja - beim SELECT musst du noch:
    Code:
    DATE_FORMAT&#40;`datum`, '%d.%m.%Y'&#41; AS `date`
    schreiben. und das datenbankfeld auf DATE stellen (datentyp).

  6. #6
    major
    Gast

    Standard

    ich habs hinbekommen. ein paar teile von deinem code hab ich auch verwendet. jetzt ein anderes problem
    ich bekomme diese fehlermeldung:

    Code:
    Warning&#58; mysql_fetch_array&#40;&#41;&#58; supplied argument is not a valid MySQL result resource in C&#58;\.....\locs.php on line 37
    in diesem code:

    [php:1:fa9d608875]<?php
    $loc = $_GET['loc'];
    $LocID = "SELECT ID FROM Locs WHERE $loc = Bezirk LIMIT 1";
    echo '<h1>'.$loc.'</h1>';
    @mysql_connect('localhost', 'root') or die("

    ERROR:0atenbankprogramm reagiert nicht</p>");
    @mysql_select_db('juniorcup') or die("

    ERROR:1atenbank nicht erreichbar</p>");
    $sql = "SELECT 'TeamName', 'Tore', 'GTore', 'PKT' FROM 'teams' WHERE 'LocID' = $LocID";
    $teams = @mysql_query($sql);
    echo '
    <table width="600px" align="center" cellspacing="0px" cellpadding="0px" class="datenblatt">
    <tr>
    <th colspan="4" width="600px"><p class="para">Gruppe</p></th>
    </tr>
    <tr>
    <td width="450px" align="left">

    Team</p></td>
    <td width="50px" align="center">

    Tore</p></td>
    <td width="50px" align="center">

    GTore</p></td>
    <td width="50px" align="center">

    Punkte</p></td>
    </tr>';
    while ($row = mysql_fetch_array($teams)) {
    $teamName = $row['teamName'];
    $Tore = $row['Tore'];
    $GTore = $row['GTore'];
    $PKT = $row['PKT'];
    echo "
    <tr> \n
    <td width=\"450px\" align=\"left\">

    $teamname</p></td> \n
    <td width=\"50px\" align=\"center\">

    $Tore</p></td> \n
    <td width=\"50px\" align=\"center\">

    $GTore</p></td> \n
    <td width=\"50px\" align=\"center\">

    $PKT</p></td> \n
    </tr> \n"; }
    echo '</table>';
    ?>[/php:1:fa9d608875]

    kA warum das so is....

  7. #7
    Gast

    Standard

    ps: das is die line:
    while ($row = mysql_fetch_array($teams)) {
    und diese "n" . ... naja der gibt hier keine backslashes aus
    und die quots in der whileschleife sind alle korrekt escaped

  8. #8
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    naja dann poste doch mal mit den code tags an stat mit dme PHP tags, den die gehen :-p

  9. #9
    major
    Gast

    Standard

    Code:
    <?php
    $loc = $_GET&#91;'loc'&#93;;
    echo '<h1>'.$loc.'</h1>';
    @mysql_connect&#40;'localhost', 'root'&#41; or die&#40;"
    
    ERROR&#58;0&#58;Datenbankprogramm reagiert nicht</p>"&#41;;
    @mysql_select_db&#40;'juniorcup'&#41; or die&#40;"
    
    ERROR&#58;1&#58;Datenbank nicht erreichbar</p>"&#41;;
    $result = "SELECT ´ID´ FROM ´locs´ WHERE $loc = ´Bezirk´ LIMIT 1";
    $LocID = @mysql_query&#40;$result&#41;;
    $sql = "SELECT ´Gruppe´, ´TeamName´, ´Tore´, ´GTore´, ´PKT´ FROM ´teams´ WHERE ´LocID´ = $LocID";
    $teams = @mysql_query&#40;$sql&#41;;
    echo '
    <table width="600px" align="center" cellspacing="0px" cellpadding="0px" class="datenblatt">
    <tr>
    <th colspan="4" width="600px"><p class="para">Gruppe</p></th>
    </tr>
    <tr>
    <td width="450px" align="left">
    
    Team</p></td>
    <td width="50px" align="center">
    
    Tore</p></td>
    <td width="50px" align="center">
    
    GTore</p></td>
    <td width="50px" align="center">
    
    Punkte</p></td>
    </tr>';
    while &#40;$row = mysql_fetch_array&#40;$teams&#41;&#41; &#123; 
    $teamName = $row&#91;'teamName'&#93;;
    $Tore = $row&#91;'Tore'&#93;;
    $GTore = $row&#91;'GTore'&#93;;
    $PKT = $row&#91;'PKT'&#93;;
    echo "
    <tr> \n
    <td width=\"450px\" align=\"left\">
    
    $teamname</p></td> \n
    <td width=\"50px\" align=\"center\">
    
    $Tore</p></td> \n
    <td width=\"50px\" align=\"center\">
    
    $GTore</p></td> \n
    <td width=\"50px\" align=\"center\">
    
    $PKT</p></td> \n
    </tr> \n"; &#125;
    echo '</table>';
    ?>

  10. #10
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    so hab es mal angepasst,

    dazu noch 1-2 performance optimierung..


    Code:
    <?php
    echo '<h1>'.$_GET&#91;'loc'&#93;.'</h1>';
    @mysql_connect&#40;'localhost', 'root'&#41; or die&#40;"
    
    ERROR&#58;0&#58;Datenbankprogramm reagiert nicht</p>"&#41;;
    @mysql_select_db&#40;'juniorcup'&#41;       or die&#40;"
    
    ERROR&#58;1&#58;Datenbank nicht erreichbar</p>"&#41;;
    
    list&#40;$LocID&#41; = mysql_fetch_row&#40;mysql_query&#40;"SELECT ´ID´ FROM ´locs´ WHERE `&#123;$_GET&#91;'loc'&#93;&#125;` = ´Bezirk´ LIMIT 1"&#41;&#41;;
    
    $sql = "SELECT ´Gruppe´, ´TeamName´, ´Tore´, ´GTore´, ´PKT´ FROM ´teams´ WHERE ´LocID´ = '$LocID'";
    $teams = @mysql_query&#40;$sql&#41;;
    ?>
    <table width="600px" align="center" cellspacing="0px" cellpadding="0px" class="datenblatt">
    <tr>
     <th colspan="4" width="600px"><p class="para">Gruppe</p></th>
    </tr>
    <tr>
     <td width="450px" align="left">
    
    Team</p></td>
     <td width="50px" align="center">
    
    Tore</p></td>
     <td width="50px" align="center">
    
    GTore</p></td>
     <td width="50px" align="center">
    
    Punkte</p></td>
    </tr>
    <?PHP
    while &#40;$row = mysql_fetch_assoc&#40;$teams&#41;&#41;
    &#123;
    <?PHP
    <tr>
     <td width="450px" align="left">
    
    <?=$row&#91;'teamName'&#93;?></p></td>
     <td width="50px"  align="center">
    
    <?=$row&#91;'GTore'&#93;?></p></td>
     <td width="50px"  align="center">
    
    <?=$row&#91;'PKT'&#93;?></p></td>
    </tr>
    <?PHP &#125; ?>

Ähnliche Themen

  1. Newbie braucht Rat
    Von Tinkerbell im Forum HTML & CSS Forum
    Antworten: 13
    Letzter Beitrag: 30.06.2008, 17:31
  2. Newbie braucht Denkhilfe
    Von ralflutz im Forum Zope & Plone - das deutsche Hilfeforum
    Antworten: 3
    Letzter Beitrag: 20.03.2008, 15:54
  3. HILFE ICH SEIN NEWBIE
    Von cyberhead im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 18.07.2005, 16:00

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •