ERLEDIGT
NEIN
NEIN
ANTWORTEN
18
18
ZUGRIFFE
733
733
EMPFEHLEN
-
Hi,
ich kämpfe mir einen ab und ich finde nicht das was ich suche im Internet. mein Buch gibt auch nicht ganz das was ich suche wieder.
also:
Ich will in einer db eine Tabelle suchen. Wenn diese vorhanden ist gibts eine 1 ansonsten eine 0. Gibts ne 0 wird ne tabelle via CREATE erstellt.
Das klappt auch. Nur wenn ich 2 oder 40 mal Refresh drücke kommt der gleiche Text.
"installier" normal muss dann noch nen Fehler kommen.
Kann mir wer helfen?
DANKE!
PHP-Code:function kommentare () {
$dbname = 'blog';
$result = mysql_list_tables($dbname);
if ($result == 'VIEWS'){
$search = "1";
} else {
$search = "0";
}
if($search == "0"){
mysql_select_db("blog");
$sqlab = "CREATE TABLE `kommentare` (`id` INT NOT NULL ,`email` VARCHAR( 255 ) ,`webseite` VARCHAR( 255 ) ,`name` VARCHAR( 255 ) ,`nachname` VARCHAR( 255 ) ,`passwort` VARCHAR( 255 ) ,`login` VARCHAR( 255 ) ,`css` VARCHAR( 255 ) ,PRIMARY KEY ( `id` )) TYPE = MYISAM ";
mysql_query($sqlab);
$info = "Tabelle -KOMMENTARE- wurde installiere<br />";
}else{
$info = "Es trat ein Fehler auf";
}
echo $info;
}
-
Bei der CREATE TABLE-Anweisung gibt es eine optionale IF NOT EXISTS-Klausel. Probiere es mal damit.
Die mysql_list_tables()-Funktion liefert übrigens eine MySQL-Ergebnisressource und muss wie jede andere Datenbankabfrage behandelt werden.Markus Wulftange
-
ok ich verstehe den einen Teil das ich das Create um den Zusatz if not exists erweiter.
Nur wie bekomme ich es hin das ich anstatt einer "0" eine "1" (für tabelle vorhanden) hinbekomme und damit wird keine Tabelle Created, sondern zb:
PHP-Code:$error "Datenbank vorhanden.";
-
Wie bereits erwähnt, liefert die mysql_list_tables()-Funktion nur eine MySQL-Ergebnisressource. Dies mit der Zeichenkette „VIEWS“ verglichen, ergibt wahrscheinlich immer ein unwahr. Und daher wird auch immer versucht, die Datenbank zu erstellen.
Markus Wulftange
-
kannst du mir nicht erklären wie ich es besser machen kann ?
-
Ich bekomme einfach immer das Installiert ausgegeben.PHP-Code:
## KOMMENTARE
function kommentare () {
$tabelle = 'kommentare';
$result = mysql_query($tabelle);
if (!$result){
$search = "0";
}elseif(isset($result)){
$search = "1";
}
if($search == "0"){
mysql_select_db("blog");
$sqlab = "CREATE TABLE IF NOT EXISTS `kommentare` (`id` INT NOT NULL ,`email` VARCHAR( 255 ) ,`webseite` VARCHAR( 255 ) ,`name` VARCHAR( 255 ) ,`nachname` VARCHAR( 255 ) ,`passwort` VARCHAR( 255 ) ,`login` VARCHAR( 255 ) ,`css` VARCHAR( 255 ) ,PRIMARY KEY ( `id` )) TYPE = MYISAM ";
mysql_query($sqlab);
$info = "Tabelle -KOMMENTARE- wurde installiere<br />";
}else{
$info = "Es trat ein Fehler auf";
}
echo $info;
}
echo kommentare();
-
Wie ebenfalls schon erwähnt, ist der Rückgabewert der mysql_list_tables()-Funktion wie eine ganz gewöhnliche MySQL-Datenbankabfrage zu behandeln.
Aber ich lese gerade auf der Referenzseite der mysql_list_tables()-Funktion, dass die SHOW TABLES-Anweisung der Funktion vorgezogen werden sollte. Also etwa:PHP-Code:function kommentare()
{
mysql_select_db('blog');
$query = 'SHOW TABLES';
$result = mysql_query($query);
$flag = false;
while( $table = mysql_result($query, 0) ) {
if( $table == 'kommentare' ) {
$flag = true;
break;
}
}
if( !$flag ) {
$query = 'CREATE TABLE `kommentare` (`id` INT NOT NULL ,`email` VARCHAR( 255 ) ,`webseite` VARCHAR( 255 ) ,`name` VARCHAR( 255 ) ,`nachname` VARCHAR( 255 ) ,`passwort` VARCHAR( 255 ) ,`login` VARCHAR( 255 ) ,`css` VARCHAR( 255 ) ,PRIMARY KEY ( `id` )) TYPE = MYISAM ';
mysql_query($query);
}
return $flag;
}
Markus Wulftange
-
nun created er keine tabelle mehr.
-
ne was anderes nun kommt:
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in L:\__WEBSERVER\apachefriends\xampp\htdocs\projekte\weblog\install.php on line 10
das ist diese stelle
while( $table = mysql_result($query, 1) ) {
-
Welchen Wert liefert denn die Funktion zurück? Wird die Tabelle auch dann nicht erstellt, wenn du sie manuell löschst? Arbeite mal zur Fehleranalyse zusätzlich mit der or die(…)-Fehlerbehandlung.
Markus Wulftange
-
ok,
nun was neues.
installieren tut er aber mit dem fehler von oben.
-
Ich seh’s gerade, mein Fehler: Ersetze mal in der genannten Zeile das $query durch $result.
Markus Wulftange
-
ok habe ich geändert.
Datenbank gelöscht und dann Refresh:
Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 4 in L:\__WEBSERVER\apachefriends\xampp\htdocs\projekte\weblog\install.php on line 10
Tabelle aber vorhanden.
---
Dannn wieder Refresh.
Ausgabe: 1;
-
Einfacher wäre folgendes:
Flextone: Etwas eigenständiges Mitdenken sowie Groß-/Kleinschreibung wären ganz angebracht.PHP-Code:function kommentare()
{
$query = 'SHOW TABLES FROM `blog` LIKE \'kommentare\'';
$result = mysql_query($query);
if (mysql_num_rows($result) == 0) {
$query = 'CREATE TABLE `kommentare` (`id` INT NOT NULL ,`email` VARCHAR( 255 ) ,`webseite` VARCHAR( 255 ) ,`name` VARCHAR( 255 ) ,`nachname` VARCHAR( 255 ) ,`passwort` VARCHAR( 255 ) ,`login` VARCHAR( 255 ) ,`css` VARCHAR( 255 ) ,PRIMARY KEY ( `id` )) TYPE = MYISAM ';
mysql_query($query);
return false;
}
return true;
}
„Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
“For every complex problem, there is an answer that is short, simple and wrong.”
“Pessimism is safe, but optimism is a lot faster!”
Aktuelles Coding Quiz: #17 - Wörter kreuz und quer
-
hi Matthias,
es scheint wohl besser zu gehen, da beim Installieren keineFehlermeldung kommt und beim Refresh eine "1".
Wie könnte ich denn nun eine $info = "ja" oder $info = "nein" - Ausgabe hinpacken ?
Danke
Ähnliche Themen
-
Datensatz löschen, wenn in einer anderen Tabelle nicht vorhanden
Von port29 im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 15.08.10, 03:16 -
DB-Abgleich wenn nicht vorhanden dann
Von Godstyle im Forum PHPAntworten: 5Letzter Beitrag: 08.07.09, 15:08 -
hilfe bei php= wenn jquery vorhanden dann nicht neu laden?
Von hups1803 im Forum PHPAntworten: 13Letzter Beitrag: 02.04.09, 18:22 -
Werte aus DB prüfen (wenn ja dann weiter Wenn nein dann nicht)
Von harderph im Forum PHPAntworten: 3Letzter Beitrag: 27.01.08, 10:45 -
MSSQL: update - und wenn nicht vorhanden, dann insert
Von JavaUncle im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 19.01.08, 12:27





Zitieren

Login






[PHP] [Codeschnipsel] ImageColor aus HTML-Farbcodierung erstellen