Adressverwaltung um Bildupload erweitern

Setzch

Mitglied
Hallo Zusammen,

ich habe mir das TUT
http://www.tutorials.de/content/444-...erwaltung.html
angesehen und nachgebaut. Mit Eurer Hilfe steht nun das geänderte Rohgerüst so wie ich es mir gedacht habe.

Nun würde ich gerne das Script erweitern...

und zwar in der Form, dass ich noch ein Bild zur Adresse raufladen könnte.

Die install der Db muss ja erweitert werden.
PHP:
<?php  
include 'config.inc.php'; 

mysql_connect($host, $user, $pass) or die ("Keine Verbindung zu der Datenbank möglich.");
 mysql_select_db($db); 

$sql = "CREATE TABLE adressen 
       ( 
       Id Int(11) NOT NULL auto_increment, 
       Vorname VarChar(50) NOT NULL default '', 
       Nachname VarChar(50) NOT NULL default '', 
       Geburtsdatum VarChar(50) NOT NULL default '', 
       Strasse VarChar(50) NOT NULL default '', 
       Ort VarChar(50) NOT NULL default '', 
       Mobil VarChar(50) NOT NULL default '', 
       Festnetz VarChar(50) NOT NULL default '', 
       Email VarChar(50) NOT NULL default '', 
       Homepage VarChar(50) NOT NULL default '', 
       Notiz Text(1000) NOT NULL default '', 
        PRIMARY KEY (Id) 
       )"; 

$query = mysql_query($sql); 

if ($query) 
{ 
  echo 'Die Datenbank wurde erfolgreich installiert!'; 
} 
else 
{ 
  echo 'Installation fehlgeschladen!'; 
  echo 'Query: '.$sql.'<br>'; 
  echo 'Fehler: '.mysql_error().'<br>'; 
} 
   
