Mailinglisten-Archive |
tach uwe,
> hi _(at)_ll,
wir sind hier nich bei Giga...
> habe gerade angefangen, mich mit php und mysql vertraut zu machen.
> prompt stiess ich auf ein problem, bei dem ihr mir vielleicht
> weiterhelfen koennt.
>
> ich habe eine datenbank angelegt und wollte diese mittels php-skript
> fuellen.
> das skript sieht so aus:
> ---------------------------------------------------------------------------
> <?php
> $server = "192.168.0.1";
> $user = "root";
> $passwd = "";
> $dbase = "adressen";
> $tabelle = "email";
sowas includet man normalweise...
include("/server/root/include/passwdfile.inc");
> mysql_connect($server, $user, $passwd) or die ("<h3>Datenbankserver
> nicht erreichbar</h3>");
> mysql_select_db($dbase) or die ("<h3>Datenbank nicht vorhanden</h3>");
>
> $result = mysql_query( "create table $tabelle( name varchar(20),
> vorname varchar(20), email varchar(40) )" );
sollte man eigentlich nur einmal machen ;o)
mehrmals nen table erstellen is leicht beknackt...
also in shell create table ... und dann im script weg lassen.
> mysql_query("INSERT INTO $tabelle VALUES('Voelker','Uwe','uvoelker_(at)_gmx.de')");
usw. schaut besser aus (orientierungstechnisch)
> mysql_query( "insert into $tabelle
> values('Napf','Karl','knapf_(at)_irgendwo.de') " );
> mysql_query( "insert into $tabelle
> values('Wurst','Hans','hwurst_(at)_irgendwo.de') " );
> $anzahl=MYSQL_NUMROWS(MYSQL_QUERY( "SELECT * FROM $tabelle") );
$query = "SELECT * FROM $tabelle";
$anzahl = mysql_num_rows($query);
> if ($anzahl==0):
> echo "Keine Daten vorhanden";
> elseif ($anzahl > 0):
> echo "$anzahl Datensaetze vorhanden";
> endif;
würde ich so schreiben:
if($anzahl > 0) {
echo "$anzahl Datensaetze vorhanden";
### HIER EINFÜGEN ###
}
else {
echo "Keine Daten vorhanden";
}
und den teil hier drunter würde ich dann oben einfügen... weil is nix da
bringt das auch nix...
> $result = mysql_query("select * from $tabelle");
>
> echo "<table border=1 align=center>";
> echo "<tr>";
>
> while($field = mysql_fetch_field($result)){
> echo "<th><font color=#ff0000>$field->name</font></th>";
> }
>
> echo "</tr>";
>
> while($row = mysql_fetch_row($result)){
> echo "<tr>";
> for($i = 0; $i < mysql_num_fields($result); $i++){
> echo "<td align=center>$row[$i]</td>";
> }
>
> echo "</tr>";
> }
>
> echo "</table>";
>
> mysql_close();
closen mußte nich, is ja keine perm connectio.
nen mysql_free_result($result); wäre da ggf. angebracht...
> ?>
> ---------------------------------------------------------------------------
>
> innerhalb des browsers wird das ergebnis richtig angezeigt. lediglich
> 3 eintraege wurden hinzugefuegt.
> wenn ich mir die tabelle auf befehlszeilen-ebene anschaue, fnde ich
> jeden eintrag doppelt vor!
>
> btw: ich habe das skript nicht mehrmals laufen lassen ;-)
>
> kann mir einer sagen was ich falsch mache.
> ich bin fuer jeden hinweis dankbar.
drop den table, erstell den table per shell und laß dann das script
laufen.
---
*** Weitere Infos zur Mailingliste und MySQL unter http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive