phpbar.de logo

Mailinglisten-Archive

Re: doppelte eintraege
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: doppelte eintraege



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 


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive