Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Tabelle erstellen/ändern per install.php [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Tabelle erstellen/ändern per install.php


 
Swishman
13-12-2001, 21:12 
 
Ich hätte da mal eine Frage!

Wie kann ich es am besten machen, das, beim anlegen einer sql Tabelle per install script erst mal festgestellt wird ob die schon da ist, und wenn ja, dann nur die Veränderungen gemacht werden!
Wäre Dankbar, wenn mir das einer versimpelt klar machen kann!

Das ist Das install file jetzt:
------------------------------------------------------------
<?
require ("config.inc.php");
require ("$userkopf");

if(!isset($mkdb)) {
echo "<center>Klick auf OK um die Tabellen anzulegen:<br>
<form action=$PHP_SELF method=post><br>
<br><input type=submit name=mkdb value=OK></form></center>";
}
if(isset($mkdb)) {
$conn = mysql_connect($sql_host, $sql_user, $sql_pass);
mysql_select_db($sql_db);


$sqlgb = "CREATE TABLE $sql_tab (
id tinyint(10) DEFAULT '0' NOT NULL AUTO_INCREMENT,
name varchar(255),
email varchar(255),
datum varchar(255),
betreff varchar(255),
text varchar(255),
leftpo varchar(255),
toppo varchar(255),
primary key(id));";


$resgb = mysql_query($sqlgb, $conn);

if($resgb) {
echo "Die Tabelle - <b>$sql_tab</b> - wurde erfolgreich angelegt<br>
<hr><br>
<a href=pinnwand.php>zum $title</a>";
}
else {
mysql_error();
}
mysql_close($conn);
}
?>
----------------------------------------------------------
Jetzt will ich noch eine Spalte "farbe" und "pinn" reinmachen in der nächsten version, und die alte Tabelle sollte geändert werden, oder eben eine Neue erstellt werden, dann mit allen neuen Spalten drin.
Hoffe jemand kann mir da weiter helfen!

Swishman

 
PHPwebworks
13-12-2001, 23:31 
 
Wenn Du nur etwas hinzufügen willst:

ALTER TABLE tabelle ADD feld varchar(xy)

 
Swishman
13-12-2001, 23:37 
 
Danke Für die Antwort

Das ganze script sollte wenn es zB zum zweiten mal aufgerufen wird, einfach nix machen, wenn die Tabelle schon da ist, wenn weine ältere tabelle da ist, dann die veränderungen machen, und wenn noch gar nix da ist eine kommplete Tabelle rein machen incl. den Änderungen

Meinst du das geht, oder ist es nicht möglich. Bei den scripten von powie.de funtzt das so, aber es ist so kompliziert, das ich es net peil, wie er da gemacht hat!

Swishman

 
JoelH
14-12-2001, 07:12 
 
also ob die DB da ist stellst du fest wenn du zu ihr connectest und es kommt ein false als antwort
sollte so gehen

if (!($handle = mysql_select_db($dbname,$conn))) { die("nicht da "); }


naja und für Felder auszulesen hier ein gutes Beispiel :
[code]
<?php
mysql_connect("localhost:3306");
mysql_select_db($dbname);
$result = mysql_query("SELECT * FROM tabelle");
$fields = mysql_num_fields($result);
$intRows = mysql_num_rows($result);
$i=0;
$table = mysql_field_table($result,$i);
echo "Die Tabelle $table hat $fields Felder und $intRows Datensätze <br>";
echo "Es folgt eine Liste der Felder : <br>";
while ($i< $fields)
{
$strTyp = mysql_field_type($result,$i);
$strName = mysql_field_name($result,$i);
$intLen = mysql_field_len($result,$i);
$strFlags = mysql_field_flags($result,$i);
echo"$strTyp $strName $intLen $strFlags <br>";
$i++;
}
mysql_close();

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:42 Uhr.