MyBB.de Forum

Normale Version: PHP Anfänger sucht Hilfe
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5 6 7
(04.01.2012, 16:46)Devidra schrieb: [ -> ]also kann ich anstatt form action einfach form lassen, nach deiner Aussage Mihawk?
So meinte ich das:
Code:
<form action="" method="post">
PHP-Code:
<form action="" method="post">
                
                <?
php
                    
// Verbindungs zur Datenbank
                    
$_config = array();
                    
$_config['host'] = 'localhost';
                    
$_config['user'] = 'user';
                    
$_config['password']  = 'pw';
                    
$_config['database'] = 'db';
                    
                    if( !
$connection mysql_connect$_config['host'], $_config['user'], $_config['password'] ) ) {
                       die( 
'Verbindung zum Datenbankserver konnte nicht hergestellt werden.' );
                    }
                    
                    if( !
mysql_select_db$_config['database'], $connection ) ) {
                      die ( 
'Die Datenbank ' $_config['database'] . ' kann nicht verwendet werden. <br />
                               MySQL-Error: <br />' 
mysql_error() );
                    }                    
                        
                        
$tabellen "<option><?php $spiele ?></option>";
                        
$eintragen "<input class=\"button_eintragen\" type=\"button\" onclick=\"alert('Noch nicht verfügbar!')\" \/>";
                        
$folge "<input type=\"text\" size=\"10\" maxlength=\"25\" \/>";
                        
$datum "<input type=\"text\" size=\"25\" maxlength=\"50\" \/>";
                        
$author "<input type=\"text\" size=\"25\" maxlength=\"50\" \/>";
                        
$videolink "<input type=\"text\" size=\"50\" maxlength=\"150\" \/>";
                    
                        
$eintragen "INSERT INTO Tabellenname
                        (spalte1, spalte2, spalte3, spalte4)
                        VALUES
                        ('
$folge', '$datum', '$author', '$videolink')";
                        
                        
$eintragen mysql_query($eintragen);
                        
$spiele mysql_query(SHOW TABLES FROM letsplay);
                
                    
?>
                
                    Spiel:<br />
                    <select>
                        <?php $tabellen ?>
                    </select>
                    <br /><br />
                    Nummer der Folge:<br />
                        <?php $folge ?>
                    <br /><br />
                    Datum:<br />
                        <?php $datum ?>
                    <br /><br />
                    Author:<br />
                        <?php $author ?>
                    <br /><br />
                    Videolink:<br />
                        <?php $videolink ?>
                    <br /><br />
                        <?php $eintragen ?>
                </form> 

Ich hab mal bisschen weiter gearbeitet und eigentlich sollte es so richtig sein, hab auch richtig escaped nach dieser Anleitung, nachdem ich immer t_string syntax errors bekam ( http://www.schattenbaum.net/php/unexpected_T_STRING.php )

Auf jedenfalls sagt mir mein Programm phpDesigner, das in

PHP-Code:
$spiele mysql_query(SHOW TABLES FROM db_name); 

Das dort auch nen t_string error ist.. Doch dort find ich leider nichts, hab auch 'db_name' versucht, immernoch der error

Ich hoff ma ich hab "richtig" weitergedacht und gemacht, ansonsten hab ich immernoch ein Backup
Code:
$spiele = mysql_query("SHOW TABLES FROM `DATENKBANKNAME`");
Immer schön in Strings setzen. Ausserdem Datenbankname mit dem Namen der Datenbank ersetzen.
Ach verdammt ^^

Die " hab ich total vergessen, muss ich mir merken, aber wenn ich nun eine Variable reinsetze muss keins rein, oder?

Weil

PHP-Code:
$eintragen mysql_query($eintragen);
                        
$spiele mysql_query("SHOW TABLES FROM 'letsplay'"); 

klappt es ja ohne Fehler

Nur so, ist der Ansatz so aber richtig oder hab ichs komplett Falsch gemacht?
Bei einem Tabellen- oder Datenbankname musst du Backticks (`) und keine Single Quotes setzen. Bei einer Variabele gibt es grundsätzlich verschiedene Möglichkeiten.

a) Die meiner Meinung nach schönste und übersichtlichste Variante, so wie ichs mache:
Code:
$spiele = mysql_query("SHOW TABLES FROM `".$dbname."`");

b) Mit geschweiften Klammern
Code:
$spiele = mysql_query("SHOW TABLES FROM `{$dbname}`");

c) Ohne etwas - funktioniert nur bei Double Quotes (")
Code:
$spiele = mysql_query("SHOW TABLES FROM `$dbname`");

Bei Single Quotes werden die Variablen nicht umgewandelt und werden so wie's reinkommt ausgeführt bzw. in unserem Fall wird die Datenbank "$dname" gesucht.

King Louis

es geht auch mit single quotes:

PHP-Code:
$spiele mysql_query("SHOW TABLES FROM '".$dbname."'"); 

Ist zwar umständlich aber es geht Wink

Ich empfehle aber eh direkt zu beginn eine Verbindung aufzubauene dann muss man nicht bei jedem Query ein "FROM" hintersetzen.
Die Verbindung zur Datenbank hatten wir doch schon am Anfang gemacht, wieso muss man denn eigentlich nun ne neue machen O-o unlogisch xD

@Mihawk: Variante B ist eigentlich leicht zu verstehen Smile Ich glaub ich eigne mir die an falls ichs gebrauchen sollte Smile

King Louis

Also ich würde es in 2 Dateien wie folgt machen (später kann man das dann noch in eine packen aber wir sind ja hier nicht bei den Pros Wink)

Die index.html, welche du aufrufst:

PHP-Code:
<form action="verarbeiten.php" method="post">
 
Nummer der Folge:<br>
 <
input size="10" maxlength="25" \="" type="text" name="folge">
 <
br><br>
 
Datum:<br>
 <
input size="25" maxlength="50" \="" type="text" name="datum">
 <
br><br>
 
Author:<br>
 <
input size="25" maxlength="50" \="" type="text" name="autor">
 <
br><br>
 
Videolink:<br>
 <
input size="50" maxlength="150" \="" type="text" name="video">
 <
br><br>
</
form

Und als verarbeiten.php:
PHP-Code:
<?php
//Deine Daten hier
$_config = array();
$_config['host'] = 'localhost';
$_config['user'] = 'user';
$_config['password']  = 'pw';
$_config['database'] = 'db';

//Verbindung aufbauen & Datenbank auswählen
if( !$connection mysql_connect$_config['host'], $_config['user'], $_config['password'] ) ) {
   die( 
'Verbindung zum Datenbankserver konnte nicht hergestellt werden.' );
}

if( !
mysql_select_db$_config['database'], $connection ) ) {
  die ( 
'Die Datenbank ' $_config['database'] . ' kann nicht verwendet werden. <br />
           MySQL-Error: <br />' 
mysql_error() );
}

$folge=$_POST['folge']; $datum=$_POST['datum']; $autor=$_POST['autor']; $video=$_POST['video'];

$eintragen "INSERT INTO
         tabelle(folge, datum, autor, video)
    VALUES('
$folge', '$datum', '$autor', '$video')";

$res mysql_query($eintragen) or die( 'Error[SELECT|User]: <br />
                                                   <pre>' 
$eintragen '</pre>
                                                   <br />
                                                   MySQL-Error: ' 
mysql_error() ); 

Hab ich zwar jetzt nicht getestet aber so sollte es funktionieren.

Das "FROM" benutzt man halt vorallem wenn man auf mehrere Datenbanken zugreifen will.
(04.01.2012, 19:59)Jones schrieb: [ -> ]es geht auch mit single quotes:

PHP-Code:
$spiele mysql_query("SHOW TABLES FROM '".$dbname."'"); 

Ist zwar umständlich aber es geht Wink

Ich empfehle aber eh direkt zu beginn eine Verbindung aufzubauene dann muss man nicht bei jedem Query ein "FROM" hintersetzen.
Also bei mir meint phpmyadmin etwas anderes.
Code:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''rcms'' at line 1

Bist du dir da immernoch sicher?

King Louis

Also ich benutze den code seit knapp nem jahr und hab bisher höchstens bei arrays probleme wo nochmal quotes vorkommen^^
Seiten: 1 2 3 4 5 6 7