?> 
Als nächstes kommt die eintrag.php
Dies geschieht ja sicehr nicht mit Varchar? Hab zwar gegoogelt aber ich muss gestehen als Laie versteh ich das was ich gefunden habe nicht so ganz ;-(

Dann muss das bild ja raufgeladen werden und wo abgelegt..
PHP:
<?php 
include 'config.inc.php'; 

mysql_connect($host, $user, $pass) or die ("Keine Verbindung zu der Datenbank möglich.");
 mysql_select_db($db); 

if ($_POST['submit']) 
{ 
 $sql = 'INSERT INTO adressen(Vorname, Nachname, Geburtsdatum, Strasse, Ort, Mobil, Festnetz, Email, Homepage, Notiz) VALUES("'.$_POST['Vorname'].'","'.$_POST['Nachname'].'","'.$_POST['Geburtsdatum'].'","'.$_POST['Strasse'].'","'.$_POST['Ort'].'","'.$_POST['Mobil'].'","'.$_POST['Festnetz'].'","'.$_POST['Email'].'","'.$_POST['Homepage'].'","'.$_POST['Notiz'].'")';
 mysql_query($sql); 
  echo 'Der Eintrag war erfolgreich!'; 
} 
else 
{ 
echo ' 
<form action="" method="post"> 
<table width="700" border="0"> 
  <tr> 
    <td>Pers&ouml;nliche Daten </td> 
    <td>&nbsp;</td> 
  </tr> 
  <tr> 
    <td>Vorname</td> 
    <td><input type="text" name="Vorname" size="30" /></td> 
  </tr> 
  <tr> 
    <td>Nachname</td> 
    <td><input type="text" name="Nachname" size="30" /></td> 
  </tr> 
  <tr> 
    <td>Geburtsdatum</td> 
    <td><input type="text" name="Geburtsdatum" size="30" /></td> 
  </tr> 
  <tr> 
    <td>&nbsp;</td> 
    <td>&nbsp;</td> 
  </tr> 
  <tr> 
    <td>Wohnort</td> 
    <td>&nbsp;</td> 
  </tr> 
  <tr> 
    <td>Stra&szlig;e</td> 
    <td><input type="text" name="Strasse" size="30" /></td> 
  </tr> 
  <tr> 
    <td>PLZ - Ort </td> 
    <td><input type="text" name="Ort" size="30" /></td> 
  </tr> 
  <tr> 
    <td>&nbsp;</td> 
    <td>&nbsp;</td> 
  </tr> 
  <tr> 
    <td>Kommunikation</td> 
    <td>&nbsp;</td> 
  </tr> 
  <tr> 
    <td>Mobil</td> 
    <td><input type="text" name="Mobil" size="30" /></td> 
  </tr> 
  <tr> 
    <td>Festnetz</td> 
    <td><input type="text" name="Festnetz" size="30" /></td> 
  </tr> 
  <tr> 
    <td>Email</td> 
    <td><input type="text" name="Email" size="30" /></td> 
  </tr> 
  <tr> 
    <td>&nbsp;</td> 
    <td>&nbsp;</td> 
  </tr> 
  <tr> 
    <td>Sonstiges</td> 
    <td>&nbsp;</td> 
  </tr> 
  <tr> 
    <td>Homepage</td> 
    <td><input type="text" name="Homepage" size="30" /></td> 
  </tr> 
  <tr> 
    <td>Notiz</td> 
    <td><textarea name="Notiz" cols="40" rows="10"></textarea></td> 
  </tr> 
  <tr> 
      <td><input type="reset" name="Reset" value="Zurücksetzen" /></td> 
    <td><input type="submit" name="submit" value="Eintragen" /></td> 
  </tr> 
</table> 
</form> 
'; 
} 
?> 
Jetzt kommt die suche.php, dort könnt ihr Adressen suchen, ich habe es so gemacht, dass ihr die User nach allen Kriterien suchen könnt.
Der Input Type ist ja dabei sichcr auch nicht Text....


Vllt hat jemand nen Tipp wie ich das anstellen könnte ?

Danke Setzch
 
Vllt noch zur Info,

ich möchte nicht das Bild direkt in der Db speichern ( geht das überhaupt)? Ich möchte ein oder zwei Bilder pro Adresse in einen Ordner abspeicehr.. keine Ahnung nennen wir den mal "BILD" dieser "Speicherort" soll zu der adresse abgelegt werden und bei der darstellung soll das Script genau das passende Bild aus dem Ordner holen und mit der Adresse darstellen..

Ich hab auch genug Bsp gefunden die sich damit beschäftigen , nur ist mir nicht klar .. und zwar überhaupt nicht ;-( wie ich die mit diesem Script verbinden könnte )(
 
In der Datenbank bekommt ja jeder Eintrag eine eindeutige ID zugewiesen.

Jetzt kannst du entweder hergehen und die Tabelle um zwei Felder (z.B. Bild1 und Bild2) erweitern. In diesen Feldern speicherst du dann den Namen des jeweiligen Bildes. Hat aber den Nachteil das du dann immer prüfen musst ob ein Bild mit diesem Namen bereits existiert.

Oder du nimmst die ID und bildest aus ihr den Dateinamen einfach neu, z.B. in der Form "id_nummer.jpg". Also "1_1.jpg", "1_2.jpg", ... "17_1.jpg", "17_2.jpg" usw.
Dann musst du in der DB gar nichts verändern sondern nur prüfen ob es ein solches Bild gibt oder nicht.
 
mhh ok, die Bilder haben aber aus einem anderen Grund sowieso immer unterschiedliche Namen.

wie müsste denn im Eingabeformblatt die übergabe in die DB geregelt werden...
benutzt man da diesen ..blob Eintrag?
 
Zuletzt bearbeitet:
Also ich meine das so:
Im Eintragformular muss ein Button durchsuchen kommen, der eine Auswahl des Bildes aus der Festplatte ermöglicht.
Schick ich das Formular ausgefüllt ab. wird das Bild in einer im Script angegebenen Ordnerstrucktur abgelegt.

In der Datenbank soll nur das richtige Bild zum richtigen Eintrag gezeigt werden.
Ruf ich dann die Adresse auf, zeigt es mir die date wie name vorname usw plus das ausgesuchte Bild an......
 
Zum Upload habe ich mir dieses Script ausgesucht.

PHP:
<?php
$dateityp = GetImageSize($_FILES['datei']['tmp_name']);
if($dateityp[2] != 0)
   {

   if($_FILES['datei']['size'] <  102400)
      {
      move_uploaded_file($_FILES['datei']['tmp_name'], "upload/".$_FILES['datei']['name']);
      echo "Das Bild wurde Erfolgreich nach upload/".$_FILES['datei']['name']." hochgeladen";
      }

   else
      {
         echo "Das Bild darf nicht größer als 100 kb sein ";
      }

    }

else
    {
    echo "Bitte nur Bilder im Gif bzw. jpg Format hochladen";
    }
?>
und als Formular dieses...
HTML:
<form action="upload.php" method="post" enctype="multipart/form-data"> 
<input type="file" name="datei"><br>
 <input type="submit" value="Hochladen"> 
</form>
wie gesagt nur die Verbindung zu dem Tut Script und der Aufruf .. da bin ich irgendwie zu doof für
 
mhh ok, die Bilder haben aber aus einem anderen Grund sowieso immer unterschiedliche Namen.
Den Namen vergibst doch du nach deinen Regeln!

wie müsste denn im Eingabeformblatt die übergabe in die DB geregelt werden...
benutzt man da diesen ..blob Eintrag?
Was ist ein Eingabeformblatt und was bitte ist ein "blob Eintrag"?

Wenn du die Bildnamen wie oben beschrieben in der Form "id_nummer" erstellst, muss an der DB gar nichts geändert oder übergeben werden.

So bald ein Datensatz angezeigt wird (z.B. mit der ID 25) prüfst du ob in dem Verzeichnis in dem die Bilder gespeichert werden ein Bild mit Namen "25_1.jpg" und "25_2.jpg" vorhanden ist. Wenn ja wird es angezeigt, wenn nicht dann nicht.
 
Den Namen vergibst doch du nach deinen Regeln!
Ja das meinte ich als ich das schrieb

So bald ein Datensatz angezeigt wird (z.B. mit der ID 25) prüfst du ob in dem Verzeichnis in dem die Bilder gespeichert werden ein Bild mit Namen "25_1.jpg" und "25_2.jpg" vorhanden ist. Wenn ja wird es angezeigt, wenn nicht dann nicht.

ok soweit logisch,,,,, aber dazu reicht mein extrem schmales können nicht aus um dies mit in die Ausgabe des Scripts einzubauen (( kk danke
 
PHP:
move_uploaded_file($_FILES['datei']['tmp_name'], "upload/".$_FILES['datei']

$_FILES['datei'] musst du durch den Namen ersetzen mit dem das Bild gespeichert werden soll.

Jetzt müsste nur noch überlegt werden wie man zwischen Bild 1 und Bild 2 unterscheiden kann, am einfachsten vielleicht so:

PHP:
$bildname = $id ."_1.jpg";
if (fileexists($bildname) {
    $bildname = $id ."_2.jpg";
}
move_uploaded_file($_FILES['datei']['tmp_name'], "upload/".$bildname;

Wenn Bild 1 nicht vorhanden ist, wird das übertragene Bild mit der (Bild-)Nummer 1 gespeichert, andernfalls mit der Nummer 2. Den Wert der Variablen $id holst du dir aus der Datenbank.
 
ok. dann friemel ich das mal in das Uploadscript rein und teste das.. was mir noch nicht ganz klar ist du schreibst
$_FILES['datei'] musst du durch den Namen ersetzen mit dem das Bild gespeichert werden soll.
der Name ist doch bei jedem Bild bzw bei jedem Datensatz anders**** oder ?
 
Zurück