Willkommen in der Webstatt Zum Webstatt Blog und Stories
Bonze am 11.02.07 13:41

also ich möchte das wenn ich nen db-eintrag bearbeite schon ein wert aus meinem auswahlfeld ausgewählt ist, sodas man es nicht bei jedem bearbeiten neu auswaählen muss,.

mein ansatz dazu (bzw der sollte normalerweise schon funktionieren aber ,..)
irgendwo ist der wurm drin ,.


so sieht mein code aus ,.
<?php
##mysql verdindung,.
##meine automarken in nem array
$automarken = array("arschleckertestauto", "VW", "Audi", "Opel", "Trabant");

$sql = "SELECT * FROM auto_db WHERE id = '".$_GET['edit']."' LIMIT 1" or die(mysql_error());
$query = mysql_query($sql, $link) or die(mysql_error());
$row = mysql_fetch_assoc($query);
?>
<form enctype="multipart/form-data" action="<?php $_SERVER['PHP_SELF']?>" method="post">
<select value="" name="marke">
<?php
foreach ($automarken as $key => $value) {

if($key == $row[marke]){
echo "<option value=\"$key\" selected>$automarken[$key]</option>";
}else{
echo "<option value=\"$key\">$automarken[$key]</option>";
}
}
?>
</select>

<input name="submit" type="submit" class="button" value="Auto eintragen" />
<input type="hidden" name="submit" value="Upload" /> <input name="submit2" type="reset" class="button" value="Reset Fomular" /></td>



und zwar scheiterts irgendie daran (so hab ich das gefühl) das $row[marke] leer is ,.

netcup.de Warum gibt es hier Werbung?
bastey bastey am 11.02.07 14:13

Hello,
ich würde sagen, der Fehler ist hier:
if($key == $row[marke]){

Durch foreach ( $arr AS $key => $val )
weißt du $key eine Zahl zu (die ID des Arrays). Geht also mit "0" los.
Und "0" != automarke :P

Mach einfach mal $value == $row['marke']. Sollte gehen.

Bonze am 11.02.07 16:01

das is komisch , ich möchte doch nur meinen wert aus der db (x) mit dem keywert $key vergleichen , und wenn das stimmt, möchte ich das dieser wert dann als selected ausgegeben wird, ..

das array $automarken und $key sehen dann so aus !
Array
(
[0] => arschleckertestauto
[1] => VW
[2] => Audi
[3] => Opel
[4] => Trabant
)
Array
(
[id] => 185
[marke] => 2
[kfztyp] => auto
[kfzart] => geiler testwagen!
[bild1] =>
[bild2] =>
[bild3] =>
[bild4] =>
[bild5] =>
[status] => noch zu haben
[preis] => spottbilli
[ez] =>
[au] =>
[hu] =>
[km] =>
[kw] =>
[ps] =>
[getriebe] =>
[farbe] =>
[kraftstoff] =>
[ausstattung] =>
)


ausserdem bekomme ich diesen fehler in der foreach schleife!
<b>Notice</b>: Use of undefined constant marke - assumed 'marke' in <b>E:\xampp\xampp\htdocs\projects\autohandel\admin\pages\testsite.php</b> on line <b>31</b><br />

mh komisch eben ma ws kleines geändert jetzt steht im quelltext!
<select value="" name="marke">
<option value="0">arschleckertestauto</option>
<option value="1">VW</option>
<option selected="selected" value="2" >Audi</option>
<option value="3">Opel</option>
<option value="4">Trabant</option>
</select>


im mozilla geht es dennoch nicht ,. es wird immer der erste eintrag angezeigt,. mitm key 0 ,.

mab mab am 11.02.07 16:42

mh kann es vielleicht sein, dass in deiner doctype declaration nichts von xhtml steht :) falls ja, dann ist das dem Mozilla nämlich nicht egal.

<option selected> blaa </option>

Bonze am 11.02.07 17:22

mh komisch , ja hab keinen dringehabt , weil ichs nur testen wollte im IE6 scheints zu gehen :D
thx für den tipp :D

mab mab am 11.02.07 17:44

na klar Internet Explorer eben :D

Bonze am 14.02.07 15:54

so neues problem und zwar möcht ich die hochgeladenen bilder neu benennen!
so mach ich es..
$zufall = md5( ((time()*rand())/2) );
$zufall_kurz = substr($zufall, 0, 7);
if (move_uploaded_file($_FILES["pictures"]["tmp_name"][$key],$upload_dir.$_FILES["pictures"]["name"][$key])) {
rename($upload_dir.$_FILES["pictures"]["name"][$key],$zufall_kurz);
}



allerdings wird dabei die dateiendung mit gekillt,
aloso den richtigen namen hat die datei dann , allrdings keine dateiednung, gibts da ne elegantere mioethode oder muss ich die dateiendung vom namen trennen und später wieder dransetzen?

Bonze am 14.02.07 17:01

so habs selbst gelöst :D
foreach ($_FILES["pictures"]["error"] as $key => $error) {
$zufall = md5( ((time()*rand())/2) );
$zufall_kurz = substr($zufall, 0, 7);
if (move_uploaded_file($_FILES["pictures"]["tmp_name"][$key],$upload_dir.$_FILES["pictures"]["name"][$key])) {
$endung = substr($_FILES["pictures"]["name"][$key], -4);
rename($upload_dir.$_FILES["pictures"]["name"][$key],$upload_dir.$zufall_kurz.$endung);
$dateinamen[] = $zufall_kurz.$endung;
}

Spiro am 15.02.07 22:03

define("marke", "Das was die Automarke ist");


behebt dein Notice Problem - Variablen sowie Konstanten sollten stets vor Verwendung deklariert werden.

Kevz am 15.02.07 23:02

Single Quotes -.-

nuit nuit am 15.02.07 23:46

Konstanten sollte man gross schreiben :D also nicht zwingend nötig ;D aber es ist sinnvoll :D

ausserdem kann man es schreiben

define('MARKE','Das ist die Automarke');

btw.: das marke, was bonze verwendet soll keine konstante sein :D da reichen also single quotes :D $row['marke'] ;)

Bonze am 16.02.07 16:38

so, neues problem , und zwar wenn ich meine einträge editieren möchte, und keine neuen bilder angegeben habe, wird mit ein fehler ausgegeben !
Notice: Undefined offset: 0 in E:\xampp\xampp\htdocs\projects\autohandel\admin\pages\edit.php on line 244

Notice: Undefined offset: 1 in E:\xampp\xampp\htdocs\projects\autohandel\admin\pages\edit.php on line 245

Notice: Undefined offset: 2 in E:\xampp\xampp\htdocs\projects\autohandel\admin\pages\edit.php on line 246

Notice: Undefined offset: 3 in E:\xampp\xampp\htdocs\projects\autohandel\admin\pages\edit.php on line 247

Notice: Undefined offset: 4 in E:\xampp\xampp\htdocs\projects\autohandel\admin\pages\edit.php on line 248


die zeilen sind halt genau die, wo das array mit den bildernamen in die db schreibt ,.
soll ich da einfach ne if abfrge machen ?

Spiro am 16.02.07 23:52

Den Array einfach vorher komplett definieren, dann klappt das auch mit dem Notice ;)

Konstanten sollten wirklich groß geschrieben werden, sollte lediglich als kleiner Denkanstoß dienen.
Aber mal im Ernst, was bringen mir einfache Hochzeichen hier für einen Vorteil?

nuit nuit am 17.02.07 00:54

bringen nichts....es muss einfach nicht geparsed werden :P

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt