tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
380
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Smile85 Smile85 ist offline Grünschnabel
    Registriert seit
    Nov 2008
    Beiträge
    4
    Hallo!
    Ich muss vorweg sagen dass ich Anfänger bin
    Nun zu meinem Problem:
    Ich möchte gerne in einer selbst erstellten Datenbank die Anzahl der Datensätze in einer
    Textbox anzeigen lassen, ich weis zwar das es irgendwie mit “SELECT COUNT(*) FROM bndlaender“ gehen muss, glaub ich halt.
    Aber allerdings weis ich nicht wie ich das an die Datenbank schicken muss und wie man das Ergebnis dann in einer Textbox ausgeben lassen kann.

    ICH BITTE UM EURE HILFE!
    Danke schon mal in voraus um eure Bemühungen

    Mfg Martin
     

  2. #2
    Profundi Profundi ist offline Mitglied Bronze
    Registriert seit
    Nov 2008
    Ort
    Chur
    Beiträge
    30
    Hallo,

    als erstes brauchst du eine Verbindung zur Datenbank welche du mit dem Befehl:
    "mysql_connect" aufbauen kannst!

    Erstelle zunächst eine Datei mit Namen "connect.php" in der du folgender Inhalt hinzufügst:

    PHP-Code:
    <?php 
    $dburl 
    "localhost"//füge hier die Datenbank URL ein, in der Regel: localhost!
    $dbloginname "root"//füge hier deinen Login Namen ein, in der Regel: root!
    $dbpassword ""//füge hier dein Login Passwort ein!
    $dbname "laender"//füge hier deinen Datenbank Name ein!
    $connecterror "Keine Verbindung zur Datenbank"//füge hier deine Nachricht ein wenn die Verbindung scheitern sollte!

    //Nicht editieren
    mysql_connect ($dburl$dbloginname$dbpassword);  
    if (!
    mysql_select_db ($dbname))  
    {  
      die (
    $connecterror);  
    ?>
    als nächstes gehst du in dein phpMyAdmin und erstellst eine Neue Datenbank die du oben in der "connect.php" Datei eingestellt hast!
    In dieser Datenbank gibst du nun folgendes in deine SQL Konsole ein:

    PHP-Code:
    CREATE DATABASE `laender`;
    CREATE TABLE `laender`.`bndlaender` (
    `
    idINT255 NOT NULL AUTO_INCREMENT ,
    `
    bndlaenderTEXT NOT NULL ,
    PRIMARY KEY ( `id` ) 
    ENGINE MYISAM 
    CREATE DATABASE `laender`; lässt eine neue Datenbank entstehen
    CREATE TABLE `laender`.`bndlaender` lässt eine neue Tabelle namens bndlaender in der Datenbank laender entstehen
    die Werte die darauf folgen sind Spalten die erstellt werden!

    Somit ist also die Spalte:
    "id" welcher ein INTEGER Wert ist (INT meist für Ziffern vorgesehn) auf den Wert AUTO_INCREMENT eingestellt! Heisst: Die Zahl steigt Automatisch: 1, 2, 3... etc... Anhand dieses Automatischen Vorgangs wird nachher festgestellt wieviele Einträge du in deiner Tabelle hast!
    Und die Spalte
    "bndlaender" welcher ein TEXT Typ ist (Kann bis zu 550 Zeichen enthalten)
    hat den TEXT Wert gespeichert!

    Gut somit das nun geklärt ist fahren wir fort und zwar erstellen wir eine neue php datei Namen: "land_eintragen.php" die wir mit folgendem Inhalt füllen:
    HTML-Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Land einfügen</title>
    </head>
    <body>
     <form action="wert_eintragen.php" method="post">
        <div align="center">
    <strong>Land hinzuf&uuml;gen:</strong><br>
          <table width="414" border="1">
            <tr>
              <td width="98" nowrap>Landes Name:
              <td width="300"><input name="land" type="text" id="land" size="50" maxlength="50"></td>
            </tr>
          </table>
        </div>
        <label>
        <div align="center">
          <input type="submit" name="button" id="button" value="Hinzuf&uuml;gen" />
          <label>
          <input type="reset" name="button2" id="button2" value="Zur&uuml;cksetzen">
          </label>
        </div>
        </label>
      </form>
    </body>
    </html>
    Diese Datei wird das Formular welches wir brauchen um einen Wert in die Datenbank zu übertragen!

    Als nächstes müssen wir das Formular an eine Datei weiterreichen! Erstellen wir also eine neue Datei Namens: "wert_eintragen.php" die wie folgt aussieht:
    PHP-Code:
    <?php 
    //Werte vom Formular in die Variable $landname einlesen
    $landname $_POST[land];
    echo 
    $landname;
    //Datenbank verbindung öffnen
    include('connect.php');

    //Datenbank Anweisung in die Variable $sql einlesen
      
    $sql "INSERT INTO "
        
    "bndlaender (bndlaender) "
      
    "VALUES ('".$landname."')";
                  
                   
    //Werte von $sql in die Datenbank eintragen
                   
    mysql_query ($sql);

    //Anschliessend die Seite laden:
    include("land_anzeigen.php");
    ?>
    Als letztes fehlt nur noch die "land_anzeigen.php":
    PHP-Code:
    <html>
    <head>
    <title>Unbenanntes Dokument</title>
    <style type="text/css">
    <!--
    .Überschrift {
        color: #FF0000;
        font-family: Arial, Helvetica, sans-serif;
    }
    .Feldbezeichner {
        color: #999999;
        font-family: Arial, Helvetica, sans-serif;
        font-size: 12px;
        font-weight: bold;
    }
    -->
    </style>
    </head>

    <body>
    <div align="center">
    <table>
    <?php

    $id 
    $_GET["id"];
    include(
    'connect.php');
    $res mysql_query("SELECT * FROM bndlaender ORDER BY id DESC"); // Hier werden die Länder nach ID sortiert! DESC bedeutet das die Werte aufsteigend sortiert sind!


    while($row mysql_fetch_array($res))
    {
    ?>
        <td width="98" nowrap="nowrap" bordercolor="#CCCCCC" bgcolor="#CCCCCC"><div align="center"><span class="Stil14"><font face="Tahoma" size="2"><?php echo $row["id"]; ?></font></span></div></td>
        <td width="300" bordercolor="#CCCCCC" bgcolor="#333333"><div align="center" class="Stil14"><font face="Tahoma" size="2"><?php echo $row["bndlaender"]; ?></font></div></td>
      </tr>
      <tr>
        <td nowrap="nowrap" bordercolor="#CCCCCC" bgcolor="#FFFFFF" class="Feldbezeichner">&nbsp;</td>
        <td bordercolor="#CCCCCC" bgcolor="#FFFFFF"><div align="center" class="Stil14"></div></td>
      </tr>
      
      <?php ?>
    </table>
    </div>
    </body>
    </html>
    So nur noch Uploaden und dann sollte es funktionieren!
    Geändert von Profundi (17.11.08 um 07:55 Uhr)
     
    >>Kron-X Designs<<
    <--------------------------------------------------->
    Niceware - I swear I did something nice!

    PROFUNDI REACHED:
    Fatal error: Maximum execution time of 30 seconds exceeded in H:\-XTestfiles\for\for.php on line 16
    AFTER RUNNING
    PHP-Code:
    <?php
    $lol
    =1;
    for (
    $lol$lol <= 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999$lol++) 
    {
    echo 
    "| LOL |";
    }
    ?>

    !!/\/\0/\/5/-\1337!!

  3. #3
    Profundi Profundi ist offline Mitglied Bronze
    Registriert seit
    Nov 2008
    Ort
    Chur
    Beiträge
    30
    Ou Sh** hab erst jetzt gesehn dass es sich nicht um PHP handelt
    Ne Stunde Arbeit umsonst... Naja Ich hoffe trotzdem ich konnte dir helfen!

    LG
     
    >>Kron-X Designs<<
    <--------------------------------------------------->
    Niceware - I swear I did something nice!

    PROFUNDI REACHED:
    Fatal error: Maximum execution time of 30 seconds exceeded in H:\-XTestfiles\for\for.php on line 16
    AFTER RUNNING
    PHP-Code:
    <?php
    $lol
    =1;
    for (
    $lol$lol <= 999999999999999999999999999999999999999999999999999999999999999999999999999999999999999$lol++) 
    {
    echo 
    "| LOL |";
    }
    ?>

    !!/\/\0/\/5/-\1337!!

  4. #4
    Smile85 Smile85 ist offline Grünschnabel
    Registriert seit
    Nov 2008
    Beiträge
    4
    Hallo Profundi!
    Danke für deine Hilfe erstmal!
    Hab jetzt nur folgendes Problem da es sich ja nicht um PHP handelt und ich leider ein voll Blutiger Anfänger bin, hab ich jetzt keine Ahnung wie ich deinen Code ändern müsste das ich ihn bei meinen Problem einsetzten kann!?
    Du hast dich wirklich sehr bemüht mir zu helfen, kannst du mir vielleicht noch weiter helfen?

    Hab schon folgendes Probiert:

    SqlConnection ^verbindung = gcnew SqlConnection(verbindungsstr);
    verbindung->Open( );

    SqlCommand ^befehl = gcnew SqlCommand( );
    befehl->Connection = verbindung;
    befehl->CommandText = “SELECT COUNT(*) FROM bndlaender“;

    leser = befehl->ExecuteReader( );

    Nur weiter komme ich nicht!
    Vorausgesetzt dass das überhaupt stimmt .

    Mfg Martin
     

  5. #5
    Avatar von pschilling
    pschilling pschilling ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Ort
    Duisburg (NRW)
    Beiträge
    192
    Hallo Smile,

    ich würde dir empfehlen, die Klassen CDatabase und CRecordset zu verwenden.

    Dazu müsstest du über die Systemsteuerung eine ODBC-Verbindung zu deiner Datenbank einrichten.

    Dann kannst du die Datenbank wie folgt connecten:

    Code :
    1
    2
    3
    4
    5
    6
    7
    
        CString dbConnectString;
        dbConnectString.Format("DSN=%s;UID=%s;PWD=%s", myDSN, myUsername, myPassword);
        CDatabase db;
        if( !db.OpenEx(dbConnectString,0 ) ) {
            // Fehler beim Verbinden aufgetreten
            return FALSE;
        }

    Normale Statements wie UPDATE, INSERT und so (alles was keine Ergebnisliste zurückgibt) kannst du direkt über das CDatabase-Objekt absetzen.

    Code :
    1
    2
    
      CString stmt = "update d set a = 'bla', b = 'blubb' where c = 'würg';
      db.ExecuteSQL(stmt);

    So kannst du Select-Statements absetzen und die Resultate auslesen

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
        CString stmt = "select a, b, c from d";
        CRecordset rs(&db);
        if( rs.Open(CRecordset::snapshot, stmt, CRecordset::none ) && !rs.IsEOF()) {
            rs.MoveFirst();
            CString a,b,c;
            while( !rs.IsEOF() ) {
                rs.GetFieldValue((short)0, a);
                rs.GetFieldValue((short)1, b);
                rs.GetFieldValue((short)2, c);
     
                rs.MoveNext();
            }
        }

    Und am Ende natürlich deine Connection wieder schließen.

    Code :
    1
    
        dc.Close();


    Um mit diesen Methoden arbeiten zu können musst du folgenden include hinzufügen :

    Code :
    1
    
    include "afxdb.h"


    Vielleicht bringts dich ja weiter..


    Viel Erfolg,

    Pit
     
    Der Computer wird das tun, was du programmierst - nicht das, was du willst ;-)

  6. #6
    Smile85 Smile85 ist offline Grünschnabel
    Registriert seit
    Nov 2008
    Beiträge
    4
    Hallo pschilling!
    Danke auch für deine Hilfe!!
    Habe aber jezt mein Problem anderst gelöst,

    int count=bindingSource1->Count;
    textBox1->Text=Convert::ToString(count);

    Trotzdem vielen Dank für eure Hilfe
    Mfg Martin
     

Ähnliche Themen

  1. PHP Code aus Datenbak ausführen
    Von proloser im Forum PHP
    Antworten: 10
    Letzter Beitrag: 27.01.07, 18:46
  2. Array zur Datenbak hinzufügen?
    Von dumm im Forum PHP
    Antworten: 7
    Letzter Beitrag: 11.03.06, 08:52
  3. Hyperlinks in Datenbak usw.
    Von son gohan im Forum PHP
    Antworten: 11
    Letzter Beitrag: 02.08.05, 22:28
  4. Datenbak
    Von Flash2034 im Forum PHP
    Antworten: 5
    Letzter Beitrag: 20.10.02, 13:38
  5. datenbak remoten
    Von vsitor im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 04.10.02, 12:38